summaryrefslogtreecommitdiff
path: root/src/bg/RequestGuard.js
diff options
context:
space:
mode:
authorhackademix2018-07-09 01:36:28 +0200
committerhackademix2018-07-09 01:36:28 +0200
commit103324e5d2ea5ac2ea589a44b822a997ff503be3 (patch)
tree50b6447703365acabd6069b18525480fe2978410 /src/bg/RequestGuard.js
parent5217db79ce7db2a2d6e95483d3f6d9dad462a476 (diff)
downloadnoscript-103324e5d2ea5ac2ea589a44b822a997ff503be3.tar.gz
noscript-103324e5d2ea5ac2ea589a44b822a997ff503be3.tar.xz
noscript-103324e5d2ea5ac2ea589a44b822a997ff503be3.zip
More graceful handling of internal and restricted URLs.
Diffstat (limited to 'src/bg/RequestGuard.js')
-rw-r--r--src/bg/RequestGuard.js6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/bg/RequestGuard.js b/src/bg/RequestGuard.js
index dcb79a7..d7994f1 100644
--- a/src/bg/RequestGuard.js
+++ b/src/bg/RequestGuard.js
@@ -314,6 +314,7 @@ var RequestGuard = (() => {
const ABORT = {cancel: true}, ALLOW = {};
+ const INTERNAL_SCHEME = /^(?:chrome|resource|moz-extension|about):/;
const listeners = {
onBeforeRequest(request) {
try {
@@ -324,7 +325,7 @@ var RequestGuard = (() => {
let {url, originUrl, documentUrl} = request;
if (("fetch" === policyType || "frame" === policyType) &&
(url === originUrl && originUrl === documentUrl ||
- /^(?:chrome|resource|moz-extension|about):/.test(originUrl))
+ INTERNAL_SCHEME.test(originUrl))
) {
// livemark request or similar browser-internal, always allow;
return ALLOW;
@@ -334,7 +335,8 @@ var RequestGuard = (() => {
request._dataUrl = url;
request.url = url = documentUrl;
}
- let allowed = !ns.isEnforced(request.tabId) ||
+ let allowed = INTERNAL_SCHEME.test(url) ||
+ !ns.isEnforced(request.tabId) ||
policy.can(url, policyType, originUrl);
Content.reportTo(request, allowed, policyType);