Handle proxy and nativeMessaging permission disabling + enabling

This commit is contained in:
Lesley Norton 2021-11-29 16:16:46 -06:00
parent ed63f18cf1
commit 1b165aebb5
No known key found for this signature in database
GPG key ID: E98FBAEE3F13956E
5 changed files with 30 additions and 11 deletions

View file

@ -382,6 +382,13 @@ window.assignManager = {
return currentContainerState && currentContainerState.isIsolated;
},
maybeAddProxyListeners() {
if (browser.proxy) {
browser.proxy.onRequest.addListener(this.handleProxifiedRequest, {urls: ["<all_urls>"]});
}
return;
},
init() {
browser.contextMenus.onClicked.addListener((info, tab) => {
info.bookmarkId ?
@ -390,7 +397,7 @@ window.assignManager = {
});
// Before anything happens we decide if the request should be proxified
browser.proxy.onRequest.addListener(this.handleProxifiedRequest, {urls: ["<all_urls>"]});
this.maybeAddProxyListeners();
// Before a request is handled by the browser we decide if we should
// route through a different container

View file

@ -91,6 +91,9 @@ const messageHandler = {
true
);
break;
case "maybeAddProxyListeners":
response = await assignManager.maybeAddProxyListeners();
break;
case "assignAndReloadInContainer":
tab = await assignManager.reloadPageInContainer(
m.url,

View file

@ -251,6 +251,19 @@ const MozillaVPN = {
randomInteger = (randomInteger - server.weight);
}
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);
}
}
}
};

View file

@ -14,20 +14,14 @@ document.querySelectorAll("[data-permission-id]").forEach( async(el) => {
} else {
await browser.permissions.remove({ permissions: [permissionId] });
}
switch (permissionId) {
case "bookmarks":
browser.runtime.sendMessage({ method: "resetBookmarksContext" });
break;
return await browser.runtime.sendMessage({ method: "resetBookmarksContext" });
case "nativeMessaging":
console.log("do native messaging things");
console.log("if disabled - remove mozilla vpn proxy configurations");
break;
await MozillaVPN.removeMozillaVpnProxies();
return await browser.runtime.reload();
case "proxy":
console.log("do proxy things...");
console.log("if disabled - remove proxy configurations");
return await browser.runtime.sendMessage({ method: "maybeAddProxyListeners" });
}
});
});

View file

@ -4,6 +4,8 @@
<head>
<meta charset="utf-8">
<script type="text/javascript" src="./js/i18n.js"></script>
<script type="text/javascript" src="./js/mozillaVpn.js"></script>
<script type="text/javascript" src="./js/proxified-containers.js"></script>
<link rel="stylesheet" href="css/options.css">
</head>