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 41e6d0266..000000000
Binary files a/tools/edge/assets/icon150.png and /dev/null differ
diff --git a/tools/edge/assets/icon44.png b/tools/edge/assets/icon44.png
deleted file mode 100644
index 0cbfa8c55..000000000
Binary files a/tools/edge/assets/icon44.png and /dev/null differ
diff --git a/tools/edge/assets/icon50.png b/tools/edge/assets/icon50.png
deleted file mode 100644
index f33aad25e..000000000
Binary files a/tools/edge/assets/icon50.png and /dev/null differ
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,