@@ -275,8 +275,10 @@ var RequestGuard = (() => {
275
275
}
276
276
let key = [ siteKey , origin ] [ ret . option || 0 ] ;
277
277
if ( ! key ) return ;
278
+ let cookieStoreId = sender . tab && sender . tab . cookieStoreId ;
279
+ let policy = ns . getPolicy ( cookieStoreId ) ;
278
280
let contextUrl = sender . tab . url || documentUrl ;
279
- let { siteMatch, contextMatch, perms} = ns . policy . get ( key , contextUrl ) ;
281
+ let { siteMatch, contextMatch, perms} = policy . get ( key , contextUrl ) ;
280
282
let { capabilities} = perms ;
281
283
if ( ! capabilities . has ( policyType ) ) {
282
284
let temp = sender . tab . incognito ; // we don't want to store in PBM
@@ -289,8 +291,9 @@ var RequestGuard = (() => {
289
291
perms = new Permissions(new Set(capabilities), false, contextualSites);
290
292
}
291
293
*/
292
- ns . policy . set ( key , perms ) ;
294
+ policy . set ( key , perms ) ;
293
295
await ns . savePolicy ( ) ;
296
+ await ns . saveContextStore ( ) ;
294
297
}
295
298
return { enable : key } ;
296
299
} ,
@@ -365,7 +368,7 @@ var RequestGuard = (() => {
365
368
} ;
366
369
367
370
function intersectCapabilities ( perms , request ) {
368
- let { frameId, frameAncestors, tabId} = request ;
371
+ let { frameId, frameAncestors, tabId, cookieStoreId } = request ;
369
372
if ( frameId !== 0 && ns . sync . cascadeRestrictions ) {
370
373
let topUrl = frameAncestors && frameAncestors . length
371
374
&& frameAncestors [ frameAncestors . length - 1 ] . url ;
@@ -374,7 +377,8 @@ var RequestGuard = (() => {
374
377
if ( tab ) topUrl = tab . url ;
375
378
}
376
379
if ( topUrl ) {
377
- return ns . policy . cascadeRestrictions ( perms , topUrl ) . capabilities ;
380
+ let policy = ns . getPolicy ( cookieStoreId ) ;
381
+ return policy . cascadeRestrictions ( perms , topUrl ) . capabilities ;
378
382
}
379
383
}
380
384
return perms . capabilities ;
@@ -436,9 +440,10 @@ var RequestGuard = (() => {
436
440
437
441
function checkLANRequest ( request ) {
438
442
if ( ! ns . isEnforced ( request . tabId ) ) return ALLOW ;
439
- let { originUrl, url} = request ;
443
+ let { originUrl, url, cookieStoreId} = request ;
444
+ let policy = ns . getPolicy ( cookieStoreId ) ;
440
445
if ( originUrl && ! Sites . isInternal ( originUrl ) && url . startsWith ( "http" ) &&
441
- ! ns . policy . can ( originUrl , "lan" , ns . policyContext ( request ) ) ) {
446
+ ! policy . can ( originUrl , "lan" , ns . policyContext ( request ) ) ) {
442
447
// we want to block any request whose origin resolves to at least one external WAN IP
443
448
// and whose destination resolves to at least one LAN IP
444
449
let { proxyInfo} = request ; // see https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/proxy/ProxyInfo
@@ -472,7 +477,6 @@ var RequestGuard = (() => {
472
477
normalizeRequest ( request ) ;
473
478
initPendingRequest ( request ) ;
474
479
475
- let { policy} = ns
476
480
let { tabId, type, url, originUrl} = request ;
477
481
478
482
if ( type in policyTypesMap ) {
@@ -495,7 +499,9 @@ var RequestGuard = (() => {
495
499
}
496
500
return ALLOW ;
497
501
}
502
+ let { cookieStoreId} = request ;
498
503
let isFetch = "fetch" === policyType ;
504
+ let policy = ns . getPolicy ( cookieStoreId ) ;
499
505
500
506
if ( ( isFetch || "frame" === policyType ) &&
501
507
( ( ( isFetch && ! originUrl
@@ -597,12 +603,12 @@ var RequestGuard = (() => {
597
603
let headersModified = false ;
598
604
599
605
pending . headersProcessed = true ;
600
- let { url, documentUrl, tabId, responseHeaders, type} = request ;
606
+ let { url, documentUrl, tabId, cookieStoreId , responseHeaders, type} = request ;
601
607
let isMainFrame = type === "main_frame" ;
602
608
try {
603
609
let capabilities ;
604
610
if ( ns . isEnforced ( tabId ) ) {
605
- let policy = ns . policy ;
611
+ let policy = ns . getPolicy ( cookieStoreId ) ;
606
612
let { perms} = policy . get ( url , ns . policyContext ( request ) ) ;
607
613
if ( isMainFrame ) {
608
614
if ( policy . autoAllowTop && perms === policy . DEFAULT ) {
@@ -723,8 +729,8 @@ var RequestGuard = (() => {
723
729
}
724
730
725
731
function injectPolicyScript ( details ) {
726
- let { url, tabId, frameId} = details ;
727
- let policy = ns . computeChildPolicy ( { url} , { tab : { id : tabId } , frameId} ) ;
732
+ let { url, tabId, frameId, cookieStoreId } = details ;
733
+ let policy = ns . computeChildPolicy ( { url} , { tab : { id : tabId } , frameId, cookieStoreId } ) ;
728
734
policy . navigationURL = url ;
729
735
let debugStatement = ns . local . debug ? `
730
736
let mark = Date.now() + ":" + Math.random();
0 commit comments