Handle proxy and nativeMessaging permission disabling + enabling
This commit is contained in:
parent
ed63f18cf1
commit
1b165aebb5
5 changed files with 30 additions and 11 deletions
|
@ -382,6 +382,13 @@ window.assignManager = {
|
||||||
return currentContainerState && currentContainerState.isIsolated;
|
return currentContainerState && currentContainerState.isIsolated;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
maybeAddProxyListeners() {
|
||||||
|
if (browser.proxy) {
|
||||||
|
browser.proxy.onRequest.addListener(this.handleProxifiedRequest, {urls: ["<all_urls>"]});
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
},
|
||||||
|
|
||||||
init() {
|
init() {
|
||||||
browser.contextMenus.onClicked.addListener((info, tab) => {
|
browser.contextMenus.onClicked.addListener((info, tab) => {
|
||||||
info.bookmarkId ?
|
info.bookmarkId ?
|
||||||
|
@ -390,7 +397,7 @@ window.assignManager = {
|
||||||
});
|
});
|
||||||
|
|
||||||
// Before anything happens we decide if the request should be proxified
|
// 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
|
// Before a request is handled by the browser we decide if we should
|
||||||
// route through a different container
|
// route through a different container
|
||||||
|
|
|
@ -91,6 +91,9 @@ const messageHandler = {
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
|
case "maybeAddProxyListeners":
|
||||||
|
response = await assignManager.maybeAddProxyListeners();
|
||||||
|
break;
|
||||||
case "assignAndReloadInContainer":
|
case "assignAndReloadInContainer":
|
||||||
tab = await assignManager.reloadPageInContainer(
|
tab = await assignManager.reloadPageInContainer(
|
||||||
m.url,
|
m.url,
|
||||||
|
|
|
@ -251,6 +251,19 @@ const MozillaVPN = {
|
||||||
randomInteger = (randomInteger - server.weight);
|
randomInteger = (randomInteger - server.weight);
|
||||||
}
|
}
|
||||||
return nextServer;
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -14,20 +14,14 @@ document.querySelectorAll("[data-permission-id]").forEach( async(el) => {
|
||||||
} else {
|
} else {
|
||||||
await browser.permissions.remove({ permissions: [permissionId] });
|
await browser.permissions.remove({ permissions: [permissionId] });
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (permissionId) {
|
switch (permissionId) {
|
||||||
case "bookmarks":
|
case "bookmarks":
|
||||||
browser.runtime.sendMessage({ method: "resetBookmarksContext" });
|
return await browser.runtime.sendMessage({ method: "resetBookmarksContext" });
|
||||||
break;
|
|
||||||
|
|
||||||
case "nativeMessaging":
|
case "nativeMessaging":
|
||||||
console.log("do native messaging things");
|
await MozillaVPN.removeMozillaVpnProxies();
|
||||||
console.log("if disabled - remove mozilla vpn proxy configurations");
|
return await browser.runtime.reload();
|
||||||
break;
|
|
||||||
|
|
||||||
case "proxy":
|
case "proxy":
|
||||||
console.log("do proxy things...");
|
return await browser.runtime.sendMessage({ method: "maybeAddProxyListeners" });
|
||||||
console.log("if disabled - remove proxy configurations");
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -4,6 +4,8 @@
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<script type="text/javascript" src="./js/i18n.js"></script>
|
<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">
|
<link rel="stylesheet" href="css/options.css">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue