Skip to content

Commit 1ee8508

Browse files
committed
More informative / useful popup on (semi)privileged pages.
1 parent 57eaa94 commit 1ee8508

1 file changed

Lines changed: 34 additions & 19 deletions

File tree

src/ui/popup.js

Lines changed: 34 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -107,27 +107,42 @@ addEventListener("unload", e => {
107107
let mainFrame = UI.seen && UI.seen.find(thing => thing.request.type === "main_frame");
108108
debug("Seen: %o", UI.seen);
109109
if (!mainFrame) {
110-
111-
if (/^https?:/.test(tab.url) && !tab.url.startsWith("https://addons.mozilla.org/")) {
112-
document.body.classList.add("disabled");
113-
showMessage("warning", _("freshInstallReload"));
114-
let buttons = document.querySelector("#buttons");
115-
let b = document.createElement("button");
116-
b.textContent = _("OK");
117-
b.onclick = document.getElementById("reload").onclick = () => {
118-
reload();
119-
close();
110+
let isHttp = /^https?:/.test(tab.url);
111+
try {
112+
await browser.tabs.executeScript(tabId, { code: "" });
113+
if (isHttp) {
114+
document.body.classList.add("disabled");
115+
showMessage("warning", _("freshInstallReload"));
116+
let buttons = document.querySelector("#buttons");
117+
let b = document.createElement("button");
118+
b.textContent = _("OK");
119+
b.onclick = document.getElementById("reload").onclick = () => {
120+
reload();
121+
close();
122+
}
123+
buttons.appendChild(b);
124+
b = document.createElement("button");
125+
b.textContent = _("Cancel");
126+
b.onclick = () => close();
127+
buttons.appendChild(b);
128+
return;
120129
}
121-
buttons.appendChild(b);
122-
b = document.createElement("button");
123-
b.textContent = _("Cancel");
124-
b.onclick = () => close();
125-
buttons.appendChild(b);
126-
return;
130+
} catch (e) {
131+
error(e, "Could not run scripts on %s: privileged page?", tab.url);
132+
}
133+
if (!isHttp) {
134+
showMessage("warning", _("privilegedPage"));
135+
let tempTrust = document.getElementById("temp-trust-page");
136+
tempTrust.disabled = true;
137+
}
138+
if (!UI.seen) {
139+
if (!isHttp) return;
140+
UI.seen = [
141+
mainFrame = {
142+
request: { url: tab.url, documentUrl: tab.url, type: "main_frame" }
143+
}
144+
];
127145
}
128-
showMessage("warning", _("privilegedPage"));
129-
document.getElementById("temp-trust-page").disabled = true;
130-
if (!UI.seen) return;
131146
}
132147

133148
let justDomains = !UI.local.showFullAddresses;

0 commit comments

Comments
 (0)