summaryrefslogtreecommitdiff
path: root/src/bg
diff options
context:
space:
mode:
authorhackademix2019-03-27 23:43:34 +0100
committerhackademix2019-03-27 23:43:34 +0100
commitb9373c65b112342a519cb932fdebfd68a3cd174d (patch)
treec7da79232c02645389ae00d3ddbc59c0919ae0be /src/bg
parentd77df5c9e433a2e08f1e66ded36beca5e17deff3 (diff)
parent0878ad2b0a0d3af5db66cc6a4f7d882e17a13365 (diff)
downloadnoscript-b9373c65b112342a519cb932fdebfd68a3cd174d.tar.gz
noscript-b9373c65b112342a519cb932fdebfd68a3cd174d.tar.xz
noscript-b9373c65b112342a519cb932fdebfd68a3cd174d.zip
Merge branch 'chromium' into merge/chromium
Diffstat (limited to 'src/bg')
-rw-r--r--src/bg/ChildPolicies.js4
-rw-r--r--src/bg/RequestGuard.js9
-rw-r--r--src/bg/deferWebTraffic.js2
3 files changed, 11 insertions, 4 deletions
diff --git a/src/bg/ChildPolicies.js b/src/bg/ChildPolicies.js
index 74aeccb..5727762 100644
--- a/src/bg/ChildPolicies.js
+++ b/src/bg/ChildPolicies.js
@@ -51,6 +51,10 @@
}
};
+ if (!browser.contentScripts) { // #chromium fallback
+ Scripts.register = () => {};
+ }
+
let flatten = arr => arr.reduce((a, b) => a.concat(Array.isArray(b) ? flatten(b) : b), []);
let protocolRx = /^(\w+):/i;
diff --git a/src/bg/RequestGuard.js b/src/bg/RequestGuard.js
index e7be814..0731b7b 100644
--- a/src/bg/RequestGuard.js
+++ b/src/bg/RequestGuard.js
@@ -20,7 +20,10 @@ var RequestGuard = (() => {
media: "media",
other: "",
};
- const allTypes = Object.keys(policyTypesMap);
+ const allTypes = UA.isMozilla ? Object.keys(policyTypesMap)
+ : ["main_frame", "sub_frame", "stylesheet", "script", "image", "font",
+ "object", "xmlhttprequest", "ping", "csp_report", "media", "websocket", "other"];
+
Object.assign(policyTypesMap, {"webgl": "webgl"}); // fake types
const TabStatus = {
map: new Map(),
@@ -254,7 +257,7 @@ var RequestGuard = (() => {
return redirected;
}
const ABORT = {cancel: true}, ALLOW = {};
- const INTERNAL_SCHEME = /^(?:chrome|resource|moz-extension|about):/;
+ const INTERNAL_SCHEME = /^(?:chrome|resource|(?:moz|chrome)-extension|about):/;
const listeners = {
onBeforeRequest(request) {
try {
@@ -326,7 +329,7 @@ var RequestGuard = (() => {
capabilities = perms.capabilities;
} else {
capabilities = perms.capabilities;
- if (frameAncestors.length > 0 && ns.sync.cascadeRestrictions) {
+ if (frameAncestors && frameAncestors.length > 0 && ns.sync.cascadeRestrictions) {
// cascade top document's restrictions to subframes
let topUrl = frameAncestors.pop().url;
let topPerms = policy.get(topUrl, topUrl).perms;
diff --git a/src/bg/deferWebTraffic.js b/src/bg/deferWebTraffic.js
index a384e29..571073a 100644
--- a/src/bg/deferWebTraffic.js
+++ b/src/bg/deferWebTraffic.js
@@ -31,7 +31,7 @@ function deferWebTraffic(promiseToWaitFor, next) {
if (type === "main_frame") {
seenTabs.add(tabId);
} else if (documentUrl) {
- if (frameId !== 0) {
+ if (frameId !== 0 && request.frameAncestors) {
documentUrl = request.frameAncestors.pop().url;
}
reloadTab(tabId);