@@ -275,8 +275,10 @@ var RequestGuard = (() => {
275275 }
276276 let key = [ siteKey , origin ] [ ret . option || 0 ] ;
277277 if ( ! key ) return ;
278+ let cookieStoreId = sender . tab && sender . tab . cookieStoreId ;
279+ let policy = ns . getPolicy ( cookieStoreId ) ;
278280 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 ) ;
280282 let { capabilities} = perms ;
281283 if ( ! capabilities . has ( policyType ) ) {
282284 let temp = sender . tab . incognito ; // we don't want to store in PBM
@@ -289,8 +291,9 @@ var RequestGuard = (() => {
289291 perms = new Permissions(new Set(capabilities), false, contextualSites);
290292 }
291293 */
292- ns . policy . set ( key , perms ) ;
294+ policy . set ( key , perms ) ;
293295 await ns . savePolicy ( ) ;
296+ await ns . saveContextStore ( ) ;
294297 }
295298 return { enable : key } ;
296299 } ,
@@ -365,7 +368,7 @@ var RequestGuard = (() => {
365368 } ;
366369
367370 function intersectCapabilities ( perms , request ) {
368- let { frameId, frameAncestors, tabId} = request ;
371+ let { frameId, frameAncestors, tabId, cookieStoreId } = request ;
369372 if ( frameId !== 0 && ns . sync . cascadeRestrictions ) {
370373 let topUrl = frameAncestors && frameAncestors . length
371374 && frameAncestors [ frameAncestors . length - 1 ] . url ;
@@ -374,7 +377,8 @@ var RequestGuard = (() => {
374377 if ( tab ) topUrl = tab . url ;
375378 }
376379 if ( topUrl ) {
377- return ns . policy . cascadeRestrictions ( perms , topUrl ) . capabilities ;
380+ let policy = ns . getPolicy ( cookieStoreId ) ;
381+ return policy . cascadeRestrictions ( perms , topUrl ) . capabilities ;
378382 }
379383 }
380384 return perms . capabilities ;
@@ -436,9 +440,10 @@ var RequestGuard = (() => {
436440
437441 function checkLANRequest ( request ) {
438442 if ( ! ns . isEnforced ( request . tabId ) ) return ALLOW ;
439- let { originUrl, url} = request ;
443+ let { originUrl, url, cookieStoreId} = request ;
444+ let policy = ns . getPolicy ( cookieStoreId ) ;
440445 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 ) ) ) {
442447 // we want to block any request whose origin resolves to at least one external WAN IP
443448 // and whose destination resolves to at least one LAN IP
444449 let { proxyInfo} = request ; // see https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/proxy/ProxyInfo
@@ -472,7 +477,6 @@ var RequestGuard = (() => {
472477 normalizeRequest ( request ) ;
473478 initPendingRequest ( request ) ;
474479
475- let { policy} = ns
476480 let { tabId, type, url, originUrl} = request ;
477481
478482 if ( type in policyTypesMap ) {
@@ -495,7 +499,9 @@ var RequestGuard = (() => {
495499 }
496500 return ALLOW ;
497501 }
502+ let { cookieStoreId} = request ;
498503 let isFetch = "fetch" === policyType ;
504+ let policy = ns . getPolicy ( cookieStoreId ) ;
499505
500506 if ( ( isFetch || "frame" === policyType ) &&
501507 ( ( ( isFetch && ! originUrl
@@ -597,12 +603,12 @@ var RequestGuard = (() => {
597603 let headersModified = false ;
598604
599605 pending . headersProcessed = true ;
600- let { url, documentUrl, tabId, responseHeaders, type} = request ;
606+ let { url, documentUrl, tabId, cookieStoreId , responseHeaders, type} = request ;
601607 let isMainFrame = type === "main_frame" ;
602608 try {
603609 let capabilities ;
604610 if ( ns . isEnforced ( tabId ) ) {
605- let policy = ns . policy ;
611+ let policy = ns . getPolicy ( cookieStoreId ) ;
606612 let { perms} = policy . get ( url , ns . policyContext ( request ) ) ;
607613 if ( isMainFrame ) {
608614 if ( policy . autoAllowTop && perms === policy . DEFAULT ) {
@@ -723,8 +729,8 @@ var RequestGuard = (() => {
723729 }
724730
725731 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 } ) ;
728734 policy . navigationURL = url ;
729735 let debugStatement = ns . local . debug ? `
730736 let mark = Date.now() + ":" + Math.random();
0 commit comments