summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bg/main.js3
-rw-r--r--src/content/staticNS.js21
2 files changed, 19 insertions, 5 deletions
diff --git a/src/bg/main.js b/src/bg/main.js
index 7df5b2f..165260c 100644
--- a/src/bg/main.js
+++ b/src/bg/main.js
@@ -142,7 +142,8 @@
async fetchChildPolicy({url, contextUrl}, sender) {
await ns.initializing;
- return (this.fetchChildPolicy = this.fetchChildPolicySync)(...arguments);
+ return (messageHandler.fetchChildPolicy =
+ messageHandler.fetchChildPolicySync)(...arguments);
},
fetchChildPolicySync({url, contextUrl}, sender) {
let {tab, frameId} = sender;
diff --git a/src/content/staticNS.js b/src/content/staticNS.js
index 8f447e7..1d00ecf 100644
--- a/src/content/staticNS.js
+++ b/src/content/staticNS.js
@@ -35,14 +35,27 @@
fetchPolicy() {
let url = document.URL;
- if (url.startsWith("http")) {
+ debug(`Fetching policy from document %s, readyState %s, content %s`,
+ url, document.readyState, document.documentElement.outerHTML);
+
+ if (!/^(?:file|ftp|https?):/i.test(url)) {
(async () => {
- this.setup(await Messages.send("fetchChildPolicy", {url, contextUrl: url}));
+ let policy;
+ try {
+ policy = await Messages.send("fetchChildPolicy", {url, contextUrl: url});
+ } catch (e) {
+ console.error("Error while fetching policy", e);
+ }
+ if (policy === undefined) {
+ log("Policy was undefined, retrying in 1/2 sec...");
+ setTimeout(() => this.fetchPolicy(), 500);
+ return;
+ }
+ this.setup(policy);
})();
return;
}
- debug(`Fetching policy from document %s, readyState %s, content %s`,
- url, document.readyState, document.documentElement.outerHTML);
+
let originalState = document.readyState;
let blockedScripts = [];