@@ -31,7 +31,6 @@ function log(...args) {
31
31
const kCONTENTS_VERSION = 5 ;
32
32
33
33
let mActivated = false ;
34
- const mCaches = { } ;
35
34
36
35
export function activate ( ) {
37
36
mActivated = true ;
@@ -302,9 +301,9 @@ async function updateWindowCache(owner, key, value) {
302
301
if ( ! configs . persistCachedTree ) {
303
302
const storageKey = `backgroundCache-${ await UniqueId . ensureWindowId ( owner . windowId ) } -${ key } ` ;
304
303
if ( value )
305
- mCaches [ storageKey ] = value ;
304
+ sessionStorage . setItem ( storageKey , value ) ;
306
305
else
307
- delete mCaches [ storageKey ] ;
306
+ sessionStorage . removeItem ( storageKey ) ;
308
307
return ;
309
308
}
310
309
@@ -341,7 +340,7 @@ export function markWindowCacheDirtyFromTab(tab, akey) {
341
340
async function getWindowCache ( owner , key ) {
342
341
if ( ! configs . persistCachedTree ) {
343
342
const storageKey = `backgroundCache-${ await UniqueId . ensureWindowId ( owner . windowId ) } -${ key } ` ;
344
- return mCaches [ storageKey ] ;
343
+ return sessionStorage . getItem ( storageKey ) ;
345
344
}
346
345
return browser . sessions . getWindowValue ( owner . windowId , key ) . catch ( ApiTabs . createErrorHandler ( ) ) ;
347
346
}
@@ -520,13 +519,13 @@ Tab.onHidden.addListener(tab => {
520
519
browser . runtime . onMessage . addListener ( ( message , _sender ) => {
521
520
switch ( message && message . type ) {
522
521
case Constants . kCOMMAND_GET_ON_MEMORY_CACHE :
523
- return mCaches [ message . key ] ;
522
+ return sessionStorage . getItem ( message . key ) ;
524
523
525
524
case Constants . kCOMMAND_SET_ON_MEMORY_CACHE :
526
525
if ( message . value )
527
- mCaches [ message . key ] = message . value ;
526
+ sessionStorage . setItem ( message . key , message . value ) ;
528
527
else
529
- delete mCaches [ message . key ] ;
528
+ sessionStorage . removeItem ( message . key ) ;
530
529
return ;
531
530
532
531
default :
@@ -536,9 +535,10 @@ browser.runtime.onMessage.addListener((message, _sender) => {
536
535
537
536
browser . windows . onRemoved . addListener ( async windowId => {
538
537
const storageKeyPart = `Cache-${ await UniqueId . ensureWindowId ( windowId ) } -` ;
539
- for ( const key in mCaches ) {
538
+ for ( let i = sessionStorage . length ; i > - 1 ; i -- ) {
539
+ const key = sessionStorage . key ( i ) ;
540
540
if ( key . includes ( storageKeyPart ) )
541
- delete mCaches [ key ] ;
541
+ sessionStorage . removeItem ( key ) ;
542
542
}
543
543
} ) ;
544
544
0 commit comments