From 8ea34aaeda46a5d43df54f3084953d0d1beb6811 Mon Sep 17 00:00:00 2001 From: Krzysztof Modras Date: Tue, 2 Apr 2024 14:23:39 +0200 Subject: [PATCH 1/9] Adblocker version bump --- extension-manifest-v2/package.json | 4 +- extension-manifest-v3/package.json | 4 +- package-lock.json | 78 +++++++++++++++--------------- 3 files changed, 43 insertions(+), 43 deletions(-) diff --git a/extension-manifest-v2/package.json b/extension-manifest-v2/package.json index 387f3afe7..a8ee0b97b 100644 --- a/extension-manifest-v2/package.json +++ b/extension-manifest-v2/package.json @@ -37,8 +37,8 @@ }, "homepage": "https://github.com/ghostery/ghostery-extension#readme", "dependencies": { - "@cliqz/adblocker": "^1.26.12", - "@cliqz/adblocker-webextension": "^1.26.12", + "@cliqz/adblocker": "^1.27.0", + "@cliqz/adblocker-webextension": "^1.27.0", "@cliqz/url-parser": "^1.1.5", "@duckduckgo/autoconsent": "^10.3.2", "@ghostery/libs": "^1.0.0", diff --git a/extension-manifest-v3/package.json b/extension-manifest-v3/package.json index 50902c3b1..889ec435f 100644 --- a/extension-manifest-v3/package.json +++ b/extension-manifest-v3/package.json @@ -31,8 +31,8 @@ "web-ext": "^7.11.0" }, "dependencies": { - "@cliqz/adblocker": "^1.26.12", - "@cliqz/adblocker-webextension-cosmetics": "^1.26.12", + "@cliqz/adblocker": "^1.27.0", + "@cliqz/adblocker-webextension-cosmetics": "^1.27.0", "@duckduckgo/autoconsent": "^10.3.2", "@ghostery/libs": "^1.0.0", "@ghostery/trackers-preview": "^1.0.0", diff --git a/package-lock.json b/package-lock.json index ddc4751ce..dfb0b2e9c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32,8 +32,8 @@ "hasInstallScript": true, "license": "MPL-2.0", "dependencies": { - "@cliqz/adblocker": "^1.26.12", - "@cliqz/adblocker-webextension": "^1.26.12", + "@cliqz/adblocker": "^1.27.0", + "@cliqz/adblocker-webextension": "^1.27.0", "@cliqz/url-parser": "^1.1.5", "@duckduckgo/autoconsent": "^10.3.2", "@ghostery/libs": "^1.0.0", @@ -110,8 +110,8 @@ "hasInstallScript": true, "license": "MPL-2.0", "dependencies": { - "@cliqz/adblocker": "^1.26.12", - "@cliqz/adblocker-webextension-cosmetics": "^1.26.12", + "@cliqz/adblocker": "^1.27.0", + "@cliqz/adblocker-webextension-cosmetics": "^1.27.0", "@duckduckgo/autoconsent": "^10.3.2", "@ghostery/libs": "^1.0.0", "@ghostery/trackers-preview": "^1.0.0", @@ -722,51 +722,51 @@ } }, "node_modules/@cliqz/adblocker": { - "version": "1.26.15", - "resolved": "https://registry.npmjs.org/@cliqz/adblocker/-/adblocker-1.26.15.tgz", - "integrity": "sha512-qmrQd0a6DC+HXWvamezwtdg91mvdyvrmufcg0l/I2EGJV1nLC81S81/Fln3TnJiJTuC7rqko6pq2E+GfoDdRPg==", + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/@cliqz/adblocker/-/adblocker-1.27.0.tgz", + "integrity": "sha512-et4TMfy5Y2DNRr05pKVsVOuwFhRseaf7Z3xCMBTAuQTAbgiOJtaWsD7Dl5H/mitLxYA7owXRN+afThZ3pb1rYg==", "dependencies": { - "@cliqz/adblocker-content": "^1.26.15", - "@cliqz/adblocker-extended-selectors": "^1.26.15", + "@cliqz/adblocker-content": "^1.27.0", + "@cliqz/adblocker-extended-selectors": "^1.27.0", "@remusao/guess-url-type": "^1.2.1", "@remusao/small": "^1.2.1", "@remusao/smaz": "^1.9.1", - "@types/chrome": "^0.0.256", + "@types/chrome": "^0.0.263", "@types/firefox-webext-browser": "^120.0.0", "tldts-experimental": "^6.0.14" } }, "node_modules/@cliqz/adblocker-content": { - "version": "1.26.15", - "resolved": "https://registry.npmjs.org/@cliqz/adblocker-content/-/adblocker-content-1.26.15.tgz", - "integrity": "sha512-F1G+HCVW1SjCtHihXdh4iR6JeuI/50agBPl4EmAmZhlC2ALLAf0kZDswNr2L5sNQ1/j1XBbeNzu4YrDonnq7NQ==", + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/@cliqz/adblocker-content/-/adblocker-content-1.27.0.tgz", + "integrity": "sha512-53AZF6pXRkrcBPlppe4F9HQtRWtSC4hUHl5RCRlfxHVMDH8kqVHktyeKpB4cjoIyH19av9mYQ66f7JBC+Bk/Bg==", "dependencies": { - "@cliqz/adblocker-extended-selectors": "^1.26.15" + "@cliqz/adblocker-extended-selectors": "^1.27.0" } }, "node_modules/@cliqz/adblocker-extended-selectors": { - "version": "1.26.15", - "resolved": "https://registry.npmjs.org/@cliqz/adblocker-extended-selectors/-/adblocker-extended-selectors-1.26.15.tgz", - "integrity": "sha512-dM51IMHrRjQPj0JnoYfIBRoG9q9yYKQ7uDW27wfy0QW4pqlGRkEuHjXKK2dC8aOWUgNjDypnzWxfUMf7v0lEXA==" + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/@cliqz/adblocker-extended-selectors/-/adblocker-extended-selectors-1.27.0.tgz", + "integrity": "sha512-NeXJSFQ6K2APg6xSHcDNmr5FREyxlMeQvinftGa2wL0UGYRMpAk0jM+lTLxi7IfO7eEqIQzc72hqo0dwUuvbhg==" }, "node_modules/@cliqz/adblocker-webextension": { - "version": "1.26.15", - "resolved": "https://registry.npmjs.org/@cliqz/adblocker-webextension/-/adblocker-webextension-1.26.15.tgz", - "integrity": "sha512-ZKyA276V4B4R21tE3C6zMDDjYmpmsa6KRlNhvisY+5G7uHGQUnB5KxcudsPpIGjKgNHQsmKdfxdTVJLRW2Qk1g==", + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/@cliqz/adblocker-webextension/-/adblocker-webextension-1.27.0.tgz", + "integrity": "sha512-c6rR8ZCdckjgNgMoU7aWDietavc5EzTXMI8P/jz5eJnVVq7MmXEJ4dDPf7CWHk1S/uygbxOjvpsLGFyivLP9AA==", "dependencies": { - "@cliqz/adblocker": "^1.26.15", - "@cliqz/adblocker-content": "^1.26.15", + "@cliqz/adblocker": "^1.27.0", + "@cliqz/adblocker-content": "^1.27.0", "tldts-experimental": "^6.0.14", "webextension-polyfill-ts": "^0.26.0" } }, "node_modules/@cliqz/adblocker-webextension-cosmetics": { - "version": "1.26.15", - "resolved": "https://registry.npmjs.org/@cliqz/adblocker-webextension-cosmetics/-/adblocker-webextension-cosmetics-1.26.15.tgz", - "integrity": "sha512-lAb1acO+4adb9zL+pbUgdj5z+maA33unUO+zgk1lZfA7dVtEFOnMl9HKp8e03yus3XSZ765omnz+IvZDZXw7GA==", + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/@cliqz/adblocker-webextension-cosmetics/-/adblocker-webextension-cosmetics-1.27.0.tgz", + "integrity": "sha512-VAjg6k90SLWtSwOYfdUwmdkqtrhqSPqxFK9cVIXeJ0A6n+lgIvgMQBsHjc3r/w1KNvAcC9TYulFEZFQNOFssMg==", "dependencies": { - "@cliqz/adblocker-content": "^1.26.15", - "@cliqz/adblocker-extended-selectors": "^1.26.15" + "@cliqz/adblocker-content": "^1.27.0", + "@cliqz/adblocker-extended-selectors": "^1.27.0" } }, "node_modules/@cliqz/url-parser": { @@ -3339,9 +3339,9 @@ } }, "node_modules/@types/chrome": { - "version": "0.0.256", - "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.256.tgz", - "integrity": "sha512-NleTQw4DNzhPwObLNuQ3i3nvX1rZ1mgnx5FNHc2KP+Cj1fgd3BrT5yQ6Xvs+7H0kNsYxCY+lxhiCwsqq3JwtEg==", + "version": "0.0.263", + "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.263.tgz", + "integrity": "sha512-As0vzv99ov3M6ZR7R6VzhMWFZXkPMrFrCEXXVrMN576Cm70fTkj7Df2CF+qEo170JepX50pd11cX6O4DSAtl2Q==", "dependencies": { "@types/filesystem": "*", "@types/har-format": "*" @@ -3374,17 +3374,17 @@ "dev": true }, "node_modules/@types/filesystem": { - "version": "0.0.35", - "resolved": "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.35.tgz", - "integrity": "sha512-1eKvCaIBdrD2mmMgy5dwh564rVvfEhZTWVQQGRNn0Nt4ZEnJ0C8oSUCzvMKRA4lGde5oEVo+q2MrTTbV/GHDCQ==", + "version": "0.0.36", + "resolved": "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.36.tgz", + "integrity": "sha512-vPDXOZuannb9FZdxgHnqSwAG/jvdGM8Wq+6N4D/d80z+D4HWH+bItqsZaVRQykAn6WEVeEkLm2oQigyHtgb0RA==", "dependencies": { "@types/filewriter": "*" } }, "node_modules/@types/filewriter": { - "version": "0.0.32", - "resolved": "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.32.tgz", - "integrity": "sha512-Kpi2GXQyYJdjL8mFclL1eDgihn1SIzorMZjD94kdPZh9E4VxGOeyjPxi5LpsM4Zku7P0reqegZTt2GxhmA9VBg==" + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.33.tgz", + "integrity": "sha512-xFU8ZXTw4gd358lb2jw25nxY9QAgqn2+bKKjKOYfNCzN4DKCFetK7sPtrlpg66Ywe3vWY9FNxprZawAh9wfJ3g==" }, "node_modules/@types/firefox-webext-browser": { "version": "120.0.0", @@ -4144,9 +4144,9 @@ } }, "node_modules/addons-linter/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" From 03c6a2462c2c6349382a69b19100e644ad09ab68 Mon Sep 17 00:00:00 2001 From: Krzysztof Modras Date: Tue, 2 Apr 2024 14:24:51 +0200 Subject: [PATCH 2/9] Patching ghostery-common --- patches/ghostery-common+1.3.14.patch | 47 ++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 patches/ghostery-common+1.3.14.patch diff --git a/patches/ghostery-common+1.3.14.patch b/patches/ghostery-common+1.3.14.patch new file mode 100644 index 000000000..4d8213c53 --- /dev/null +++ b/patches/ghostery-common+1.3.14.patch @@ -0,0 +1,47 @@ +diff --git a/node_modules/ghostery-common/build/gbe/adblocker/manager.js b/node_modules/ghostery-common/build/gbe/adblocker/manager.js +index d490618..e7e92ba 100644 +--- a/node_modules/ghostery-common/build/gbe/adblocker/manager.js ++++ b/node_modules/ghostery-common/build/gbe/adblocker/manager.js +@@ -23,6 +23,17 @@ var _regions = _interopRequireDefault(require("./regions")); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + ++var { isMobile, isFirefox, isChromium, isEdge } = require("../core/platform"); ++ ++const ENV = new Map([ ++ ['ext_ghostery', true], ++ ['cap_html_filtering', true], ++ ['env_firefox', isFirefox], ++ ['env_chromium', isChromium], ++ ['env_edge', isEdge], ++ ['env_mobile', isMobile], ++]); ++ + /*! + * Copyright (c) 2014-present Cliqz GmbH. All rights reserved. + * +@@ -353,7 +364,7 @@ class EngineManager { + + const cumulativeDiff = _adblocker.default.mergeDiffs(diffs); + +- let updated = this.engine.updateFromDiff(cumulativeDiff); ++ let updated = this.engine.updateFromDiff(cumulativeDiff, ENV); + timer.stop(); + + if (updated === true) { +@@ -407,6 +418,7 @@ class EngineManager { + + try { + this.engine = _adblocker.default.WebExtensionBlocker.deserialize(serialized); ++ this.engine.updateEnv(ENV); + } catch (ex) { + // In case there is a mismatch between the version of the code + // and the serialization format of the engine on disk, we might +@@ -449,6 +461,7 @@ class EngineManager { + + try { + this.engine = _adblocker.default.WebExtensionBlocker.deserialize(serialized); ++ this.engine.updateEnv(ENV); + } catch (ex) { + _logger.default.error('exception while loading remote engine', ex); + From 00a586cd7872b50da72b6539911aef5a980b9c0f Mon Sep 17 00:00:00 2001 From: Krzysztof Modras Date: Tue, 2 Apr 2024 14:36:42 +0200 Subject: [PATCH 3/9] Ghostery 10: enable preprocessor --- extension-manifest-v3/src/utils/engines.js | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/extension-manifest-v3/src/utils/engines.js b/extension-manifest-v3/src/utils/engines.js index 453ae0b17..5657b0dd9 100644 --- a/extension-manifest-v3/src/utils/engines.js +++ b/extension-manifest-v3/src/utils/engines.js @@ -22,6 +22,17 @@ import { registerDatabase } from '/utils/indexeddb.js'; export const CUSTOM_ENGINE = 'custom-filters'; +const checkUserAgent = (pattern) => navigator.userAgent.indexOf(pattern) !== -1; + +const ENV = new Map([ + ['ext_ghostery', true], + ['cap_html_filtering', true], + ['env_firefox', checkUserAgent('Firefox')], + ['env_chromium', checkUserAgent('Chrome')], + ['env_edge', checkUserAgent('Edg')], + ['env_mobile', checkUserAgent('Mobile')], +]); + const engines = new Map(); function loadFromMemory(name) { @@ -95,6 +106,7 @@ async function loadFromStorage(name) { if (engineBytes) { const engine = FiltersEngine.deserialize(engineBytes); + engine.updateEnv(ENV); shareExceptions(name, engine); saveToMemory(name, engine); @@ -191,7 +203,7 @@ async function update(name) { const engineBytes = new Uint8Array(arrayBuffer); engine = FiltersEngine.deserialize(engineBytes); - + engine.updateEnv(ENV); shareExceptions(name, engine); // Save the new engine to memory and storage saveToMemory(name, engine); @@ -280,7 +292,7 @@ async function update(name) { // `engine.update` method will return `true` if anything was // updated and `false` otherwise. const cumulativeDiff = mergeDiffs(diffs); - let updated = engine.updateFromDiff(cumulativeDiff); + let updated = engine.updateFromDiff(cumulativeDiff, ENV); // Last but not least, check if resources.txt should be updated. This can be // done independently of filters as the data is stored in a separate object. @@ -326,7 +338,7 @@ async function loadFromDisk(name) { const engineBytes = new Uint8Array(await response.arrayBuffer()); const engine = FiltersEngine.deserialize(engineBytes); - + engine.updateEnv(ENV); shareExceptions(name, engine); saveToMemory(name, engine); saveToStorage(name); From 0e3329a9a004a0fdc48a8bf9aac26587be3f963f Mon Sep 17 00:00:00 2001 From: Krzysztof Modras Date: Thu, 4 Apr 2024 21:26:09 +0200 Subject: [PATCH 4/9] HTML filtering is available on Firefox only --- extension-manifest-v3/src/utils/engines.js | 2 +- patches/ghostery-common+1.3.14.patch | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/extension-manifest-v3/src/utils/engines.js b/extension-manifest-v3/src/utils/engines.js index 5657b0dd9..67cda52b9 100644 --- a/extension-manifest-v3/src/utils/engines.js +++ b/extension-manifest-v3/src/utils/engines.js @@ -26,7 +26,7 @@ const checkUserAgent = (pattern) => navigator.userAgent.indexOf(pattern) !== -1; const ENV = new Map([ ['ext_ghostery', true], - ['cap_html_filtering', true], + ['cap_html_filtering', checkUserAgent('Firefox')], ['env_firefox', checkUserAgent('Firefox')], ['env_chromium', checkUserAgent('Chrome')], ['env_edge', checkUserAgent('Edg')], diff --git a/patches/ghostery-common+1.3.14.patch b/patches/ghostery-common+1.3.14.patch index 4d8213c53..adefde231 100644 --- a/patches/ghostery-common+1.3.14.patch +++ b/patches/ghostery-common+1.3.14.patch @@ -3,14 +3,14 @@ index d490618..e7e92ba 100644 --- a/node_modules/ghostery-common/build/gbe/adblocker/manager.js +++ b/node_modules/ghostery-common/build/gbe/adblocker/manager.js @@ -23,6 +23,17 @@ var _regions = _interopRequireDefault(require("./regions")); - + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - + +var { isMobile, isFirefox, isChromium, isEdge } = require("../core/platform"); + +const ENV = new Map([ + ['ext_ghostery', true], -+ ['cap_html_filtering', true], ++ ['cap_html_filtering', isFirefox], + ['env_firefox', isFirefox], + ['env_chromium', isChromium], + ['env_edge', isEdge], @@ -21,16 +21,16 @@ index d490618..e7e92ba 100644 * Copyright (c) 2014-present Cliqz GmbH. All rights reserved. * @@ -353,7 +364,7 @@ class EngineManager { - + const cumulativeDiff = _adblocker.default.mergeDiffs(diffs); - + - let updated = this.engine.updateFromDiff(cumulativeDiff); + let updated = this.engine.updateFromDiff(cumulativeDiff, ENV); timer.stop(); - + if (updated === true) { @@ -407,6 +418,7 @@ class EngineManager { - + try { this.engine = _adblocker.default.WebExtensionBlocker.deserialize(serialized); + this.engine.updateEnv(ENV); @@ -38,10 +38,10 @@ index d490618..e7e92ba 100644 // In case there is a mismatch between the version of the code // and the serialization format of the engine on disk, we might @@ -449,6 +461,7 @@ class EngineManager { - + try { this.engine = _adblocker.default.WebExtensionBlocker.deserialize(serialized); + this.engine.updateEnv(ENV); } catch (ex) { _logger.default.error('exception while loading remote engine', ex); - + From d27f0832629cf2c0f3f5e9fca42eba3936130563 Mon Sep 17 00:00:00 2001 From: Krzysztof Modras Date: Fri, 5 Apr 2024 13:39:12 +0200 Subject: [PATCH 5/9] Ghostery 10: enable preprocessor for custom filters --- .../src/pages/settings/components/custom-filters.js | 4 ++-- extension-manifest-v3/src/utils/engines.js | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/extension-manifest-v3/src/pages/settings/components/custom-filters.js b/extension-manifest-v3/src/pages/settings/components/custom-filters.js index 9e27ee693..0c1a7b050 100644 --- a/extension-manifest-v3/src/pages/settings/components/custom-filters.js +++ b/extension-manifest-v3/src/pages/settings/components/custom-filters.js @@ -44,7 +44,7 @@ function parseFilters(text = '') { } async function submitFilters(host) { - const { networkFilters, cosmeticFilters } = host.filters; + const { networkFilters } = host.filters; // Update DNR if (__PLATFORM__ !== 'firefox') { @@ -75,7 +75,7 @@ async function submitFilters(host) { // Update engine await chrome.runtime.sendMessage({ action: 'customFilters:engine', - filters: [...networkFilters, ...cosmeticFilters].join('\n'), + filters: host.input.text, }); // Save input diff --git a/extension-manifest-v3/src/utils/engines.js b/extension-manifest-v3/src/utils/engines.js index 67cda52b9..57077e025 100644 --- a/extension-manifest-v3/src/utils/engines.js +++ b/extension-manifest-v3/src/utils/engines.js @@ -390,6 +390,7 @@ export async function createCustomEngine(filters = '') { enableHtmlFiltering: true, }); const engine = FiltersEngine.parse(filters, config); + engine.updateEnv(ENV); saveToMemory(CUSTOM_ENGINE, engine); saveToStorage(CUSTOM_ENGINE); From b41e316ce00442f38827dc338dae223128ae90cd Mon Sep 17 00:00:00 2001 From: Krzysztof Modras Date: Fri, 5 Apr 2024 14:22:49 +0200 Subject: [PATCH 6/9] Ghostery 8: proper integration --- package-lock.json | 13 +++++--- patches/ghostery-common+1.3.14.patch | 47 ---------------------------- 2 files changed, 8 insertions(+), 52 deletions(-) delete mode 100644 patches/ghostery-common+1.3.14.patch diff --git a/package-lock.json b/package-lock.json index dfb0b2e9c..24fd8c39f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,9 @@ "extension-manifest-v2", "extension-manifest-v3" ], + "dependencies": { + "ghostery-common": "^1.3.15" + }, "devDependencies": { "csv": "^6.2.5", "eslint": "^8.36.0", @@ -9487,13 +9490,13 @@ } }, "node_modules/ghostery-common": { - "version": "1.3.14", - "resolved": "https://registry.npmjs.org/ghostery-common/-/ghostery-common-1.3.14.tgz", - "integrity": "sha512-HIxtBvCljPaoMh2OfnWn3UB2cqLSKsfhjsyGNS28ZUV+siUxzEnM4iVC5M2d/yqx1wGpzN/i3InAyB8dDFAMRQ==", + "version": "1.3.15", + "resolved": "https://registry.npmjs.org/ghostery-common/-/ghostery-common-1.3.15.tgz", + "integrity": "sha512-C1rsDKpAmpDxFZ51mufEKL4xtRSP9X6j7sQCKC+peVauPccnz35Pk4Ac6tzGltUflHVNsT5mdfO3YoB7QD5eqA==", "dependencies": { "@cliqz-oss/dexie": "^2.0.4", - "@cliqz/adblocker-webextension": "^1.26.9", - "@cliqz/adblocker-webextension-cosmetics": "^1.26.9", + "@cliqz/adblocker-webextension": "^1.27.0", + "@cliqz/adblocker-webextension-cosmetics": "^1.27.0", "@cliqz/url-parser": "^1.1.5", "abortcontroller-polyfill": "^1.5.0", "anonymous-credentials": "https://github.com/whotracksme/anonymous-credentials/releases/download/1.0.0/anonymous-credentials-1.0.0.tgz", diff --git a/patches/ghostery-common+1.3.14.patch b/patches/ghostery-common+1.3.14.patch deleted file mode 100644 index adefde231..000000000 --- a/patches/ghostery-common+1.3.14.patch +++ /dev/null @@ -1,47 +0,0 @@ -diff --git a/node_modules/ghostery-common/build/gbe/adblocker/manager.js b/node_modules/ghostery-common/build/gbe/adblocker/manager.js -index d490618..e7e92ba 100644 ---- a/node_modules/ghostery-common/build/gbe/adblocker/manager.js -+++ b/node_modules/ghostery-common/build/gbe/adblocker/manager.js -@@ -23,6 +23,17 @@ var _regions = _interopRequireDefault(require("./regions")); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -+var { isMobile, isFirefox, isChromium, isEdge } = require("../core/platform"); -+ -+const ENV = new Map([ -+ ['ext_ghostery', true], -+ ['cap_html_filtering', isFirefox], -+ ['env_firefox', isFirefox], -+ ['env_chromium', isChromium], -+ ['env_edge', isEdge], -+ ['env_mobile', isMobile], -+]); -+ - /*! - * Copyright (c) 2014-present Cliqz GmbH. All rights reserved. - * -@@ -353,7 +364,7 @@ class EngineManager { - - const cumulativeDiff = _adblocker.default.mergeDiffs(diffs); - -- let updated = this.engine.updateFromDiff(cumulativeDiff); -+ let updated = this.engine.updateFromDiff(cumulativeDiff, ENV); - timer.stop(); - - if (updated === true) { -@@ -407,6 +418,7 @@ class EngineManager { - - try { - this.engine = _adblocker.default.WebExtensionBlocker.deserialize(serialized); -+ this.engine.updateEnv(ENV); - } catch (ex) { - // In case there is a mismatch between the version of the code - // and the serialization format of the engine on disk, we might -@@ -449,6 +461,7 @@ class EngineManager { - - try { - this.engine = _adblocker.default.WebExtensionBlocker.deserialize(serialized); -+ this.engine.updateEnv(ENV); - } catch (ex) { - _logger.default.error('exception while loading remote engine', ex); - From 07767ecbbf68479882dbeae3d1c6225c5f21229d Mon Sep 17 00:00:00 2001 From: Krzysztof Modras Date: Fri, 5 Apr 2024 14:31:37 +0200 Subject: [PATCH 7/9] Clean package-lock --- package-lock.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 24fd8c39f..1ae275fdc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,9 +13,6 @@ "extension-manifest-v2", "extension-manifest-v3" ], - "dependencies": { - "ghostery-common": "^1.3.15" - }, "devDependencies": { "csv": "^6.2.5", "eslint": "^8.36.0", From 75ba1eafe65fb8fa902a3ba80a06cde2444946d9 Mon Sep 17 00:00:00 2001 From: Krzysztof Modras Date: Fri, 5 Apr 2024 14:36:29 +0200 Subject: [PATCH 8/9] Cleanup --- extension-manifest-v3/src/utils/engines.js | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/extension-manifest-v3/src/utils/engines.js b/extension-manifest-v3/src/utils/engines.js index 57077e025..171f75c3c 100644 --- a/extension-manifest-v3/src/utils/engines.js +++ b/extension-manifest-v3/src/utils/engines.js @@ -33,6 +33,12 @@ const ENV = new Map([ ['env_mobile', checkUserAgent('Mobile')], ]); +const deserializeEngine = (engineBytes) => { + const engine = FiltersEngine.deserialize(engineBytes); + engine.updateEnv(ENV); + return engine; +}; + const engines = new Map(); function loadFromMemory(name) { @@ -105,8 +111,7 @@ async function loadFromStorage(name) { const engineBytes = await table.get(name); if (engineBytes) { - const engine = FiltersEngine.deserialize(engineBytes); - engine.updateEnv(ENV); + const engine = deserializeEngine(engineBytes); shareExceptions(name, engine); saveToMemory(name, engine); @@ -202,8 +207,7 @@ async function update(name) { .then((res) => res.arrayBuffer()); const engineBytes = new Uint8Array(arrayBuffer); - engine = FiltersEngine.deserialize(engineBytes); - engine.updateEnv(ENV); + engine = deserializeEngine(engineBytes); shareExceptions(name, engine); // Save the new engine to memory and storage saveToMemory(name, engine); @@ -337,8 +341,7 @@ async function loadFromDisk(name) { ); const engineBytes = new Uint8Array(await response.arrayBuffer()); - const engine = FiltersEngine.deserialize(engineBytes); - engine.updateEnv(ENV); + const engine = deserializeEngine(engineBytes); shareExceptions(name, engine); saveToMemory(name, engine); saveToStorage(name); From d2beaa0bf11d33c1ec4ba2fa4d1e42ffb4fe8f83 Mon Sep 17 00:00:00 2001 From: Krzysztof Modras Date: Fri, 5 Apr 2024 14:46:09 +0200 Subject: [PATCH 9/9] Cleanup --- extension-manifest-v3/src/utils/engines.js | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/extension-manifest-v3/src/utils/engines.js b/extension-manifest-v3/src/utils/engines.js index 171f75c3c..5a573f571 100644 --- a/extension-manifest-v3/src/utils/engines.js +++ b/extension-manifest-v3/src/utils/engines.js @@ -33,11 +33,20 @@ const ENV = new Map([ ['env_mobile', checkUserAgent('Mobile')], ]); -const deserializeEngine = (engineBytes) => { +function deserializeEngine(engineBytes) { const engine = FiltersEngine.deserialize(engineBytes); engine.updateEnv(ENV); return engine; -}; +} + +function parseFilters(filters) { + const config = new Config({ + enableHtmlFiltering: ENV.get('cap_html_filtering'), + }); + const engine = FiltersEngine.parse(filters, config); + engine.updateEnv(ENV); + return engine; +} const engines = new Map(); @@ -389,11 +398,7 @@ export async function init(name) { } export async function createCustomEngine(filters = '') { - const config = new Config({ - enableHtmlFiltering: true, - }); - const engine = FiltersEngine.parse(filters, config); - engine.updateEnv(ENV); + const engine = parseFilters(filters); saveToMemory(CUSTOM_ENGINE, engine); saveToStorage(CUSTOM_ENGINE);