Skip to content

Commit 8bf63c3

Browse files
committed
Refactor top-level auto-trust and make it contextual (issue #417).
1 parent 65c8ec0 commit 8bf63c3

File tree

4 files changed

+10
-9
lines changed

4 files changed

+10
-9
lines changed

src/bg/DNRPolicy.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -311,8 +311,7 @@
311311
if (!url || Sites.isInternal(url)) continue;
312312
const perms = policy.get(url).perms;
313313
console.debug("DNRPolicy autoAllow check", tab, perms, perms === policy.DEFAULT);
314-
if (perms === policy.DEFAULT || (isStartup && perms.temp)) {
315-
policy.set(Sites.optimalKey(url), policy.TRUSTED.tempTwin);
314+
if (policy.autoAllow(url, perms, (isStartup && perms.temp))) {
316315
updated.push(tab);
317316
}
318317
}

src/bg/RequestGuard.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -352,7 +352,7 @@
352352
let {capabilities} = perms;
353353
if (!capabilities.has(policyType)) {
354354
let temp = sender.tab.incognito; // we don't want to store in PBM
355-
perms = new Permissions(new Set(capabilities), temp);
355+
perms = new Permissions(capabilities, temp);
356356
perms.capabilities.add(policyType);
357357
/* TODO: handle contextual permissions
358358
if (contextUrl) {
@@ -736,8 +736,9 @@
736736
let policy = ns.policy;
737737
let {perms} = policy.get(url, ns.policyContext(request));
738738
if (isMainFrame) {
739-
if (policy.autoAllowTop && perms === policy.DEFAULT) {
740-
policy.set(Sites.optimalKey(url), perms = policy.TRUSTED.tempTwin);
739+
const autoPerms = policy.autoAllow(url, perms);
740+
if (autoPerms) {
741+
perms = autoPerms;
741742
}
742743
capabilities = perms.capabilities;
743744
} else {

src/bg/main.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -342,13 +342,14 @@
342342
if (policy) {
343343
let perms = policy.get(url, contextUrl).perms;
344344
if (isTop) {
345-
if (policy.autoAllowTop && perms === policy.DEFAULT) {
346-
policy.set(Sites.optimalKey(url), perms = policy.TRUSTED.tempTwin);
345+
const autoPerms = policy.autoAllow(url, perms);
346+
if (autoPerms) {
347+
perms = autoPerms;
347348
await Promise.allSettled([
348349
RequestGuard.DNRPolicy?.update(),
349350
session.save(),
350351
]);
351-
const dnrRules = (await browser.declarativeNetRequest.getSessionRules()).filter(r => r?.action?.type == "allow"); // DEV_ONLY
352+
const dnrRules = (await browser.declarativeNetRequest?.getSessionRules())?.filter(r => r?.action?.type == "allow"); // DEV_ONLY
352353
debug(`Auto-trusted ${Sites.optimalKey(url)}`, dnrRules); // DEV_ONLY
353354
}
354355
} else {

src/nscl

0 commit comments

Comments
 (0)