From 6f49a5554fb80999b684e47302d4f2cd583599b4 Mon Sep 17 00:00:00 2001 From: Agampreet Singh <68941022+agam778@users.noreply.github.com> Date: Wed, 8 May 2024 21:53:13 +0530 Subject: [PATCH] Enable/Disable ad blocking in all windows when turned on/off from menu --- app/menu.js | 46 ++++++++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/app/menu.js b/app/menu.js index b33896e..c5b9913 100644 --- a/app/menu.js +++ b/app/menu.js @@ -394,13 +394,15 @@ const menulayout = [ message: "Ads and trackers will no longer be blocked.", buttons: ["OK"], }); - ElectronBlocker.fromPrebuiltAdsAndTracking(fetch).then( - (blocker) => { - blocker.disableBlockingInSession( - BrowserWindow.getFocusedWindow().webContents.session - ); + ElectronBlocker.fromPrebuiltAdsAndTracking(fetch).then((blocker) => { + BrowserWindow.getAllWindows().forEach(window => { + blocker.disableBlockingInSession(window.webContents.session); + }); + }).catch((error) => { + if (error.message !== "Trying to disable blocking which was not enabled") { + console.error(error); } - ); + }); return; } if ( @@ -408,11 +410,10 @@ const menulayout = [ getValue("blockadsandtrackers") === undefined ) { setValue("blockadsandtrackers", "true"); - ElectronBlocker.fromPrebuiltAdsAndTracking(fetch).then( - (blocker) => { - blocker.enableBlockingInSession( - BrowserWindow.getFocusedWindow().webContents.session - ); + ElectronBlocker.fromPrebuiltAdsAndTracking(fetch).then((blocker) => { + BrowserWindow.getAllWindows().forEach(window => { + blocker.enableBlockingInSession(window.webContents.session); + }) dialog.showMessageBoxSync({ type: "info", title: "Block Ads and Trackers", @@ -749,13 +750,15 @@ const menulayout = [ message: "Ads and trackers will no longer be blocked.", buttons: ["OK"], }); - ElectronBlocker.fromPrebuiltAdsAndTracking(fetch).then( - (blocker) => { - blocker.disableBlockingInSession( - BrowserWindow.getFocusedWindow().webContents.session - ); + ElectronBlocker.fromPrebuiltAdsAndTracking(fetch).then((blocker) => { + BrowserWindow.getAllWindows().forEach(window => { + blocker.disableBlockingInSession(window.webContents.session); + }); + }).catch((error) => { + if (error.message !== "Trying to disable blocking which was not enabled") { + console.error(error); } - ); + }); return; } if ( @@ -763,11 +766,10 @@ const menulayout = [ getValue("blockadsandtrackers") === undefined ) { setValue("blockadsandtrackers", "true"); - ElectronBlocker.fromPrebuiltAdsAndTracking(fetch).then( - (blocker) => { - blocker.enableBlockingInSession( - BrowserWindow.getFocusedWindow().webContents.session - ); + ElectronBlocker.fromPrebuiltAdsAndTracking(fetch).then((blocker) => { + BrowserWindow.getAllWindows().forEach(window => { + blocker.enableBlockingInSession(window.webContents.session); + }) dialog.showMessageBoxSync({ type: "info", title: "Block Ads and Trackers",