From be04d66aa8c6cbb93079377568bfe833e2ad36e5 Mon Sep 17 00:00:00 2001 From: JellyBrick Date: Thu, 19 Dec 2024 19:53:43 +0900 Subject: [PATCH] fix: use ghostry adblocker --- package.json | 6 +- pnpm-lock.yaml | 141 +++++++----------- src/plugins/adblocker/blocker.ts | 5 +- src/plugins/adblocker/index.ts | 10 +- .../injectors/inject-cliqz-preload.ts | 2 +- 5 files changed, 61 insertions(+), 103 deletions(-) diff --git a/package.json b/package.json index 6822f78b..c8d58bd3 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "license", "!node_modules", "node_modules/custom-electron-prompt/**", - "node_modules/@cliqz/adblocker-electron-preload/**", + "node_modules/@ghostery/adblocker-electron-preload/**", "node_modules/@ffmpeg.wasm/core-mt/**", "!node_modules/**/*.map", "!node_modules/**/*.ts" @@ -225,14 +225,14 @@ } }, "dependencies": { - "@cliqz/adblocker-electron": "1.27.1", - "@cliqz/adblocker-electron-preload": "1.27.1", "@electron-toolkit/tsconfig": "1.0.1", "@electron/remote": "2.1.2", "@ffmpeg.wasm/core-mt": "0.12.0", "@ffmpeg.wasm/main": "0.12.0", "@floating-ui/dom": "1.6.12", "@foobar404/wave": "2.0.5", + "@ghostery/adblocker-electron": "2.3.1", + "@ghostery/adblocker-electron-preload": "2.3.1", "@hono/node-server": "1.13.7", "@hono/swagger-ui": "0.5.0", "@hono/zod-openapi": "0.18.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a5878162..48a05c62 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -27,12 +27,6 @@ importers: .: dependencies: - '@cliqz/adblocker-electron': - specifier: 1.27.1 - version: 1.27.1(electron@33.2.1) - '@cliqz/adblocker-electron-preload': - specifier: 1.27.1 - version: 1.27.1(electron@33.2.1) '@electron-toolkit/tsconfig': specifier: 1.0.1 version: 1.0.1(@types/node@22.9.3) @@ -51,6 +45,12 @@ importers: '@foobar404/wave': specifier: 2.0.5 version: 2.0.5 + '@ghostery/adblocker-electron': + specifier: 2.3.1 + version: 2.3.1(electron@33.2.1) + '@ghostery/adblocker-electron-preload': + specifier: 2.3.1 + version: 2.3.1(electron@33.2.1) '@hono/node-server': specifier: 1.13.7 version: 1.13.7(hono@4.6.14) @@ -424,30 +424,6 @@ packages: '@bufbuild/protobuf@2.2.2': resolution: {integrity: sha512-UNtPCbrwrenpmrXuRwn9jYpPoweNXj8X5sMvYgsqYyaH8jQ6LfUJSk3dJLnBK+6sfYPrF4iAIo5sd5HQ+tg75A==} - '@cliqz/adblocker-content@1.34.0': - resolution: {integrity: sha512-5LcV8UZv49RWwtpom9ve4TxJIFKd+bjT59tS/2Z2c22Qxx5CW1ncO/T+ybzk31z422XplQfd0ZE6gMGGKs3EMg==} - deprecated: This project has been renamed to @ghostery/adblocker-content. Install using @ghostery/adblocker-content instead - - '@cliqz/adblocker-electron-preload@1.27.1': - resolution: {integrity: sha512-J6qHgqnqpPNwACIuIjtackMRfJbUM+bXc9w4XmPXt1jW7OCuxr8JVjxQamKWWW4PVP7YqtpZCwlvCxQGgCEGoQ==} - deprecated: This project has been renamed to @ghostery/adblocker-electron-preload. Install using @ghostery/adblocker-electron-preload instead - peerDependencies: - electron: '>11' - - '@cliqz/adblocker-electron@1.27.1': - resolution: {integrity: sha512-mV49IrXKOUa23T87E0+ewGCtSdgVIZHalKVDabC+g2DY6nU57XjHe4YlAPQCZFRW59HHAxALYjn5wHYGWzus8Q==} - deprecated: This project has been renamed to @ghostery/adblocker-electron. Install using @ghostery/adblocker-electron instead - peerDependencies: - electron: '>11' - - '@cliqz/adblocker-extended-selectors@1.34.0': - resolution: {integrity: sha512-lNrgdUPpsBWHjrwXy2+Z5nX/Gy5YAvNwFMLqkeMdjzrybwPIalJJN2e+YtkS1I6mVmOMNppF5cv692OAVoI74g==} - deprecated: This project has been renamed to @ghostery/adblocker-extended-selectors. Install using @ghostery/adblocker-extended-selectors instead - - '@cliqz/adblocker@1.34.0': - resolution: {integrity: sha512-d7TeUl5t+TOMJe7/CRYtf+x6hbd8N25DtH7guQTIjjr3AFVortxiAIgNejGvVqy0by4eNByw+oVil15oqxz2Eg==} - deprecated: This project has been renamed to @ghostery/adblocker. Install using @ghostery/adblocker instead - '@develar/schema-utils@2.6.5': resolution: {integrity: sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==} engines: {node: '>= 8.9.0'} @@ -835,6 +811,25 @@ packages: '@foobar404/wave@2.0.5': resolution: {integrity: sha512-V/ydadtv5ObCw8aEg+Qy3YSq1eyinEWzJfRI43Ovmj7VmAvEdWAdL7MatoMbiIVYPATkNDVF7GOxX1xirxM9dA==} + '@ghostery/adblocker-content@2.3.1': + resolution: {integrity: sha512-8ZTY1sEE218b0EMk3Q9fv/cWwUxunSCyBOaKuviEmJY5EyvPa1VbGPuTq/Qdvo1kduD8nLEzCwgWhcT3F3TT0Q==} + + '@ghostery/adblocker-electron-preload@2.3.1': + resolution: {integrity: sha512-ljNnxNJiX0PaNzlH3kH7R5jAmeRqZm0nlyvPshGFft/sF2YOSpbwQnIIF55V/cg7rM6rWLuv6FEKh+xprL5dLw==} + peerDependencies: + electron: '>11' + + '@ghostery/adblocker-electron@2.3.1': + resolution: {integrity: sha512-zu1g5iBx2Owhc4AmWgA9s/tzDkw+AqPoFzRb50GYtO62WCef4sqmmLX1MMIfApzrGdy16NDSnXdwtDcRMshfgw==} + peerDependencies: + electron: '>11' + + '@ghostery/adblocker-extended-selectors@2.3.1': + resolution: {integrity: sha512-hDNiOd/1V4b6NTkNnMkZUUmhMwwo8+5rpSUtQUFzCCCzy+v5izHt4rBr2RGeK5L1pNq0NbFxZJjBHFDbiQiS1A==} + + '@ghostery/adblocker@2.3.1': + resolution: {integrity: sha512-6k8ZFHjYII54a32qrKwhnTbrPfR+KPgM6GlyAiEm8OCZoewN1cfBfSw5GVpzaAB2yJ4DzazmP8Wq/UBvEk5mHg==} + '@hono/node-server@1.13.7': resolution: {integrity: sha512-kTfUMsoloVKtRA2fLiGSd9qBddmru9KadNyhJCwgKBxTiNkaAJEwkVN9KV/rS4HtmmNRtUh6P+YpmjRMl0d9vQ==} engines: {node: '>=18.14.1'} @@ -1294,9 +1289,6 @@ packages: '@types/cacheable-request@6.0.3': resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} - '@types/chrome@0.0.278': - resolution: {integrity: sha512-PDIJodOu7o54PpSOYLybPW/MDZBCjM1TKgf31I3Q/qaEbNpIH09rOM3tSEH3N7Q+FAqb1933LhF8ksUPYeQLNg==} - '@types/color-convert@2.0.4': resolution: {integrity: sha512-Ub1MmDdyZ7mX//g25uBAoH/mWGd9swVbt8BseymnaE18SU4po/PjmCrHxqIIRjBo3hV/vh1KGr0eMxUhp+t+dQ==} @@ -1321,21 +1313,9 @@ packages: '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} - '@types/filesystem@0.0.36': - resolution: {integrity: sha512-vPDXOZuannb9FZdxgHnqSwAG/jvdGM8Wq+6N4D/d80z+D4HWH+bItqsZaVRQykAn6WEVeEkLm2oQigyHtgb0RA==} - - '@types/filewriter@0.0.33': - resolution: {integrity: sha512-xFU8ZXTw4gd358lb2jw25nxY9QAgqn2+bKKjKOYfNCzN4DKCFetK7sPtrlpg66Ywe3vWY9FNxprZawAh9wfJ3g==} - - '@types/firefox-webext-browser@120.0.4': - resolution: {integrity: sha512-lBrpf08xhiZBigrtdQfUaqX1UauwZ+skbFiL8u2Tdra/rklkKadYmIzTwkNZSWtuZ7OKpFqbE2HHfDoFqvZf6w==} - '@types/fs-extra@9.0.13': resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} - '@types/har-format@1.2.16': - resolution: {integrity: sha512-fluxdy7ryD3MV6h8pTfTYpy/xQzCFC7m89nOH9y94cNqJ1mDIDPut7MnRHI3F6qRmh/cT2fUjG1MLdCNb4hE9A==} - '@types/howler@2.2.12': resolution: {integrity: sha512-hy769UICzOSdK0Kn1FBk4gN+lswcj1EKRkmiDtMkUGvFfYJzgaDXmVXkSShS2m89ERAatGIPnTUlp2HhfkVo5g==} @@ -4509,35 +4489,6 @@ snapshots: '@bufbuild/protobuf@2.2.2': {} - '@cliqz/adblocker-content@1.34.0': - dependencies: - '@cliqz/adblocker-extended-selectors': 1.34.0 - - '@cliqz/adblocker-electron-preload@1.27.1(electron@33.2.1)': - dependencies: - '@cliqz/adblocker-content': 1.34.0 - electron: 33.2.1 - - '@cliqz/adblocker-electron@1.27.1(electron@33.2.1)': - dependencies: - '@cliqz/adblocker': 1.34.0 - '@cliqz/adblocker-electron-preload': 1.27.1(electron@33.2.1) - electron: 33.2.1 - tldts-experimental: 6.1.64 - - '@cliqz/adblocker-extended-selectors@1.34.0': {} - - '@cliqz/adblocker@1.34.0': - dependencies: - '@cliqz/adblocker-content': 1.34.0 - '@cliqz/adblocker-extended-selectors': 1.34.0 - '@remusao/guess-url-type': 1.3.0 - '@remusao/small': 1.3.0 - '@remusao/smaz': 1.10.0 - '@types/chrome': 0.0.278 - '@types/firefox-webext-browser': 120.0.4 - tldts-experimental: 6.1.64 - '@develar/schema-utils@2.6.5': dependencies: ajv: 6.12.6 @@ -4821,6 +4772,33 @@ snapshots: '@foobar404/wave@2.0.5': {} + '@ghostery/adblocker-content@2.3.1': + dependencies: + '@ghostery/adblocker-extended-selectors': 2.3.1 + + '@ghostery/adblocker-electron-preload@2.3.1(electron@33.2.1)': + dependencies: + '@ghostery/adblocker-content': 2.3.1 + electron: 33.2.1 + + '@ghostery/adblocker-electron@2.3.1(electron@33.2.1)': + dependencies: + '@ghostery/adblocker': 2.3.1 + '@ghostery/adblocker-electron-preload': 2.3.1(electron@33.2.1) + electron: 33.2.1 + tldts-experimental: 6.1.64 + + '@ghostery/adblocker-extended-selectors@2.3.1': {} + + '@ghostery/adblocker@2.3.1': + dependencies: + '@ghostery/adblocker-content': 2.3.1 + '@ghostery/adblocker-extended-selectors': 2.3.1 + '@remusao/guess-url-type': 1.3.0 + '@remusao/small': 1.3.0 + '@remusao/smaz': 1.10.0 + tldts-experimental: 6.1.64 + '@hono/node-server@1.13.7(hono@4.6.14)': dependencies: hono: 4.6.14 @@ -5328,11 +5306,6 @@ snapshots: '@types/node': 22.9.3 '@types/responselike': 1.0.3 - '@types/chrome@0.0.278': - dependencies: - '@types/filesystem': 0.0.36 - '@types/har-format': 1.2.16 - '@types/color-convert@2.0.4': dependencies: '@types/color-name': 1.1.5 @@ -5364,20 +5337,10 @@ snapshots: '@types/estree@1.0.6': {} - '@types/filesystem@0.0.36': - dependencies: - '@types/filewriter': 0.0.33 - - '@types/filewriter@0.0.33': {} - - '@types/firefox-webext-browser@120.0.4': {} - '@types/fs-extra@9.0.13': dependencies: '@types/node': 22.9.3 - '@types/har-format@1.2.16': {} - '@types/howler@2.2.12': {} '@types/html-to-text@9.0.4': {} diff --git a/src/plugins/adblocker/blocker.ts b/src/plugins/adblocker/blocker.ts index ea1b60d0..368adfe3 100644 --- a/src/plugins/adblocker/blocker.ts +++ b/src/plugins/adblocker/blocker.ts @@ -2,7 +2,7 @@ import path from 'node:path'; import fs, { promises } from 'node:fs'; -import { ElectronBlocker } from '@cliqz/adblocker-electron'; +import { ElectronBlocker } from '@ghostery/adblocker-electron'; import { app, net } from 'electron'; const SOURCES = [ @@ -55,6 +55,7 @@ export const loadAdBlockerEngine = async ( (url: string) => net.fetch(url), lists, { + enableCompression: true, // When generating the engine for caching, do not load network filters // So that enhancing the session works as expected // Allowing to define multiple webRequest listeners @@ -66,7 +67,7 @@ export const loadAdBlockerEngine = async ( blocker.enableBlockingInSession(session); } } catch (error) { - console.log('Error loading adBlocker engine', error); + console.error('Error loading adBlocker engine', error); } }; diff --git a/src/plugins/adblocker/index.ts b/src/plugins/adblocker/index.ts index c52faf79..ade1b479 100644 --- a/src/plugins/adblocker/index.ts +++ b/src/plugins/adblocker/index.ts @@ -8,7 +8,6 @@ import { unloadAdBlockerEngine, } from './blocker'; -import injectCliqzPreload from './injectors/inject-cliqz-preload'; import { inject, isInjected } from './injectors/inject'; import { loadAdSpeedup } from './adSpeedup'; @@ -134,18 +133,13 @@ export default createPlugin({ async start({ getConfig }) { const config = await getConfig(); - if (config.blocker === blockers.WithBlocklists) { - // Preload adblocker to inject scripts/styles - await injectCliqzPreload(); - } else if (config.blocker === blockers.InPlayer && !isInjected()) { + if (config.blocker === blockers.InPlayer && !isInjected()) { inject(contextBridge); await webFrame.executeJavaScript(this.script); } }, async onConfigChange(newConfig) { - if (newConfig.blocker === blockers.WithBlocklists) { - await injectCliqzPreload(); - } else if (newConfig.blocker === blockers.InPlayer && !isInjected()) { + if (newConfig.blocker === blockers.InPlayer && !isInjected()) { inject(contextBridge); await webFrame.executeJavaScript(this.script); } diff --git a/src/plugins/adblocker/injectors/inject-cliqz-preload.ts b/src/plugins/adblocker/injectors/inject-cliqz-preload.ts index e2419bee..27463f0b 100644 --- a/src/plugins/adblocker/injectors/inject-cliqz-preload.ts +++ b/src/plugins/adblocker/injectors/inject-cliqz-preload.ts @@ -1,3 +1,3 @@ export default async () => { - await import('@cliqz/adblocker-electron-preload'); + await import('@ghostery/adblocker-electron-preload'); };