Skip to content

feat(plugins): restore and fix adblocker plugin#4212

Open
glimp-ly wants to merge 15 commits intopear-devs:masterfrom
glimp-ly:ad-blocker-restore
Open

feat(plugins): restore and fix adblocker plugin#4212
glimp-ly wants to merge 15 commits intopear-devs:masterfrom
glimp-ly:ad-blocker-restore

Conversation

@glimp-ly
Copy link

Description

This PR restores and fixes the adblocker plugin functionality, which was experiencing issues in recent versions.

Changes made

  • Fixed implementation errors within the adblocker plugin.
  • Applied general adjustments to src/index.ts to ensure compatibility with transparency changes on Linux.
  • Integrated updated translations (German).

Additional notes

The commits include a specific fix for transparency and window support in Linux environments.

glimp-ly and others added 10 commits December 26, 2025 01:02
…tana

Habilita el plugin transparent-player para Linux y corrige la configuración de ventana para asegurar compatibilidad con compositores (Picom).
Cambios realizados:
- Habilitado plugin para plataforma Linux y activado por defecto.
- Añadido switch 'enable-transparent-visuals' en main process para Linux.
- Configurada ventana principal con 'transparent: true' y 'backgroundColor' transparente cuando el plugin está activo.
- Corregida la carga del icono usando rutas absolutas (soluciona icono faltante en build).
- Establecido título de ventana explícito a 'Youtube Music'.
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
- Restore missing adblocker plugin source files
- Fix imports to use @ghostery/adblocker-electron instead of deprecated @cliqz dependencies
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remaining comments which cannot be posted as a review comment to avoid GitHub Rate Limit

eslint

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····

...((disableDefaultLists && !Array.isArray(disableDefaultLists)) ||


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ········

(Array.isArray(disableDefaultLists) && disableDefaultLists.length > 0)


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····

...additionalBlockLists,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···· with ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····

blocker = await ElectronBlocker.fromLists(


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ············ with ······

(url: string) => net.fetch(url),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ············ with ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ········

// When generating the engine for caching, do not load network filters


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········

// So that enhancing the session works as expected


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········

// Allowing to define multiple webRequest listeners


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········

loadNetworkFilters: session !== undefined,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ············ with ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········ with ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ············ with ······

blocker.enableBlockingInSession(session);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····

console.log('Error loading adBlocker engine', error);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········ with ····

blocker.disableBlockingInSession(session);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ··blocker·!==·undefined·&&·blocker.isBlockingEnabled(session); with blocker·!==·undefined·&&·blocker.isBlockingEnabled(session);⏎

blocker !== undefined && blocker.isBlockingEnabled(session);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···· with ··

loadAdBlockerEngine,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

unloadAdBlockerEngine,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

* Whether to enable the adblocker.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ····· with ···


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ····· with ···

* When enabled, the adblocker will cache the blocklists.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

* Which adblocker to use.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

* @default blockers.InPlayer


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ····· with ···


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

blocker: (typeof blockers)[keyof typeof blockers];


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···· with ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

* Additional list of filters to use.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

* @example ["https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/filters.txt"]


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···· with ··

additionalBlockLists: string[];


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

* Disable the default blocklists.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

disableDefaultLists: boolean;


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

name: () => t('plugins.adblocker.name'),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···· with ··

description: () => t('plugins.adblocker.description'),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

restartNeeded: false,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···· with ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····

blocker: blockers.InPlayer,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········ with ····

additionalBlockLists: [],


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········ with ····

disableDefaultLists: false,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

} as AdblockerConfig,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···· with ··

menu: async ({ getConfig, setConfig }) => {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········ with ····

const config = await getConfig();


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ············ with ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········

label: t('plugins.adblocker.menu.blocker'),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ········

submenu: Object.values(blockers).map((blocker) => ({


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···················· with ··········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···················· with ··········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···················· with ··········

checked: (config.blocker || blockers.WithBlocklists) === blocker,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························ with ············

setConfig({ blocker });


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ············ with ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········ with ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···· with ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···· with ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····

mainWindow: null as BrowserWindow | null,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····

async start({ getConfig, window }) {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······

const config = await getConfig();


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ············ with ······

this.mainWindow = window;


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······

if (config.blocker === blockers.WithBlocklists) {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········

await loadAdBlockerEngine(


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···················· with ··········

window.webContents.session,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··········

config.additionalBlockLists,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···················· with ··········

config.disableDefaultLists,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········ with ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······

if (isBlockerEnabled(window.webContents.session)) {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········

unloadAdBlockerEngine(window.webContents.session);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········ with ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····

async onConfigChange(newConfig) {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ············ with ······

if (this.mainWindow) {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···················· with ··········

newConfig.blocker === blockers.WithBlocklists &&


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···················· with ··········

!isBlockerEnabled(this.mainWindow.webContents.session)


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··········

await loadAdBlockerEngine(


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························ with ············

this.mainWindow.webContents.session,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ············


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························ with ············

newConfig.additionalBlockLists,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························ with ············

newConfig.disableDefaultLists,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ············ with ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········script: with ····script:⏎·····

script: 'window.JSON.parse = window._proxyJsonParse; window._proxyJsonParse = undefined; window.Response.prototype.json = window._proxyResponseJson; window._proxyResponseJson = undefined; 0',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····

async start({ getConfig }) {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ············ with ······

const config = await getConfig();


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······

if (config.blocker === blockers.WithBlocklists) {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········

// Preload adblocker to inject scripts/styles


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········

await injectCliqzPreload();


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······

} else if (config.blocker === blockers.InPlayer && !isInjected()) {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········

inject(contextBridge);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ········

await webFrame.executeJavaScript(this.script);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········ with ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····

async onConfigChange(newConfig) {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······

if (newConfig.blocker === blockers.WithBlocklists) {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········

await injectCliqzPreload();


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······

} else if (newConfig.blocker === blockers.InPlayer && !isInjected()) {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ········

inject(contextBridge);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········

await webFrame.executeJavaScript(this.script);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········ with ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

await import('@ghostery/adblocker-electron-preload');


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert

export const isInjected: () => boolean;


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

WithBlocklists: 'With blocklists',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···· with ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert

glimp-ly and others added 4 commits December 26, 2025 17:09
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remaining comments which cannot be posted as a review comment to avoid GitHub Rate Limit

eslint

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····

...((disableDefaultLists && !Array.isArray(disableDefaultLists)) ||


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ········

(Array.isArray(disableDefaultLists) && disableDefaultLists.length > 0)


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········ with ····

...additionalBlockLists,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····

blocker = await ElectronBlocker.fromLists(


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ············ with ······

(url: string) => net.fetch(url),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ············ with ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ········

// When generating the engine for caching, do not load network filters


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········

// So that enhancing the session works as expected


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········

// Allowing to define multiple webRequest listeners


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········

loadNetworkFilters: session !== undefined,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ············ with ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········ with ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ············ with ······

blocker.enableBlockingInSession(session);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····

console.log('Error loading adBlocker engine', error);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········ with ····

blocker.disableBlockingInSession(session);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ··blocker·!==·undefined·&&·blocker.isBlockingEnabled(session); with blocker·!==·undefined·&&·blocker.isBlockingEnabled(session);⏎

blocker !== undefined && blocker.isBlockingEnabled(session);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···· with ··

loadAdBlockerEngine,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

unloadAdBlockerEngine,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

* Whether to enable the adblocker.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ····· with ···


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ····· with ···

* When enabled, the adblocker will cache the blocklists.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

* Which adblocker to use.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

* @default blockers.InPlayer


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ····· with ···


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

blocker: (typeof blockers)[keyof typeof blockers];


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···· with ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

* Additional list of filters to use.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

* @example ["https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/filters.txt"]


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···· with ··

additionalBlockLists: string[];


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

* Disable the default blocklists.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

disableDefaultLists: boolean;


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

name: () => t('plugins.adblocker.name'),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···· with ··

description: () => t('plugins.adblocker.description'),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

restartNeeded: false,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···· with ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····

blocker: blockers.InPlayer,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········ with ····

additionalBlockLists: [],


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········ with ····

disableDefaultLists: false,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

} as AdblockerConfig,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···· with ··

menu: async ({ getConfig, setConfig }) => {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········ with ····

const config = await getConfig();


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ············ with ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········

label: t('plugins.adblocker.menu.blocker'),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ········

submenu: Object.values(blockers).map((blocker) => ({


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···················· with ··········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···················· with ··········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···················· with ··········

checked: (config.blocker || blockers.WithBlocklists) === blocker,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························ with ············

setConfig({ blocker });


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ············ with ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········ with ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···· with ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···· with ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····

mainWindow: null as BrowserWindow | null,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····

async start({ getConfig, window }) {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······

const config = await getConfig();


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ············ with ······

this.mainWindow = window;


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······

if (config.blocker === blockers.WithBlocklists) {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········

await loadAdBlockerEngine(


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···················· with ··········

window.webContents.session,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··········

config.additionalBlockLists,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···················· with ··········

config.disableDefaultLists,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········ with ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······

if (isBlockerEnabled(window.webContents.session)) {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········

unloadAdBlockerEngine(window.webContents.session);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········ with ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····

async onConfigChange(newConfig) {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ············ with ······

if (this.mainWindow) {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···················· with ··········

newConfig.blocker === blockers.WithBlocklists &&


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···················· with ··········

!isBlockerEnabled(this.mainWindow.webContents.session)


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··········

await loadAdBlockerEngine(


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························ with ············

this.mainWindow.webContents.session,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ············


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························ with ············

newConfig.additionalBlockLists,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························ with ············

newConfig.disableDefaultLists,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ············ with ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········script: with ····script:⏎·····

script: 'window.JSON.parse = window._proxyJsonParse; window._proxyJsonParse = undefined; window.Response.prototype.json = window._proxyResponseJson; window._proxyResponseJson = undefined; 0',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····

async start({ getConfig }) {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ············ with ······

const config = await getConfig();


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······

if (config.blocker === blockers.WithBlocklists) {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········

// Preload adblocker to inject scripts/styles


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········

await injectCliqzPreload();


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······

} else if (config.blocker === blockers.InPlayer && !isInjected()) {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········

inject(contextBridge);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ········

await webFrame.executeJavaScript(this.script);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········ with ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····

async onConfigChange(newConfig) {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······

if (newConfig.blocker === blockers.WithBlocklists) {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········

await injectCliqzPreload();


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······

} else if (newConfig.blocker === blockers.InPlayer && !isInjected()) {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ········

inject(contextBridge);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········

await webFrame.executeJavaScript(this.script);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········ with ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

await import('@ghostery/adblocker-electron-preload');


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert

export const isInjected: () => boolean;


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

WithBlocklists: 'With blocklists',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···· with ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert


const SOURCES = [
'https://raw.githubusercontent.com/kbinani/adblock-youtube-ads/master/signed.txt',
// UBlock Origin
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

Suggested change
// UBlock Origin
UBlock Origin

const SOURCES = [
'https://raw.githubusercontent.com/kbinani/adblock-youtube-ads/master/signed.txt',
// UBlock Origin
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/filters.txt',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

Suggested change
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/filters.txt',
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/filters.txt',

'https://raw.githubusercontent.com/kbinani/adblock-youtube-ads/master/signed.txt',
// UBlock Origin
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/filters.txt',
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/quick-fixes.txt',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

Suggested change
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/quick-fixes.txt',
ttps://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/quick-fixes.txt',

// UBlock Origin
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/filters.txt',
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/quick-fixes.txt',
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/unbreak.txt',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···· with ··

Suggested change
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/unbreak.txt',
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/unbreak.txt',

'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/filters.txt',
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/quick-fixes.txt',
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/unbreak.txt',
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/filters-2020.txt',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

Suggested change
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/filters-2020.txt',
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/filters-2020.txt',

const cachingOptions =
cache && additionalBlockLists.length === 0
? {
path: path.join(cacheDirectory, 'adblocker-engine.bin'),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······

Suggested change
path: path.join(cacheDirectory, 'adblocker-engine.bin'),
path: path.join(cacheDirectory, 'adblocker-engine.bin'),

cache && additionalBlockLists.length === 0
? {
path: path.join(cacheDirectory, 'adblocker-engine.bin'),
read: promises.readFile,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······

Suggested change
read: promises.readFile,
read: promises.readFile,

? {
path: path.join(cacheDirectory, 'adblocker-engine.bin'),
read: promises.readFile,
write: promises.writeFile,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ··········

Suggested change
write: promises.writeFile,
write: promises.writeFile,

read: promises.readFile,
write: promises.writeFile,
}
: undefined;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······

Suggested change
: undefined;
: undefined;

write: promises.writeFile,
}
: undefined;
const lists = [
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

Suggested change
const lists = [
const lists = [

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remaining comments which cannot be posted as a review comment to avoid GitHub Rate Limit

eslint

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ········

(Array.isArray(disableDefaultLists) && disableDefaultLists.length > 0)


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ············ with ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········ with ····

...additionalBlockLists,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···· with ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········ with ····

blocker = await ElectronBlocker.fromLists(


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ············ with ······

(url: string) => net.fetch(url),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ········

// When generating the engine for caching, do not load network filters


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········

// So that enhancing the session works as expected


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········

// Allowing to define multiple webRequest listeners


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········

loadNetworkFilters: session !== undefined,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ············ with ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ············ with ······

blocker.enableBlockingInSession(session);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····

console.log('Error loading adBlocker engine', error);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········ with ····

blocker.disableBlockingInSession(session);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ··blocker·!==·undefined·&&·blocker.isBlockingEnabled(session); with blocker·!==·undefined·&&·blocker.isBlockingEnabled(session);⏎

blocker !== undefined && blocker.isBlockingEnabled(session);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···· with ··

loadAdBlockerEngine,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

unloadAdBlockerEngine,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

* Whether to enable the adblocker.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ····· with ···


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ····· with ···

* When enabled, the adblocker will cache the blocklists.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

* Which adblocker to use.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

* @default blockers.InPlayer


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ····· with ···


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

blocker: (typeof blockers)[keyof typeof blockers];


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···· with ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

* Additional list of filters to use.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

* @example ["https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/filters.txt"]


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···· with ··

additionalBlockLists: string[];


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

* Disable the default blocklists.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

disableDefaultLists: boolean;


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

name: () => t('plugins.adblocker.name'),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···· with ··

description: () => t('plugins.adblocker.description'),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

restartNeeded: false,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···· with ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····

blocker: blockers.InPlayer,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········ with ····

additionalBlockLists: [],


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········ with ····

disableDefaultLists: false,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

} as AdblockerConfig,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···· with ··

menu: async ({ getConfig, setConfig }) => {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········ with ····

const config = await getConfig();


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ············ with ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········

label: t('plugins.adblocker.menu.blocker'),


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ········

submenu: Object.values(blockers).map((blocker) => ({


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···················· with ··········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···················· with ··········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···················· with ··········

checked: (config.blocker || blockers.WithBlocklists) === blocker,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························ with ············

setConfig({ blocker });


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ············ with ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········ with ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···· with ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···· with ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····

mainWindow: null as BrowserWindow | null,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····

async start({ getConfig, window }) {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······

const config = await getConfig();


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ············ with ······

this.mainWindow = window;


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······

if (config.blocker === blockers.WithBlocklists) {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········

await loadAdBlockerEngine(


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···················· with ··········

window.webContents.session,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··········

config.additionalBlockLists,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···················· with ··········

config.disableDefaultLists,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········ with ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······

if (isBlockerEnabled(window.webContents.session)) {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········

unloadAdBlockerEngine(window.webContents.session);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········ with ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····

async onConfigChange(newConfig) {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ············ with ······

if (this.mainWindow) {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···················· with ··········

newConfig.blocker === blockers.WithBlocklists &&


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···················· with ··········

!isBlockerEnabled(this.mainWindow.webContents.session)


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··········

await loadAdBlockerEngine(


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························ with ············

this.mainWindow.webContents.session,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ············


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························ with ············

newConfig.additionalBlockLists,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························ with ············

newConfig.disableDefaultLists,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ············ with ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········script: with ····script:⏎·····

script: 'window.JSON.parse = window._proxyJsonParse; window._proxyJsonParse = undefined; window.Response.prototype.json = window._proxyResponseJson; window._proxyResponseJson = undefined; 0',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····

async start({ getConfig }) {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ············ with ······

const config = await getConfig();


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······

if (config.blocker === blockers.WithBlocklists) {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········

// Preload adblocker to inject scripts/styles


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········

await injectCliqzPreload();


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······

} else if (config.blocker === blockers.InPlayer && !isInjected()) {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········

inject(contextBridge);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ········

await webFrame.executeJavaScript(this.script);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········ with ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····

async onConfigChange(newConfig) {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······

if (newConfig.blocker === blockers.WithBlocklists) {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········

await injectCliqzPreload();


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······

} else if (newConfig.blocker === blockers.InPlayer && !isInjected()) {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ········

inject(contextBridge);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ········

await webFrame.executeJavaScript(this.script);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········ with ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

await import('@ghostery/adblocker-electron-preload');


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert

export const isInjected: () => boolean;


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

WithBlocklists: 'With blocklists',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···· with ··


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert

const SOURCES = [
'https://raw.githubusercontent.com/kbinani/adblock-youtube-ads/master/signed.txt',
// UBlock Origin
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/filters.txt',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

Suggested change
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/filters.txt',
ttps://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/filters.txt',

'https://raw.githubusercontent.com/kbinani/adblock-youtube-ads/master/signed.txt',
// UBlock Origin
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/filters.txt',
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/quick-fixes.txt',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

Suggested change
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/quick-fixes.txt',
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/quick-fixes.txt',

// UBlock Origin
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/filters.txt',
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/quick-fixes.txt',
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/unbreak.txt',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ··

Suggested change
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/unbreak.txt',
ttps://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/unbreak.txt',

'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/filters.txt',
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/quick-fixes.txt',
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/unbreak.txt',
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/filters-2020.txt',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···· with ··

Suggested change
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/filters-2020.txt',
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/filters-2020.txt',

'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/quick-fixes.txt',
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/unbreak.txt',
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/filters-2020.txt',
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/filters-2021.txt',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···· with ··

Suggested change
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/filters-2021.txt',
'https://raw.githubusercontent.com/ghostery/adblocker/master/packages/adblocker/assets/ublock-origin/filters-2021.txt',

? {
path: path.join(cacheDirectory, 'adblocker-engine.bin'),
read: promises.readFile,
write: promises.writeFile,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ················ with ··········

Suggested change
write: promises.writeFile,
write: promises.writeFile,

path: path.join(cacheDirectory, 'adblocker-engine.bin'),
read: promises.readFile,
write: promises.writeFile,
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····

Suggested change
}
}

read: promises.readFile,
write: promises.writeFile,
}
: undefined;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ······

Suggested change
: undefined;
: undefined;

write: promises.writeFile,
}
: undefined;
const lists = [
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···· with ··

Suggested change
const lists = [
const lists = [

}
: undefined;
const lists = [
...((disableDefaultLists && !Array.isArray(disableDefaultLists)) ||
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····

Suggested change
...((disableDefaultLists && !Array.isArray(disableDefaultLists)) ||
...((disableDefaultLists && !Array.isArray(disableDefaultLists)) ||

@J0w03L
Copy link
Contributor

J0w03L commented Jan 1, 2026

Been running this for a good few hours now and all seems to be working fine!

@glimp-ly
Copy link
Author

glimp-ly commented Jan 4, 2026

Been running this for a good few hours now and all seems to be working fine!

That's right, since I did the PR, I've been using my compiled version and so far nothing has failed me, everything is going well and the transparency works wonderfully.

@Yumeo0
Copy link
Contributor

Yumeo0 commented Jan 4, 2026

Works perfectly for me too

@Dradgit Dradgit mentioned this pull request Jan 18, 2026
5 tasks
@JellyBrick JellyBrick added the wontfix This will not be worked on label Jan 29, 2026
@J0w03L
Copy link
Contributor

J0w03L commented Feb 6, 2026

Is this being marked as wontfix an indication that adblock is no longer going to be a feature on here? If so, that's somewhat disappointing to hear...

I ask in the hopes that the label has been given in relation to the transparency fix instead.

@Yumeo0
Copy link
Contributor

Yumeo0 commented Feb 6, 2026

Is this being marked as wontfix an indication that adblock is no longer going to be a feature on here? If so, that's somewhat disappointing to hear...

If it really won't be merged I guess I'll have to keep my fork up-to date. It has the adblock built in. I have a relatively recent release here https://github.com/Yumeo0/pear-desktop/releases

@ArjixWasTaken
Copy link
Member

@Yumeo0 I am going to actively maintain my own fork, would you like to join forces?
I can't be too adventurous on the upstream project, that's why I want to work on a fork.

@Yumeo0
Copy link
Contributor

Yumeo0 commented Feb 7, 2026

@ArjixWasTaken Sure. I'm down for it.

ArjixWasTaken added a commit to ArjixWasTaken/pear-desktop that referenced this pull request Feb 7, 2026
…op#4212)

* feat(linux): habilitar soporte de transparencia y correcciones de ventana

Habilita el plugin transparent-player para Linux y corrige la configuración de ventana para asegurar compatibilidad con compositores (Picom).
Cambios realizados:
- Habilitado plugin para plataforma Linux y activado por defecto.
- Añadido switch 'enable-transparent-visuals' en main process para Linux.
- Configurada ventana principal con 'transparent: true' y 'backgroundColor' transparente cuando el plugin está activo.
- Corregida la carga del icono usando rutas absolutas (soluciona icono faltante en build).
- Establecido título de ventana explícito a 'Youtube Music'.

* Update src/index.ts

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update src/index.ts

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update src/index.ts

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update src/index.ts

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update src/index.ts

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update src/index.ts

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update src/index.ts

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* chore(i18n): Translated using Weblate (German)

Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/

* feat(plugins): restore and fix adblocker plugin
- Restore missing adblocker plugin source files
- Fix imports to use @ghostery/adblocker-electron instead of deprecated @cliqz dependencies

* Update src/plugins/adblocker/blocker.ts

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update src/plugins/adblocker/blocker.ts

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update src/plugins/adblocker/blocker.ts

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update src/plugins/adblocker/blocker.ts

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update src/plugins/adblocker/blocker.ts

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
@JellyBrick
Copy link
Collaborator

Is this being marked as wontfix an indication that adblock is no longer going to be a feature on here? If so, that's somewhat disappointing to hear...

If it really won't be merged I guess I'll have to keep my fork up-to date. It has the adblock built in. I have a relatively recent release here Yumeo0/pear-desktop/releases

@J0w03L @Yumeo0
Nothing has been finalized yet. I'm planning to add a similar feature differently, rather than simply restoring the previous plugin as is. (To be honest, I'm not entirely sure how the adblocker violates legal regulations, but I did receive a formal legal request regarding it.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

wontfix This will not be worked on

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants