summaryrefslogtreecommitdiff
path: root/src/ui
diff options
context:
space:
mode:
authorhackademix2019-03-28 12:35:52 +0100
committerhackademix2019-03-28 13:04:36 +0100
commit661a2a436bfac1bb1d4f3b235d1bf26b00135d00 (patch)
tree0a6f794d25a9120a1649a6ae56795fe90700bfeb /src/ui
parentc806c6bbff7e551fd24cf7c456c812b7c54007b5 (diff)
downloadnoscript-661a2a436bfac1bb1d4f3b235d1bf26b00135d00.tar.gz
noscript-661a2a436bfac1bb1d4f3b235d1bf26b00135d00.tar.xz
noscript-661a2a436bfac1bb1d4f3b235d1bf26b00135d00.zip
Chromium-compatible popup closure handling.
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/popup.js30
1 files changed, 16 insertions, 14 deletions
diff --git a/src/ui/popup.js b/src/ui/popup.js
index 1f79b55..87ac73e 100644
--- a/src/ui/popup.js
+++ b/src/ui/popup.js
@@ -18,7 +18,6 @@ addEventListener("unload", e => {
try {
let tabId;
- let pendingReload = false;
let isBrowserAction = true;
let optionsClosed = false;
let tab = (await browser.tabs.query({
@@ -44,8 +43,19 @@ addEventListener("unload", e => {
tabId = tab.id;
}
+
await UI.init(tabId);
+ let port = browser.runtime.connect({name: "noscript.popup"})
+ function pendingReload(b) {
+ try {
+ port.postMessage({tabId, pendingReload: b});
+ } catch (e) {
+ debug(e);
+ }
+ }
+
+
if (isBrowserAction) {
browser.tabs.onActivated.addListener(e => {
if (e.tabId !== tabId) close();
@@ -154,7 +164,7 @@ addEventListener("unload", e => {
sitesUI = new UI.Sites(document.getElementById("sites"));
sitesUI.onChange = (row) => {
- pendingReload = !row.temp2perm;
+ pendingReload(!row.temp2perm);
if (optionsClosed) return;
browser.tabs.query({url: browser.runtime.getManifest().options_ui.page })
.then(tabs => {
@@ -168,7 +178,7 @@ addEventListener("unload", e => {
function initSitesUI() {
- pendingReload = false;
+ pendingReload(false);
let {
typesMap
} = sitesUI;
@@ -233,14 +243,13 @@ addEventListener("unload", e => {
function reload() {
if (sitesUI) sitesUI.clear();
browser.tabs.reload(tabId);
- pendingReload = false;
+ pendingReload(false);
}
function close() {
if (isBrowserAction) {
window.close();
} else {
- //browser.windows.remove(tab.windowId);
browser.tabs.remove(tab.id);
}
}
@@ -260,16 +269,9 @@ addEventListener("unload", e => {
hostContains: sitesUI.mainDomain
}]
});
- addEventListener("unload", e => {
+ addEventListener("blur", e => {
onCompleted.removeListener(onCompletedListener);
- debug("pendingReload", pendingReload);
- if (pendingReload) {
- UI.updateSettings({
- policy: UI.policy,
- reloadAffected: true,
- });
- }
- }, true);
+ });
} catch (e) {
error(e, "Can't open popup");
close();