summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bg/main.js20
-rw-r--r--src/bg/popupHandler.js2
-rw-r--r--src/ui/popup.js3
3 files changed, 15 insertions, 10 deletions
diff --git a/src/bg/main.js b/src/bg/main.js
index 6e2cdf9..fa58b3a 100644
--- a/src/bg/main.js
+++ b/src/bg/main.js
@@ -54,19 +54,23 @@
};
let Commands = {
- openPageUI() {
+ async openPageUI() {
+ if (ns.popupOpening) return;
+ ns.popupOpening = true;
+ ns.popupOpened = false;
+ let openPanel = async () => {
+ ns.popupOpening = false;
+ if (ns.popupOpened) return;
+ messageHandler.openStandalonePopup();
+ };
try {
- browser.browserAction.openPopup();
+ await browser.browserAction.openPopup();
+ setTimeout(openPanel, 500);
return;
} catch (e) {
+ openPanel();
debug(e);
}
- browser.windows.create({
- url: popupURL,
- width: 800,
- height: 600,
- type: "panel"
- });
},
togglePermissions() {},
diff --git a/src/bg/popupHandler.js b/src/bg/popupHandler.js
index b893174..f5c2049 100644
--- a/src/bg/popupHandler.js
+++ b/src/bg/popupHandler.js
@@ -1,5 +1,6 @@
browser.runtime.onConnect.addListener(port => {
if (port.name === "noscript.popup") {
+ ns.popupOpened = true;
let pendingReload = false;
let tabId = -1;
port.onMessage.addListener(m => {
@@ -9,6 +10,7 @@ browser.runtime.onConnect.addListener(port => {
}
});
port.onDisconnect.addListener(() => {
+ ns.popupOpened = false;
if (pendingReload) {
browser.tabs.reload(tabId);
}
diff --git a/src/ui/popup.js b/src/ui/popup.js
index c29b94d..4b5dc85 100644
--- a/src/ui/popup.js
+++ b/src/ui/popup.js
@@ -43,10 +43,9 @@ addEventListener("unload", e => {
tabId = tab.id;
}
-
+ let port = browser.runtime.connect({name: "noscript.popup"});
await UI.init(tabId);
- let port = browser.runtime.connect({name: "noscript.popup"})
function pendingReload(b) {
try {
port.postMessage({tabId, pendingReload: b});