@@ -280,8 +280,10 @@ var RequestGuard = (() => {
280280 }
281281 let key = [ siteKey , origin ] [ ret . option || 0 ] ;
282282 if ( ! key ) return ;
283+ let cookieStoreId = sender . tab && sender . tab . cookieStoreId ;
284+ let policy = ns . getPolicy ( cookieStoreId ) ;
283285 let contextUrl = sender . tab . url || documentUrl ;
284- let { siteMatch, contextMatch, perms} = ns . policy . get ( key , contextUrl ) ;
286+ let { siteMatch, contextMatch, perms} = policy . get ( key , contextUrl ) ;
285287 let { capabilities} = perms ;
286288 if ( ! capabilities . has ( policyType ) ) {
287289 let temp = sender . tab . incognito ; // we don't want to store in PBM
@@ -294,8 +296,9 @@ var RequestGuard = (() => {
294296 perms = new Permissions(new Set(capabilities), false, contextualSites);
295297 }
296298 */
297- ns . policy . set ( key , perms ) ;
299+ policy . set ( key , perms ) ;
298300 await ns . savePolicy ( ) ;
301+ await ns . saveContextStore ( ) ;
299302 }
300303 return { enable : key } ;
301304 } ,
@@ -397,7 +400,7 @@ var RequestGuard = (() => {
397400 } ;
398401
399402 function intersectCapabilities ( perms , request ) {
400- let { frameId, frameAncestors, tabId} = request ;
403+ let { frameId, frameAncestors, tabId, cookieStoreId } = request ;
401404 if ( frameId !== 0 && ns . sync . cascadeRestrictions ) {
402405 let topUrl = frameAncestors && frameAncestors . length
403406 && frameAncestors [ frameAncestors . length - 1 ] . url ;
@@ -406,7 +409,8 @@ var RequestGuard = (() => {
406409 if ( tab ) topUrl = tab . url ;
407410 }
408411 if ( topUrl ) {
409- return ns . policy . cascadeRestrictions ( perms , topUrl ) . capabilities ;
412+ let policy = ns . getPolicy ( cookieStoreId ) ;
413+ return policy . cascadeRestrictions ( perms , topUrl ) . capabilities ;
410414 }
411415 }
412416 return perms . capabilities ;
@@ -468,9 +472,10 @@ var RequestGuard = (() => {
468472
469473 function checkLANRequest ( request ) {
470474 if ( ! ns . isEnforced ( request . tabId ) ) return ALLOW ;
471- let { originUrl, url} = request ;
475+ let { originUrl, url, cookieStoreId} = request ;
476+ let policy = ns . getPolicy ( cookieStoreId ) ;
472477 if ( originUrl && ! Sites . isInternal ( originUrl ) && url . startsWith ( "http" ) &&
473- ! ns . policy . can ( originUrl , "lan" , ns . policyContext ( request ) ) ) {
478+ ! policy . can ( originUrl , "lan" , ns . policyContext ( request ) ) ) {
474479 // we want to block any request whose origin resolves to at least one external WAN IP
475480 // and whose destination resolves to at least one LAN IP
476481 let { proxyInfo} = request ; // see https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/proxy/ProxyInfo
@@ -504,7 +509,6 @@ var RequestGuard = (() => {
504509 normalizeRequest ( request ) ;
505510 initPendingRequest ( request ) ;
506511
507- let { policy} = ns
508512 let { tabId, type, url, originUrl} = request ;
509513
510514 if ( type in policyTypesMap ) {
@@ -527,7 +531,9 @@ var RequestGuard = (() => {
527531 }
528532 return ALLOW ;
529533 }
534+ let { cookieStoreId} = request ;
530535 let isFetch = "fetch" === policyType ;
536+ let policy = ns . getPolicy ( cookieStoreId ) ;
531537
532538 if ( ( isFetch || "frame" === policyType ) &&
533539 ( ( ( isFetch && ! originUrl
@@ -639,12 +645,12 @@ var RequestGuard = (() => {
639645 let promises = [ ] ;
640646
641647 pending . headersProcessed = true ;
642- let { url, documentUrl, tabId, responseHeaders, type} = request ;
648+ let { url, documentUrl, tabId, cookieStoreId , responseHeaders, type} = request ;
643649 let isMainFrame = type === "main_frame" ;
644650 try {
645651 let capabilities ;
646652 if ( ns . isEnforced ( tabId ) ) {
647- let policy = ns . policy ;
653+ let policy = ns . getPolicy ( cookieStoreId ) ;
648654 let { perms} = policy . get ( url , ns . policyContext ( request ) ) ;
649655 if ( isMainFrame ) {
650656 if ( policy . autoAllowTop && perms === policy . DEFAULT ) {
@@ -769,8 +775,8 @@ var RequestGuard = (() => {
769775 }
770776
771777 function injectPolicyScript ( details ) {
772- let { url, tabId, frameId} = details ;
773- let policy = ns . computeChildPolicy ( { url} , { tab : { id : tabId } , frameId} ) ;
778+ let { url, tabId, frameId, cookieStoreId } = details ;
779+ let policy = ns . computeChildPolicy ( { url} , { tab : { id : tabId } , frameId, cookieStoreId } ) ;
774780 policy . navigationURL = url ;
775781 let debugStatement = ns . local . debug ? `
776782 let mark = Date.now() + ":" + Math.random();
0 commit comments