@@ -276,8 +276,10 @@ var RequestGuard = (() => {
276276 }
277277 let key = [ siteKey , origin ] [ ret . option || 0 ] ;
278278 if ( ! key ) return ;
279+ let cookieStoreId = sender . tab && sender . tab . cookieStoreId ;
280+ let policy = ns . getPolicy ( cookieStoreId ) ;
279281 let contextUrl = sender . tab . url || documentUrl ;
280- let { siteMatch, contextMatch, perms} = ns . policy . get ( key , contextUrl ) ;
282+ let { siteMatch, contextMatch, perms} = policy . get ( key , contextUrl ) ;
281283 let { capabilities} = perms ;
282284 if ( ! capabilities . has ( policyType ) ) {
283285 let temp = sender . tab . incognito ; // we don't want to store in PBM
@@ -290,8 +292,9 @@ var RequestGuard = (() => {
290292 perms = new Permissions(new Set(capabilities), false, contextualSites);
291293 }
292294 */
293- ns . policy . set ( key , perms ) ;
295+ policy . set ( key , perms ) ;
294296 await ns . savePolicy ( ) ;
297+ await ns . saveContextStore ( ) ;
295298 }
296299 return { enable : key } ;
297300 } ,
@@ -393,7 +396,7 @@ var RequestGuard = (() => {
393396 } ;
394397
395398 function intersectCapabilities ( perms , request ) {
396- let { frameId, frameAncestors, tabId} = request ;
399+ let { frameId, frameAncestors, tabId, cookieStoreId } = request ;
397400 if ( frameId !== 0 && ns . sync . cascadeRestrictions ) {
398401 let topUrl = frameAncestors && frameAncestors . length
399402 && frameAncestors [ frameAncestors . length - 1 ] . url ;
@@ -402,7 +405,8 @@ var RequestGuard = (() => {
402405 if ( tab ) topUrl = tab . url ;
403406 }
404407 if ( topUrl ) {
405- return ns . policy . cascadeRestrictions ( perms , topUrl ) . capabilities ;
408+ let policy = ns . getPolicy ( cookieStoreId ) ;
409+ return policy . cascadeRestrictions ( perms , topUrl ) . capabilities ;
406410 }
407411 }
408412 return perms . capabilities ;
@@ -464,9 +468,10 @@ var RequestGuard = (() => {
464468
465469 function checkLANRequest ( request ) {
466470 if ( ! ns . isEnforced ( request . tabId ) ) return ALLOW ;
467- let { originUrl, url} = request ;
471+ let { originUrl, url, cookieStoreId} = request ;
472+ let policy = ns . getPolicy ( cookieStoreId ) ;
468473 if ( originUrl && ! Sites . isInternal ( originUrl ) && url . startsWith ( "http" ) &&
469- ! ns . policy . can ( originUrl , "lan" , ns . policyContext ( request ) ) ) {
474+ ! policy . can ( originUrl , "lan" , ns . policyContext ( request ) ) ) {
470475 // we want to block any request whose origin resolves to at least one external WAN IP
471476 // and whose destination resolves to at least one LAN IP
472477 let { proxyInfo} = request ; // see https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/proxy/ProxyInfo
@@ -500,7 +505,6 @@ var RequestGuard = (() => {
500505 normalizeRequest ( request ) ;
501506 initPendingRequest ( request ) ;
502507
503- let { policy} = ns
504508 let { tabId, type, url, originUrl} = request ;
505509
506510 if ( type in policyTypesMap ) {
@@ -523,7 +527,9 @@ var RequestGuard = (() => {
523527 }
524528 return ALLOW ;
525529 }
530+ let { cookieStoreId} = request ;
526531 let isFetch = "fetch" === policyType ;
532+ let policy = ns . getPolicy ( cookieStoreId ) ;
527533
528534 if ( ( isFetch || "frame" === policyType ) &&
529535 ( ( ( isFetch && ! originUrl
@@ -636,12 +642,12 @@ var RequestGuard = (() => {
636642 let headersModified = false ;
637643
638644 pending . headersProcessed = true ;
639- let { url, documentUrl, tabId, responseHeaders, type} = request ;
645+ let { url, documentUrl, tabId, cookieStoreId , responseHeaders, type} = request ;
640646 let isMainFrame = type === "main_frame" ;
641647 try {
642648 let capabilities ;
643649 if ( ns . isEnforced ( tabId ) ) {
644- let policy = ns . policy ;
650+ let policy = ns . getPolicy ( cookieStoreId ) ;
645651 let { perms} = policy . get ( url , ns . policyContext ( request ) ) ;
646652 if ( isMainFrame ) {
647653 if ( policy . autoAllowTop && perms === policy . DEFAULT ) {
@@ -765,8 +771,8 @@ var RequestGuard = (() => {
765771 }
766772
767773 function injectPolicyScript ( details ) {
768- let { url, tabId, frameId} = details ;
769- let policy = ns . computeChildPolicy ( { url} , { tab : { id : tabId } , frameId} ) ;
774+ let { url, tabId, frameId, cookieStoreId } = details ;
775+ let policy = ns . computeChildPolicy ( { url} , { tab : { id : tabId } , frameId, cookieStoreId } ) ;
770776 policy . navigationURL = url ;
771777 let debugStatement = ns . local . debug ? `
772778 let mark = Date.now() + ":" + Math.random();
0 commit comments