summaryrefslogtreecommitdiff
path: root/src/bg/RequestGuard.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/bg/RequestGuard.js')
-rw-r--r--src/bg/RequestGuard.js14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/bg/RequestGuard.js b/src/bg/RequestGuard.js
index c1771aa..bdf2ea2 100644
--- a/src/bg/RequestGuard.js
+++ b/src/bg/RequestGuard.js
@@ -296,7 +296,9 @@ var RequestGuard = (() => {
}
return ALLOW;
},
- async onHeadersReceived(request) {
+ onHeadersReceived(request) {
+ let result = ALLOW;
+ let promises = [];
// called for main_frame, sub_frame and object
// check for duplicate calls
let headersModified = false;
@@ -324,7 +326,7 @@ var RequestGuard = (() => {
if (isMainFrame) {
if (policy.autoAllowTop && perms === policy.DEFAULT) {
policy.set(Sites.optimalKey(url), perms = policy.TRUSTED.tempTwin);
- await ChildPolicies.update(policy);
+ promises.push(ChildPolicies.update(policy));
}
capabilities = perms.capabilities;
} else {
@@ -360,12 +362,16 @@ var RequestGuard = (() => {
headersModified = true;
}
if (headersModified) {
- return {responseHeaders};
+ result = {responseHeaders};
}
} catch (e) {
error(e, "Error in onHeadersReceived", request);
}
- return ALLOW;
+ promises = promises.filter(p => p instanceof Promise);
+ if (promises.length > 0) {
+ return Promise.all(promises).then(() => result);
+ }
+ return result;
},
onResponseStarted(request) {
debug("onResponseStarted", request);