From 25a0d455868c2a2f6af69d0d638b2b3685cf0967 Mon Sep 17 00:00:00 2001 From: Ben Date: Wed, 29 Jan 2020 10:05:55 -0500 Subject: [PATCH 1/3] Update node Travis CLI version --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 4873c486c..e25781bc4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ language: node_js node_js: - - "lts/carbon" + - "lts/dubnium" sudo: false cache: From a1c95a3929295d75ec3450225c37aa7ad1cc6f1d Mon Sep 17 00:00:00 2001 From: Ben Date: Wed, 29 Jan 2020 11:28:05 -0500 Subject: [PATCH 2/3] Remove edge legacy code --- README.md | 2 +- _locales/en/messages.json | 3 - app/content-scripts/notifications.js | 15 ++-- app/hub/Views/HomeView/HomeView.jsx | 3 +- .../Views/SetupView/SetupViewContainer.jsx | 3 +- .../SetupAntiSuiteViewContainer.jsx | 3 +- .../SideNavigationViewContainer.jsx | 3 +- app/panel/actions/SettingsActions.js | 3 +- .../BuildingBlocks/ClickOutside.jsx | 1 - app/panel/components/Rewards.jsx | 13 +--- app/panel/components/Settings/Account.jsx | 2 +- app/panel/components/Settings/OptIn.jsx | 3 +- app/panel/reducers/settings.js | 3 - app/panel/utils/msg.js | 49 ------------- manifest.json | 2 +- src/background.js | 33 +-------- src/classes/BrowserButton.js | 1 - src/classes/ConfData.js | 3 +- src/classes/EventHandlers.js | 13 +--- src/classes/Metrics.js | 62 +++++----------- src/utils/utils.js | 1 - tools/edge/appxmanifest.xml | 69 ------------------ tools/edge/assets/icon150.png | Bin 6372 -> 0 bytes tools/edge/assets/icon44.png | Bin 1438 -> 0 bytes tools/edge/assets/icon50.png | Bin 1647 -> 0 bytes tools/edge/priconfig.xml | 22 ------ tools/edge/resources/de/resources.resjson | 1 - tools/edge/resources/en/resources.resjson | 1 - tools/edge/resources/es/resources.resjson | 1 - tools/edge/resources/fr/resources.resjson | 1 - tools/edge/resources/hu/resources.resjson | 1 - tools/edge/resources/it/resources.resjson | 1 - tools/edge/resources/ja/resources.resjson | 1 - tools/edge/resources/ko/resources.resjson | 1 - tools/edge/resources/nl/resources.resjson | 1 - tools/edge/resources/pl/resources.resjson | 1 - tools/edge/resources/pt-br/resources.resjson | 1 - tools/edge/resources/ru/resources.resjson | 1 - tools/edge/resources/zh-cn/resources.resjson | 1 - tools/edge/resources/zh-tw/resources.resjson | 1 - webpack.config.js | 2 +- 41 files changed, 42 insertions(+), 286 deletions(-) delete mode 100644 tools/edge/appxmanifest.xml delete mode 100644 tools/edge/assets/icon150.png delete mode 100644 tools/edge/assets/icon44.png delete mode 100644 tools/edge/assets/icon50.png delete mode 100644 tools/edge/priconfig.xml delete mode 100644 tools/edge/resources/de/resources.resjson delete mode 100644 tools/edge/resources/en/resources.resjson delete mode 100644 tools/edge/resources/es/resources.resjson delete mode 100644 tools/edge/resources/fr/resources.resjson delete mode 100644 tools/edge/resources/hu/resources.resjson delete mode 100644 tools/edge/resources/it/resources.resjson delete mode 100644 tools/edge/resources/ja/resources.resjson delete mode 100644 tools/edge/resources/ko/resources.resjson delete mode 100644 tools/edge/resources/nl/resources.resjson delete mode 100644 tools/edge/resources/pl/resources.resjson delete mode 100644 tools/edge/resources/pt-br/resources.resjson delete mode 100644 tools/edge/resources/ru/resources.resjson delete mode 100644 tools/edge/resources/zh-cn/resources.resjson delete mode 100644 tools/edge/resources/zh-tw/resources.resjson diff --git a/README.md b/README.md index 9165c4769..98fb17697 100644 --- a/README.md +++ b/README.md @@ -145,7 +145,7 @@ $ ./fern.js build configs/ghostery.js --environment=production --no-debug + Firefox Android: 55+ + Chrome: 58+ + Opera: 45+ -+ Edge: 34.14291+ ++ Edge: 79+ ## Contribute diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 048cb9b09..d74c8ed74 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -727,9 +727,6 @@ "panel_detail_rewards_cliqz_text": { "message": "Feature already active in the Cliqz MyOffrz control panel." }, - "panel_detail_rewards_edge_text": { - "message": "Ghostery Rewards is not currently supported in Microsoft Edge." - }, "panel_detail_rewards_loading": { "message": "Loading Rewards..." }, diff --git a/app/content-scripts/notifications.js b/app/content-scripts/notifications.js index 4f5254bc9..f70ba2dfe 100644 --- a/app/content-scripts/notifications.js +++ b/app/content-scripts/notifications.js @@ -26,7 +26,6 @@ import bigLogoImage from '../data-images/popup/bigLogoImage'; const msg = msgModule('notifications'); const { sendMessage } = msg; const { onMessage } = chrome.runtime; -const IS_EDGE = (globals.BROWSER_INFO.name === 'edge'); /** * Use to call init to initialize functionality @@ -621,15 +620,11 @@ const NotificationsContentScript = (function(win, doc) { url = window.webkitURL.createObjectURL(textFileAsBlob); } - if (IS_EDGE) { // @EDGE does not support chrome.downloads - window.navigator.msSaveBlob(textFileAsBlob, fileNameToSaveAs); - } else { - const link = createEl('a'); - link.href = url; - link.setAttribute('download', fileNameToSaveAs); - document.body.appendChild(link); - link.click(); - } + const link = createEl('a'); + link.href = url; + link.setAttribute('download', fileNameToSaveAs); + document.body.appendChild(link); + link.click(); }; /** * Determine if a DOM element is visible to user. diff --git a/app/hub/Views/HomeView/HomeView.jsx b/app/hub/Views/HomeView/HomeView.jsx index 7bba12bf7..82de8fdd3 100644 --- a/app/hub/Views/HomeView/HomeView.jsx +++ b/app/hub/Views/HomeView/HomeView.jsx @@ -20,7 +20,6 @@ import { ToggleCheckbox } from '../../../shared-components'; const { IS_CLIQZ } = globals; const IS_FIREFOX = (globals.BROWSER_INFO.name === 'firefox'); -const IS_EDGE = (globals.BROWSER_INFO.name === 'edge'); /** * A Functional React component for rendering the Home View @@ -43,7 +42,7 @@ const HomeView = (props) => { if (globals.BROWSER_INFO) { if (IS_FIREFOX) { headerInfoText = t('hub_home_header_info_opted_out'); - } else if (IS_CLIQZ || IS_EDGE) { + } else if (IS_CLIQZ) { headerInfoText = t('hub_home_header_info_cliqz'); } } diff --git a/app/hub/Views/SetupView/SetupViewContainer.jsx b/app/hub/Views/SetupView/SetupViewContainer.jsx index cfbc0b245..0902c1ae7 100644 --- a/app/hub/Views/SetupView/SetupViewContainer.jsx +++ b/app/hub/Views/SetupView/SetupViewContainer.jsx @@ -29,7 +29,6 @@ import SetupDoneView from '../SetupViews/SetupDoneView'; const { BROWSER_INFO } = globals; const IS_FIREFOX = (BROWSER_INFO.name === 'firefox'); -const IS_EDGE = (BROWSER_INFO.name === 'edge'); /** * @class Implement the Setup View for the Ghostery Hub @@ -105,7 +104,7 @@ class SetupViewContainer extends Component { this.props.actions.setAntiTracking({ enable_anti_tracking: true }); this.props.actions.setAdBlock({ enable_ad_block: true }); this.props.actions.setSmartBlocking({ enable_smart_block: true }); - this.props.actions.setGhosteryRewards({ enable_ghostery_rewards: !IS_FIREFOX && !IS_EDGE }); + this.props.actions.setGhosteryRewards({ enable_ghostery_rewards: !IS_FIREFOX }); this.props.actions.setHumanWeb({ enable_human_web: !IS_FIREFOX }); } diff --git a/app/hub/Views/SetupViews/SetupAntiSuiteView/SetupAntiSuiteViewContainer.jsx b/app/hub/Views/SetupViews/SetupAntiSuiteView/SetupAntiSuiteViewContainer.jsx index 53dc65520..b4c25379b 100644 --- a/app/hub/Views/SetupViews/SetupAntiSuiteView/SetupAntiSuiteViewContainer.jsx +++ b/app/hub/Views/SetupViews/SetupAntiSuiteView/SetupAntiSuiteViewContainer.jsx @@ -18,7 +18,6 @@ import globals from '../../../../../src/classes/Globals'; // simple consts const { IS_CLIQZ } = globals; -const IS_EDGE = (globals.BROWSER_INFO.name === 'edge'); /** * @class Implement the Setup Anti-Suite View for the Ghostery Hub @@ -132,7 +131,7 @@ class SetupAntiSuiteViewContainer extends Component { } ]; - if (!IS_CLIQZ && !IS_EDGE) { + if (!IS_CLIQZ) { features.push({ id: 'ghostery-rewards', name: t('hub_setup_ghosteryrewards_name_rewards'), diff --git a/app/hub/Views/SideNavigationView/SideNavigationViewContainer.jsx b/app/hub/Views/SideNavigationView/SideNavigationViewContainer.jsx index 00da678ef..5f0a5af56 100644 --- a/app/hub/Views/SideNavigationView/SideNavigationViewContainer.jsx +++ b/app/hub/Views/SideNavigationView/SideNavigationViewContainer.jsx @@ -17,7 +17,6 @@ import SideNavigationView from './SideNavigationView'; import globals from '../../../../src/classes/Globals'; const { IS_CLIQZ } = globals; -const IS_EDGE = (globals.BROWSER_INFO.name === 'edge'); /** * @class Implement the Side Navigation View for the Ghostery Hub @@ -54,7 +53,7 @@ class SideNavigationViewContainer extends Component { { href: '/setup', icon: 'setup', text: t('customize_setup') }, { href: '/tutorial', icon: 'tutorial', text: t('hub_side_navigation_tutorial') }, { href: '/plus', icon: 'plus', text: t('get_ghostery_plus') }, - ...((IS_CLIQZ || IS_EDGE) ? [] : [{ href: '/rewards', icon: 'rewards', text: t('hub_side_navigation_rewards') }]), + ...((IS_CLIQZ) ? [] : [{ href: '/rewards', icon: 'rewards', text: t('hub_side_navigation_rewards') }]), { href: '/products', icon: 'products', text: t('hub_side_navigation_products') } ]; const bottomItems = user ? [ diff --git a/app/panel/actions/SettingsActions.js b/app/panel/actions/SettingsActions.js index 4c30b2050..86e20e386 100644 --- a/app/panel/actions/SettingsActions.js +++ b/app/panel/actions/SettingsActions.js @@ -117,8 +117,7 @@ export function exportSettings(pageUrl) { const url = pageUrl || ''; // Check if this is http(s) page return function(dispatch) { - if (url.search('http') === -1 || - (globals.BROWSER_INFO.name === 'edge' && url.search('www.msn.com/spartan') !== -1)) { + if (url.search('http') === -1) { dispatch({ type: EXPORT_SETTINGS, data: 'RESERVED_PAGE', diff --git a/app/panel/components/BuildingBlocks/ClickOutside.jsx b/app/panel/components/BuildingBlocks/ClickOutside.jsx index 4966bdfe2..cd5634513 100644 --- a/app/panel/components/BuildingBlocks/ClickOutside.jsx +++ b/app/panel/components/BuildingBlocks/ClickOutside.jsx @@ -56,7 +56,6 @@ class ClickOutside extends React.Component { */ clickHandler(e) { // Simple polyfill for Event.composedPath - // Edge does not support path or composedPath if (!('composedPath' in Event.prototype)) { Event.prototype.composedPath = function() { const path = []; diff --git a/app/panel/components/Rewards.jsx b/app/panel/components/Rewards.jsx index 2ed96ff38..977e47615 100644 --- a/app/panel/components/Rewards.jsx +++ b/app/panel/components/Rewards.jsx @@ -21,7 +21,6 @@ import globals from '../../../src/classes/Globals'; import { log } from '../../../src/utils/common'; const IS_CLIQZ = (globals.BROWSER_INFO.name === 'cliqz'); -const IS_EDGE = (globals.BROWSER_INFO.name === 'edge'); /** * @class The Rewards Panel shows offers generated by Ghostery Rewards. @@ -178,7 +177,7 @@ class Rewards extends React.Component { const { enable_offers } = this.props; const headerClassNames = ClassNames('RewardsPanel__header', 'flex-container', 'align-middle', 'align-justify'); const headerTitleClassNames = ClassNames('RewardsPanel__title'); - const shouldHideSlider = IS_CLIQZ || IS_EDGE; + const shouldHideSlider = IS_CLIQZ; return (
@@ -229,15 +228,6 @@ class Rewards extends React.Component { ); } - renderEDGEtext() { - return ( -
- { this.renderRewardSvg() } -
{ t('panel_detail_rewards_edge_text') }
-
- ); - } - renderRewardsTurnoffText() { return (
@@ -262,7 +252,6 @@ class Rewards extends React.Component { */ renderRewardListComponent() { if (IS_CLIQZ) { return this.renderCLIQZtext(); } - if (IS_EDGE) { return this.renderEDGEtext(); } const { enable_offers, is_expanded } = this.props; if (!enable_offers) { return this.renderRewardsTurnoffText(); } diff --git a/app/panel/components/Settings/Account.jsx b/app/panel/components/Settings/Account.jsx index 112a64131..29cd2c0db 100644 --- a/app/panel/components/Settings/Account.jsx +++ b/app/panel/components/Settings/Account.jsx @@ -55,7 +55,7 @@ class Account extends React.Component { */ clickImportSettings = () => { const browserName = globals.BROWSER_INFO.name; - if (browserName === 'edge' || browserName === 'firefox') { + if (browserName === 'firefox') { // show ghostery dialog window for import this.props.actions.importSettingsDialog(this.props.settingsData.pageUrl); } else { diff --git a/app/panel/components/Settings/OptIn.jsx b/app/panel/components/Settings/OptIn.jsx index 2605ca06c..db4d21923 100644 --- a/app/panel/components/Settings/OptIn.jsx +++ b/app/panel/components/Settings/OptIn.jsx @@ -15,7 +15,6 @@ import React from 'react'; import globals from '../../../../src/classes/Globals'; const IS_CLIQZ = (globals.BROWSER_INFO.name === 'cliqz'); -const IS_EDGE = (globals.BROWSER_INFO.name === 'edge'); /** * @class Implement Opt In subview as a React component. @@ -58,7 +57,7 @@ const OptIn = (props) => {
)} - {!IS_CLIQZ && !IS_EDGE && ( + {!IS_CLIQZ && (
diff --git a/app/panel/reducers/settings.js b/app/panel/reducers/settings.js index d68e15bd1..04addcf49 100644 --- a/app/panel/reducers/settings.js +++ b/app/panel/reducers/settings.js @@ -136,9 +136,6 @@ const _exportSettings = (state, action) => { let updated_exportResultText = state.exportResultText; if (result && result !== 'RESERVED_PAGE') { updated_settings_last_exported = Number((new Date()).getTime()); - if (globals.BROWSER_INFO.name === 'edge') { - window.close(); - } moment.locale(state.language).toLowerCase().replace('_', '-'); updated_exportResultText = `${t('settings_export_success')} ${moment(updated_settings_last_exported).format('LLL')}`; updated_actionSuccess = true; diff --git a/app/panel/utils/msg.js b/app/panel/utils/msg.js index 5d1c03f17..7081254df 100644 --- a/app/panel/utils/msg.js +++ b/app/panel/utils/msg.js @@ -11,12 +11,8 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0 */ -import globals from '../../../src/classes/Globals'; import { log } from '../../../src/utils/common'; -const { onMessage } = chrome.runtime; -const IS_EDGE = (globals.BROWSER_INFO.name === 'edge'); - /** * Default callback handler for sendMessage. Allows us to handle * 'Unchecked runtime.lastError: The message port closed before a response was received' errors. @@ -38,49 +34,7 @@ const defaultCallback = () => { * @param {Object} message message data * @return {Promise} */ -let MESSAGE_ID = 0; -const listenerSet = new Set(); -const resolveMap = new Map(); -const NO_ORIGIN = 'no_origin'; export function sendMessageInPromise(name, message, origin = '') { - // On Edge 39.14965.1001.0 callback is not called when multiple - // Edge instances are running. So instead we pass the message back - // from background. See onMessageHandler, HANDLE UNIVERSAL EVENTS HERE - // in src/background.js. To be removed, once Edge is fixed. - if (IS_EDGE) { - MESSAGE_ID++; - const messageId = MESSAGE_ID.toString(); - return new Promise((resolve) => { - resolveMap.set(messageId, resolve); - const key = (origin === '') ? NO_ORIGIN : origin; - if (!listenerSet.has(key)) { - listenerSet.add(key); - // We need to map individual listeners by origin for each - // instantiation (panel, hub, content scripts) since Edge does - // not allow a global listener for all uses - onMessage.addListener((request, sender, sendResponse) => { - const callback = resolveMap.get(request.name); - if (callback) { - callback(request.message); - resolveMap.delete(request.message); - } - if (sendResponse) { - sendResponse(); - } - }); - } - chrome.runtime.sendMessage({ - name, - message, - messageId, - origin, - }, () => { - if (chrome.runtime.lastError) { - log('sendMessageInPromise error:', chrome.runtime.lastError); - } - }); - }); - } return new Promise((resolve) => { chrome.runtime.sendMessage({ name, @@ -110,9 +64,6 @@ export function sendMessageInPromise(name, message, origin = '') { */ export function sendMessage(name, message, origin = '', callback = defaultCallback()) { log('Panel sendMessage: sending to background', name); - // @EDGE chrome.runtime.sendMessage(message) works, but the `callback` of - // chrome.runtime.sendMessage(message, callback) fails to - // execute and chrome.runtime.lastError is undefined. return chrome.runtime.sendMessage({ name, message, diff --git a/manifest.json b/manifest.json index a801a1361..45e9f3fe7 100644 --- a/manifest.json +++ b/manifest.json @@ -95,7 +95,7 @@ ], "persistent": true }, - "minimum_edge_version": "33.14281.1000.0", + "minimum_edge_version": "79.0.309", "minimum_chrome_version": "58", "minimum_opera_version": "45", "web_accessible_resources": [ diff --git a/src/background.js b/src/background.js index 2dcd826b0..ebe165ac5 100644 --- a/src/background.js +++ b/src/background.js @@ -662,30 +662,10 @@ function onMessageHandler(request, sender, callback) { return; } const { - name, message, messageId, origin + name, message, origin } = request; const { tab } = sender; const tab_id = tab && tab.id; - // Edge does not have url on tab object, as of Build 14342_rc1 - // const tab_url = tab && (tab.url ? tab.url : (sender.url ? sender.url : '')); - - // On Edge 39.14965.1001.0 callback is lost when multiple - // Edge instances running. So instead we shoot message back - // See sendMessageInPromise in app/js/utils/msg.js where we - // listen to this message. To be removed, once Edge fixed - if (IS_EDGE && messageId) { - if (tab_id) { - // eslint-disable-next-line no-param-reassign - callback = function(result) { - utils.sendMessage(tab_id, messageId, result); - }; - } else { - // eslint-disable-next-line no-param-reassign - callback = function(result) { - utils.sendMessageToPanel(messageId, result); - }; - } - } // HANDLE PAGE EVENTS HERE if (origin === 'account_pages') { @@ -803,10 +783,6 @@ function onMessageHandler(request, sender, callback) { return true; } if (name === 'account.register') { - if (!IS_EDGE) { - const senderOrigin = (sender.url.indexOf('templates/panel.html') >= 0) ? 'extension' : 'setup'; - metrics.ping(`create_account_${senderOrigin}`); - } const { email, confirmEmail, password, firstName, lastName } = message; @@ -1333,7 +1309,6 @@ function addCommonGhosteryAndAntitrackingListeners() { let urlFilters = ['http://*/*', 'https://*/*', 'ws://*/*', 'wss://*/*']; if (IS_EDGE || IS_FIREFOX) { // Prevent Firefox from asking users to re-validate permissions on upgrade - // Edge doesn't support WebSockets urlFilters = urlFilters.reduce((accumulator, currentValue) => { if (!currentValue.match(/^wss?:\/\//)) { accumulator.push(currentValue); @@ -1451,7 +1426,7 @@ function initializeEventListeners() { }); // Fired when another extension sends a message, accepts message if it's from Ghostery Tab - // NOTE: not supported on Edge and Firefox < v54 + // NOTE: not supported on Firefox < v54 if (typeof chrome.runtime.onMessageExternal === 'object') { chrome.runtime.onMessageExternal.addListener((request, sender, sendResponse) => { const recognized = [ @@ -1598,7 +1573,7 @@ function initializeGhosteryModules() { // We introduce these new features initially disabled. conf.enable_ad_block = false; conf.enable_anti_tracking = false; - // Enable Offers except on Edge or Cliqz + // Enable Offers except or Cliqz conf.enable_offers = true; } else if (globals.JUST_UPGRADED_FROM_8_1) { // These users already had human web, adblocker and antitracking, so we respect their choice @@ -1612,7 +1587,7 @@ function initializeGhosteryModules() { conf.enable_ad_block = !adblocker.isDisabled; conf.enable_anti_tracking = !antitracking.isDisabled; conf.enable_human_web = !humanweb.isDisabled && !(IS_FIREFOX && globals.JUST_INSTALLED); - conf.enable_offers = !offers.isDisabled && !(IS_FIREFOX && globals.JUST_INSTALLED) && !IS_EDGE; + conf.enable_offers = !offers.isDisabled && !(IS_FIREFOX && globals.JUST_INSTALLED); } const myoffrzShouldMigrate = conf.rewards_opted_in !== undefined && cliqz.prefs.get('myoffrz.opted_in', undefined) === undefined; diff --git a/src/classes/BrowserButton.js b/src/classes/BrowserButton.js index 453eb668e..5037166d1 100644 --- a/src/classes/BrowserButton.js +++ b/src/classes/BrowserButton.js @@ -93,7 +93,6 @@ class BrowserButton { // provide callbacks, we must check that the tab exists again to compensate for a race // condition that occurs if a user closes the tab while the trackers are still loading getTab(tabId, () => { - // @EDGE setTitle not currently supported by EDGE if (typeof chrome.browserAction.setTitle === 'function') { chrome.browserAction.setTitle({ title: chrome.i18n.getMessage('browser_button_tooltip'), diff --git a/src/classes/ConfData.js b/src/classes/ConfData.js index bd3e67c97..89a8f3054 100644 --- a/src/classes/ConfData.js +++ b/src/classes/ConfData.js @@ -23,7 +23,6 @@ import { prefsGet } from '../utils/common'; const { IS_CLIQZ, BROWSER_INFO } = globals; const IS_FIREFOX = (BROWSER_INFO.name === 'firefox'); -const IS_EDGE = (globals.BROWSER_INFO.name === 'edge'); /** * Class for handling user configuration properties synchronously. @@ -111,7 +110,7 @@ class ConfData { _initProperty('enable_click2play_social', true); _initProperty('enable_human_web', !IS_CLIQZ && !IS_FIREFOX); _initProperty('enable_metrics', false); - _initProperty('enable_offers', !IS_CLIQZ && !IS_FIREFOX && !IS_EDGE); + _initProperty('enable_offers', !IS_CLIQZ && !IS_FIREFOX); _initProperty('enable_smart_block', true); _initProperty('expand_all_trackers', true); _initProperty('hide_alert_trusted', false); diff --git a/src/classes/EventHandlers.js b/src/classes/EventHandlers.js index 64c5904eb..55ba5f4e1 100644 --- a/src/classes/EventHandlers.js +++ b/src/classes/EventHandlers.js @@ -37,7 +37,6 @@ import { log } from '../utils/common'; import { isBug } from '../utils/matcher'; import * as utils from '../utils/utils'; -const IS_EDGE = (globals.BROWSER_INFO.name === 'edge'); /** * This class is a collection of handlers for * webNavigation, webRequest and tabs events. @@ -122,11 +121,8 @@ class EventHandlers { utils.getTab(tabId, (tab) => { if (tab) { tabInfo.setTabInfo(tabId, 'incognito', tab.incognito); - // Edge does not have script execute-ready in onCommited - if (!IS_EDGE) { - // purplebox.createBox() will first check to make sure this is a valid tab - this._createBox(tabId); - } + // purplebox.createBox() will first check to make sure this is a valid tab + this._createBox(tabId); } }, () => { // prefetched tabs will return an error from utils.getTab @@ -166,11 +162,6 @@ class EventHandlers { return; } - // Edge does not have script execute-ready in onCommited, so we call this here - if (IS_EDGE) { - this._createBox(tab_id); - } - const alert_messages = [ 'notification_library_update', 'notification_library_update_link', diff --git a/src/classes/Metrics.js b/src/classes/Metrics.js index e7a532298..51377cc82 100644 --- a/src/classes/Metrics.js +++ b/src/classes/Metrics.js @@ -26,7 +26,6 @@ const FREQUENCIES = { // in milliseconds const CRITICAL_METRICS = ['install', 'install_complete', 'upgrade', 'active', 'engaged', 'uninstall']; const CAMPAIGN_METRICS = ['install', 'active', 'uninstall']; const { METRICS_SUB_DOMAIN, EXTENSION_VERSION, BROWSER_INFO } = globals; -const IS_EDGE = (BROWSER_INFO.name === 'edge'); const MAX_DELAYED_PINGS = 100; // Note that this threshold is intentionally different from the 30 second threshold in PolicySmartBlock, @@ -61,49 +60,26 @@ class Metrics { */ init(JUST_INSTALLED) { if (JUST_INSTALLED) { - if (!IS_EDGE) { - return new Promise((resolve) => { - let foundUTM = false; - // This query fails on Edge - chrome.tabs.query({ - url: [ - 'https://www.ghostery.com/*' - ] - }, (tabs) => { - tabs.forEach((tab) => { - if (foundUTM) { return; } - - const query = processUrlQuery(tab.url); - if (!query.utm_source || !query.utm_campaign) { return; } - - this.utm_source = query.utm_source; - this.utm_campaign = query.utm_campaign; - foundUTM = true; - prefsSet({ - utm_source: this.utm_source, - utm_campaign: this.utm_campaign - }); - }); - resolve(); - }); - }); - } return new Promise((resolve) => { - chrome.tabs.query({}, (tabs) => { - let foundUTM = false; + let foundUTM = false; + chrome.tabs.query({ + url: [ + 'https://www.ghostery.com/*' + ] + }, (tabs) => { tabs.forEach((tab) => { if (foundUTM) { return; } - if (tab.url && tab.url.includes('https://www.ghostery.com/')) { - const query = processUrlQuery(tab.url); - if (!query.utm_source || !query.utm_campaign) { return; } - this.utm_source = query.utm_source; - this.utm_campaign = query.utm_campaign; - foundUTM = true; - prefsSet({ - utm_source: this.utm_source, - utm_campaign: this.utm_campaign - }); - } + + const query = processUrlQuery(tab.url); + if (!query.utm_source || !query.utm_campaign) { return; } + + this.utm_source = query.utm_source; + this.utm_campaign = query.utm_campaign; + foundUTM = true; + prefsSet({ + utm_source: this.utm_source, + utm_campaign: this.utm_campaign + }); }); resolve(); }); @@ -418,7 +394,7 @@ class Metrics { frequencies = ['all']; // eslint-disable-line no-param-reassign } - if (!IS_EDGE && typeof fetch === 'function') { + if (typeof fetch === 'function') { const headers = new Headers(); headers.append('Content-Type', 'image/gif'); @@ -441,7 +417,7 @@ class Metrics { log(`sending ${type} ping with ${frequency} frequency`); - if (!IS_EDGE && typeof fetch === 'function') { + if (typeof fetch === 'function') { const request = new Request(metrics_url, options); fetch(request).catch((err) => { log(`Error sending Metrics ${type} ping`, err); diff --git a/src/utils/utils.js b/src/utils/utils.js index fd3c984a8..e4f261523 100644 --- a/src/utils/utils.js +++ b/src/utils/utils.js @@ -367,7 +367,6 @@ function _fetchJson(method, url, query, extraHeaders, referrer = 'no-referrer', credentials }; if (method === 'GET' || method === 'HEAD') { - // Edge fails to construct Request object for GET and HEAD methods in case body property is present delete options.body; } diff --git a/tools/edge/appxmanifest.xml b/tools/edge/appxmanifest.xml deleted file mode 100644 index f52edbe50..000000000 --- a/tools/edge/appxmanifest.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - - - ms-resource:DisplayName - Ghostery - Assets/icon50.png - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/edge/assets/icon150.png b/tools/edge/assets/icon150.png deleted file mode 100644 index 41e6d0266c291872c7b80e413deb81f7b403e324..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6372 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

4Sddr=wPeW>dh*F9>Bx~I27Z3{;RnKR+O%mj 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 m6LAG3kN{Rd6p0g=68L|}aVJUS`D#M|0000Ii diff --git a/tools/edge/assets/icon44.png b/tools/edge/assets/icon44.png deleted file mode 100644 index 0cbfa8c55f9262850ce1838d4f6687a758c150d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1438 zcmV;P1!4M$P)Px)SV=@dR9FesSzBxrWfcBqFWuel0=)`ai&YZ{paMlythJ>O6ZM_=VlZkG<0bkg z8ei0e#s_0eOa!zDMoiRbVj>3dLThb3iqmF>)i$$vqYFT#+7Iq z&DDOa4(O|3in~^Mu%GIVAE^Jc1AS`(?R$HpDDyecT^GPUsu`+^oO5Ye7AYmad5O|- z_qG5U=!rB?1E3QvWl`a$*&Z*Csxhu7Hc(}jNw)230vzK04+shC1#sE;r<5FOTY@;L zlEJv#Y&aW1-EYC^RhMP7KK1%rp-YU>FvKW0O|SoD3J(-IaUUH43Lh6JO&=MK(@@2z zmYM5Db(~yCm<^f*_kVoY!3CWvQPm}aWRq)w#XyhFfJT*YD{T_J;%A|5<{~}WevJ}T zl`wZ3i;15#?5h&~c5rbCe?z^U2swnCsqy@K%HGBi88dqRdrIGfl={_>L-=E=YZn`w zhz<&PWD(|W;47N@UJuwuGZD4Gnnjo=JyFU|*8@0OG^xx*vJywrNcLvqap>Jk9VpLt zP(ul{P`H~kkpcB?d^wE-I5V>Dvr{RYSL~f8dJUnRYGx7MxXek_RvMc~3BQ-%N%^vj zD>w^nJ{H7iOzmOm(aZjS-BKr7YXVvNhiId5Nd1Y9QFM7*>#e4af?vd(rU_05rD?SU#80lR#*h1HVay_9{fvq3ToKR=D_2IaEqScJD@?C9=%W^a{(j)kCkly2g{!KDf$2o773y@+-0$ sYWcaiw+hRIts1l|m+RGbH7>CHe+wiYkHBOP5C8xG07*qoM6N<$g5U79X8-^I diff --git a/tools/edge/assets/icon50.png b/tools/edge/assets/icon50.png deleted file mode 100644 index f33aad25e9204cfd97fb0cc007afd2726db34229..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1647 zcmV-#29WuQP)Px*DM>^@RA>d=T5D_+RTMtE+kJG|7O7a;N@xLMkB!ofd&(lh=z!$5!$p(D}ojXZCZ-8Eu~c3f~C9Ncm2+m=}vcN z?w#EoNYgLb%*>tpINzOf?|Iy{i~}?SV4VRRViaZ!kt{R6NblG<{ct%%$Nmk|MgKVU z`=c~~tJ6kQ;IvYK%R*%yD?L2VPV4it$b)jTV99iiL?B5`Pl!J34A7bX_{kU?R!fY` z8;hK@a!%%qG9q%IFGO#)1*qeiaROR2Hx=0F-Md}1BsYCcPm9P{l<38lG1}W5)RHT$ zGN;W#AD3s-mJ)kf?NcVwjdk!?lb24Xphl@k_FSohb}h}OEK4e_h*Bal92%$9bzW-E zP?cmNGMUdSvSrn#yf>_r0jSgC&AuB>f~EW7?;yS19+)Di?7=XR?X7;Q9}LU-GwuBj zj8`{kd=oK5!A|&glO!CR-YWB zuP(-g;7#brYBz0!RadaPD@ZS38yBH`wvAdI@QA9!-pM9~4#Mcku&vBFNrLNIEEf9U z9v9hFTj-{FSyM=Gz31<6&|--Z+e+(hi>ugXjXGSn zy4ayK(Y+d(Oev8+p{F9`Le_jZgj!$+Q9+rGhp4Wj)J?qpA(4UW$45$Rjpw1@IQb*u zMeY%pVD&p49^{FCGz|$Riu&L|%OE6Tq=SA8qDQt%rQ3h`wDr8pD;KhlojVDHM6TeA z$iOvfH4J4K+jYZG+<+cOjG_g-a&=vHjbsoKkvE^{{{4;sC5HYry`fler3kPaZb#z8 zbdE;opn=Uq=|glC5)n02zdH_Bg6+XI%v=;U!w0N>05Tqm857}kbl+SX{a)#zirL1x%LD70W!bcUxtsQw6!#k&Su(RPpZ3QxAWY`)N;f@G zltnoS7Ms7=syrKg3RnNah8(J1;6RKMp!QL@v6BoRdz~U?K|g99ED}p5j-w zB~P93kz|*SH!yH#ifZvV>?3n>;=OipH2L#Dh?dum5~r2Sgz$@aC7y4hAWY`<)&T86 z3Uy0~gVtedErLq1YjO&%_&${XqT_QV_N9LI!cF6qB${<0kxOaLS_c;JYv-W<=hWh) zf6s2u06YQq2=pK#No_Yc5vM1VR(abs@$M!hat4mwbb&0>uS-;MCDw;%Ct@b0rn{MFbwjMNze2cHa?!|P& z_x)krct?{6$Jf&lK_oQx!l-H?i3so4wE|t#>f~mY?Lxj-%ehG+^0k3n@68lEaV*Zf zXk{LgT$Gau=}9||kt=So(VAOrRElgnM}!BEWtXK=69q8({N(L+S~E8b#~AQ%V2~Sz zB6J?YtHClZgG_295vju2#wa%ICAl`LL>T&@#=-v9JDpV7;H4&20#4m&y7xN}&%AY) zGpRZM5#i`SIF|71M%Hn~oFuVRI}BBiz-wvgu~Fg$sE1;F!F%y%03RllvyPni(!*lJ zGN%w>rW5;fpTfMB-k?f3ALMMtfew483OJamF1FJ%_%R6uY@2?>tnTXx(&5Xn(y9q4 zz)@EH{j+G{tfVEYG?!j8BEr2lUx~#2!Vw0U_4#&s1gfcX$}lMmyX4TS$IB< to{zXC6J$&zlflhwoBp>nQwkIM`XBiTYIvq=RSN(B002ovPDHLkV1io_7!?2j diff --git a/tools/edge/priconfig.xml b/tools/edge/priconfig.xml deleted file mode 100644 index a411314c7..000000000 --- a/tools/edge/priconfig.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/edge/resources/de/resources.resjson b/tools/edge/resources/de/resources.resjson deleted file mode 100644 index 8952f7d26..000000000 --- a/tools/edge/resources/de/resources.resjson +++ /dev/null @@ -1 +0,0 @@ -{"DisplayName":"Ghostery – datenschutzorientierter Werbeblocker","_DisplayName.comment":"The title of this extension (Ghostery).","PublisherName":"Ghostery – datenschutzorientierter Werbeblocker","_PublisherName.comment":"The title of this extension (Ghostery).","Description":"Ghostery ist eine leistungsstarke Datenschutz-Erweiterung. Damit können Sie Werbung blockieren, Tracker stoppen und Websites beschleunigen.","_Description.comment":"A short description of this extension (Ghostery)."} diff --git a/tools/edge/resources/en/resources.resjson b/tools/edge/resources/en/resources.resjson deleted file mode 100644 index e2476609e..000000000 --- a/tools/edge/resources/en/resources.resjson +++ /dev/null @@ -1 +0,0 @@ -{"DisplayName":"Ghostery – Privacy Ad Blocker","_DisplayName.comment":"The title of this extension (Ghostery).","PublisherName":"Ghostery – Privacy Ad Blocker","_PublisherName.comment":"The title of this extension (Ghostery).","Description":"Ghostery is a powerful privacy extension. Block ads, stop trackers and speed up websites.","_Description.comment":"A short description of this extension (Ghostery)."} diff --git a/tools/edge/resources/es/resources.resjson b/tools/edge/resources/es/resources.resjson deleted file mode 100644 index e983934cc..000000000 --- a/tools/edge/resources/es/resources.resjson +++ /dev/null @@ -1 +0,0 @@ -{"DisplayName":"Ghostery – Bloqueador de anuncios para privacidad","_DisplayName.comment":"The title of this extension (Ghostery).","PublisherName":"Ghostery – Bloqueador de anuncios para privacidad","_PublisherName.comment":"The title of this extension (Ghostery).","Description":"Ghostery es una potente extensión para tu privacidad. Bloquea anuncios, detiene rastreadores y acelera sitios web.","_Description.comment":"A short description of this extension (Ghostery)."} diff --git a/tools/edge/resources/fr/resources.resjson b/tools/edge/resources/fr/resources.resjson deleted file mode 100644 index 94fa3e108..000000000 --- a/tools/edge/resources/fr/resources.resjson +++ /dev/null @@ -1 +0,0 @@ -{"DisplayName":"Ghostery – Bloqueur de publicité protégeant la vie privée","_DisplayName.comment":"The title of this extension (Ghostery).","PublisherName":"Ghostery – Bloqueur de publicité protégeant la vie privée","_PublisherName.comment":"The title of this extension (Ghostery).","Description":"Ghostery est une puissante extension de protection de la vie privée. Bloquez les publicités, déjouez les outils de pistage et accélérez les sites Web.","_Description.comment":"Court descriptif de cette extension (Ghostery)."} diff --git a/tools/edge/resources/hu/resources.resjson b/tools/edge/resources/hu/resources.resjson deleted file mode 100644 index ce22661c0..000000000 --- a/tools/edge/resources/hu/resources.resjson +++ /dev/null @@ -1 +0,0 @@ -{"DisplayName":"Ghostery – Adatavédelmi Reklámblokkoló","_DisplayName.comment":"The title of this extension (Ghostery).","PublisherName":"Ghostery – Adatavédelmi Reklámblokkoló","_PublisherName.comment":"The title of this extension (Ghostery).","Description":"Ennek a kiegészítőnek a rövid leírása. Blokkolja a reklámokat, leállítja a trackereket (követőalkalmazások) és felgyorsítja a weboldalakat.","_Description.comment":"A short description of this extension (Ghostery)."} diff --git a/tools/edge/resources/it/resources.resjson b/tools/edge/resources/it/resources.resjson deleted file mode 100644 index ae047ff14..000000000 --- a/tools/edge/resources/it/resources.resjson +++ /dev/null @@ -1 +0,0 @@ -{"DisplayName":"Ghostery – Ad Blocker per la Privacy","_DisplayName.comment":"The title of this extension (Ghostery).","PublisherName":"Ghostery – Ad Blocker per la Privacy","_PublisherName.comment":"The title of this extension (Ghostery).","Description":"Ghostery è una potente estensione per la protezione della privacy. Blocca pubblicità e tracker, e accelera i siti web.","_Description.comment":"A short description of this extension (Ghostery)."} diff --git a/tools/edge/resources/ja/resources.resjson b/tools/edge/resources/ja/resources.resjson deleted file mode 100644 index 9e0921418..000000000 --- a/tools/edge/resources/ja/resources.resjson +++ /dev/null @@ -1 +0,0 @@ -{"DisplayName":"Ghostery – プライバシー広告ブロッカー","_DisplayName.comment":"The title of this extension (Ghostery).","PublisherName":"Ghostery – プライバシー広告ブロッカー","_PublisherName.comment":"The title of this extension (Ghostery).","Description":"Ghosteryは強力なプライバシー拡張機能です。広告をブロックし、トラッカーを阻止し、ウェブサイトを高速化します。","_Description.comment":"A short description of this extension (Ghostery)."} diff --git a/tools/edge/resources/ko/resources.resjson b/tools/edge/resources/ko/resources.resjson deleted file mode 100644 index ae3c2e3ee..000000000 --- a/tools/edge/resources/ko/resources.resjson +++ /dev/null @@ -1 +0,0 @@ -{"DisplayName":"Ghostery – 개인정보 보호용 광고 차단기","_DisplayName.comment":"The title of this extension (Ghostery).","PublisherName":"Ghostery – 개인정보 보호용 광고 차단기","_PublisherName.comment":"The title of this extension (Ghostery).","Description":"Ghostery는 강력한 개인정보 보호 확장 프로그램입니다. 광고와 트래커를 차단하고 웹 사이트의 속도를 높여줍니다.","_Description.comment":"A short description of this extension (Ghostery)."} diff --git a/tools/edge/resources/nl/resources.resjson b/tools/edge/resources/nl/resources.resjson deleted file mode 100644 index 7d2c709b6..000000000 --- a/tools/edge/resources/nl/resources.resjson +++ /dev/null @@ -1 +0,0 @@ -{"DisplayName":"Ghostery – Privacy Ad Blocker","_DisplayName.comment":"The title of this extension (Ghostery).","PublisherName":"Ghostery – Privacy Ad Blocker","_PublisherName.comment":"The title of this extension (Ghostery).","Description":"Ghostery is een krachtige privacy extensie. Blokkeer ads, stop trackers en maak websites sneller,","_Description.comment":"A short description of this extension (Ghostery)."} diff --git a/tools/edge/resources/pl/resources.resjson b/tools/edge/resources/pl/resources.resjson deleted file mode 100644 index 39ce486fb..000000000 --- a/tools/edge/resources/pl/resources.resjson +++ /dev/null @@ -1 +0,0 @@ -{"DisplayName":"Ghostery – Bloker reklam chroniący prywatność","_DisplayName.comment":"The title of this extension (Ghostery).","PublisherName":"Ghostery – Bloker reklam chroniący prywatność","_PublisherName.comment":"The title of this extension (Ghostery).","Description":"Ghostery to potężne rozszerzenie do ochrony prywatności. Blokuje reklamy, wstrzymuje tropiciele i przyspiesza działanie stron internetowych.","_Description.comment":"A short description of this extension (Ghostery)."} diff --git a/tools/edge/resources/pt-br/resources.resjson b/tools/edge/resources/pt-br/resources.resjson deleted file mode 100644 index 54f11078e..000000000 --- a/tools/edge/resources/pt-br/resources.resjson +++ /dev/null @@ -1 +0,0 @@ -{"DisplayName":"Ghostery – Bloqueador de anúncios para privacidade","_DisplayName.comment":"The title of this extension (Ghostery).","PublisherName":"Ghostery – Bloqueador de anúncios para privacidade","_PublisherName.comment":"The title of this extension (Ghostery).","Description":"O Ghostery é uma poderosa extensão de privacidade. Bloqueie anúncios, interrompa rastreadores e acelere sites.","_Description.comment":"A short description of this extension (Ghostery)."} diff --git a/tools/edge/resources/ru/resources.resjson b/tools/edge/resources/ru/resources.resjson deleted file mode 100644 index cbfe33286..000000000 --- a/tools/edge/resources/ru/resources.resjson +++ /dev/null @@ -1 +0,0 @@ -{"DisplayName":"Ghostery – Конфиденциальный Блокировщик Рекламы","_DisplayName.comment":"The title of this extension (Ghostery).","PublisherName":"Ghostery – Конфиденциальный Блокировщик Рекламы","_PublisherName.comment":"The title of this extension (Ghostery).","Description":"Ghostery - это мощное расширение для обеспечения конфиденциальности. Блокируйте рекламу, отключайте средства слежения и ускоряйте загрузку веб-сайтов.","_Description.comment":"A short description of this extension (Ghostery)."} diff --git a/tools/edge/resources/zh-cn/resources.resjson b/tools/edge/resources/zh-cn/resources.resjson deleted file mode 100644 index 028f7bab4..000000000 --- a/tools/edge/resources/zh-cn/resources.resjson +++ /dev/null @@ -1 +0,0 @@ -{"DisplayName":"Ghostery – 隐私广告拦截工具","_DisplayName.comment":"The title of this extension (Ghostery).","PublisherName":"Ghostery – 隐私广告拦截工具","_PublisherName.comment":"The title of this extension (Ghostery).","Description":"Ghostery 是强大的隐私保护扩展程序。拦截广告,停止跟踪器,提高网站速度。","_Description.comment":"A short description of this extension (Ghostery)."} diff --git a/tools/edge/resources/zh-tw/resources.resjson b/tools/edge/resources/zh-tw/resources.resjson deleted file mode 100644 index 11d8c505d..000000000 --- a/tools/edge/resources/zh-tw/resources.resjson +++ /dev/null @@ -1 +0,0 @@ -{"DisplayName":"Ghostery –隱私廣告攔截器","_DisplayName.comment":"The title of this extension (Ghostery).","PublisherName":"Ghostery –隱私廣告攔截器","_PublisherName.comment":"The title of this extension (Ghostery).","Description":"Ghostery是一個強效的隱私擴增功能。攔截廣告、制止追蹤器及加快網頁運行。","_Description.comment":"A short description of this extension (Ghostery)."} diff --git a/webpack.config.js b/webpack.config.js index d17bdc26a..17d53f522 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -102,7 +102,7 @@ module.exports = { return chrome.i18n.getMessage(messageName, substitutions); } }), - // For @EDGE, set `chrome` global + // Set `chrome` global for browsers that don't support it new webpack.BannerPlugin({ banner: 'if(typeof browser!=="undefined"){chrome=browser;}', raw: true, From 29b29f8c7f0de33da273bde2073a874f2459ced4 Mon Sep 17 00:00:00 2001 From: Ben Date: Thu, 30 Jan 2020 11:39:07 -0500 Subject: [PATCH 3/3] Update edge download location in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 98fb17697..3cc588152 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ Ghostery helps you browse smarter by giving you control over ads and tracking te **Opera** – [Download](https://addons.opera.com/en/extensions/details/ghostery/) -**Edge** – [Download](https://www.microsoft.com/en-us/store/p/ghostery/9nblggh52ngz) +**Edge** – [Download](https://microsoftedge.microsoft.com/addons/detail/fclbdkbhjlgkbpfldjodgjncejkkjcme) ## Installation