From c146a0bd1185096ce5fdc5c2a9ecf4aaec3bf2d6 Mon Sep 17 00:00:00 2001 From: Andrea Marchesini Date: Tue, 30 Nov 2021 20:13:48 +0100 Subject: [PATCH] Move the permission observers in the background scripts --- src/js/background/assignManager.js | 1 - src/js/background/backgroundLogic.js | 34 +++++++++++++++++++++++ src/js/background/messageHandler.js | 6 ---- src/js/background/mozillaVpnBackground.js | 13 +++++++++ src/js/mozillaVpn.js | 13 --------- src/js/options.js | 9 ------ 6 files changed, 47 insertions(+), 29 deletions(-) diff --git a/src/js/background/assignManager.js b/src/js/background/assignManager.js index e699fb3..a768122 100644 --- a/src/js/background/assignManager.js +++ b/src/js/background/assignManager.js @@ -386,7 +386,6 @@ window.assignManager = { if (browser.proxy) { browser.proxy.onRequest.addListener(this.handleProxifiedRequest, {urls: [""]}); } - return; }, init() { diff --git a/src/js/background/backgroundLogic.js b/src/js/background/backgroundLogic.js index 05cad39..0b414f9 100644 --- a/src/js/background/backgroundLogic.js +++ b/src/js/background/backgroundLogic.js @@ -19,6 +19,40 @@ const backgroundLogic = { } } }); + + browser.permissions.onAdded.addListener(permissions => { + permissions.permissions.forEach(permission => { + switch (permission) { + case "bookmarks": + break; + + case "nativeMessaging": + break; + + case "proxy": + assignManager.maybeAddProxyListeners(); + break; + } + }); + }); + browser.permissions.onRemoved.addListener(permissions => { + permissions.permissions.forEach(async permission => { + switch (permission) { + case "bookmarks": + assignManager.resetBookmarksMenuItem(); + break; + + case "nativeMessaging": + await MozillaVPN_Background.removeMozillaVpnProxies(); + await browser.runtime.reload(); + break; + + case "proxy": + break; + } + }); + }); + }, async getExtensionInfo() { diff --git a/src/js/background/messageHandler.js b/src/js/background/messageHandler.js index 883186a..5d644b6 100644 --- a/src/js/background/messageHandler.js +++ b/src/js/background/messageHandler.js @@ -20,9 +20,6 @@ const messageHandler = { case "resetSync": response = sync.resetSync(); break; - case "resetBookmarksContext": - response = assignManager.resetBookmarksMenuItem(); - break; case "deleteContainer": response = backgroundLogic.deleteContainer(m.message.userContextId); break; @@ -91,9 +88,6 @@ const messageHandler = { true ); break; - case "maybeAddProxyListeners": - response = await assignManager.maybeAddProxyListeners(); - break; case "assignAndReloadInContainer": tab = await assignManager.reloadPageInContainer( m.url, diff --git a/src/js/background/mozillaVpnBackground.js b/src/js/background/mozillaVpnBackground.js index 8a12730..2711302 100644 --- a/src/js/background/mozillaVpnBackground.js +++ b/src/js/background/mozillaVpnBackground.js @@ -100,6 +100,19 @@ const MozillaVPN_Background = { get isolationKey() { return this._isolationKey; }, + + async removeMozillaVpnProxies() { + const proxies = await proxifiedContainers.retrieveAll(); + if (!proxies) { + return; + } + for (const proxyObj of proxies) { + const { proxy } = proxyObj; + if (proxy.countryCode !== undefined) { + await proxifiedContainers.delete(proxyObj.cookieStoreId); + } + } + }, }; MozillaVPN_Background.init(); diff --git a/src/js/mozillaVpn.js b/src/js/mozillaVpn.js index 0cb4a37..d7f03b0 100644 --- a/src/js/mozillaVpn.js +++ b/src/js/mozillaVpn.js @@ -252,19 +252,6 @@ const MozillaVPN = { } return nextServer; }, - - async removeMozillaVpnProxies() { - const proxies = await proxifiedContainers.retrieveAll(); - if (!proxies) { - return; - } - for (const proxyObj of proxies) { - const { proxy } = proxyObj; - if (proxy.countryCode !== undefined) { - await proxifiedContainers.delete(proxyObj.cookieStoreId); - } - } - } }; window.MozillaVPN = MozillaVPN; diff --git a/src/js/options.js b/src/js/options.js index c0c89dd..c8eba44 100644 --- a/src/js/options.js +++ b/src/js/options.js @@ -14,15 +14,6 @@ document.querySelectorAll("[data-permission-id]").forEach( async(el) => { } else { await browser.permissions.remove({ permissions: [permissionId] }); } - switch (permissionId) { - case "bookmarks": - return await browser.runtime.sendMessage({ method: "resetBookmarksContext" }); - case "nativeMessaging": - await MozillaVPN.removeMozillaVpnProxies(); - return await browser.runtime.reload(); - case "proxy": - return await browser.runtime.sendMessage({ method: "maybeAddProxyListeners" }); - } }); });