Skip to content

Commit 1eb00fa

Browse files
committed
Don't use storage.session for sidebar cache #3434
1 parent 85dd951 commit 1eb00fa

File tree

3 files changed

+31
-16
lines changed

3 files changed

+31
-16
lines changed

webextensions/background/background-cache.js

+19-2
Original file line numberDiff line numberDiff line change
@@ -517,10 +517,27 @@ Tab.onHidden.addListener(tab => {
517517
reserveToCacheTree(tab.windowId);
518518
});
519519

520+
browser.runtime.onMessage.addListener((message, _sender) => {
521+
switch (message && message.type) {
522+
case Constants.kCOMMAND_GET_ON_MEMORY_CACHE:
523+
return mCaches[message.key];
524+
525+
case Constants.kCOMMAND_SET_ON_MEMORY_CACHE:
526+
if (message.value)
527+
mCaches[message.key] = message.value;
528+
else
529+
delete mCaches[message.key];
530+
return;
531+
532+
default:
533+
return;
534+
}
535+
});
536+
520537
browser.windows.onRemoved.addListener(async windowId => {
521-
const storageKeyPrefix = `backgroundCache-${await UniqueId.ensureWindowId(windowId)}-`;
538+
const storageKeyPart = `Cache-${await UniqueId.ensureWindowId(windowId)}-`;
522539
for (const key in mCaches) {
523-
if (key.startsWith(storageKeyPrefix))
540+
if (key.includes(storageKeyPart))
524541
delete mCaches[key];
525542
}
526543
});

webextensions/common/constants.js

+3
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,9 @@ export const kCOMMAND_UNBLOCK_USER_OPERATIONS = 'treestyletab:unblock-user-opera
9292
export const kCOMMAND_PROGRESS_USER_OPERATIONS = 'treestyletab:progress-user-operations';
9393
export const kCOMMAND_BROADCAST_TAB_STATE = 'treestyletab:broadcast-tab-state';
9494

95+
export const kCOMMAND_SET_ON_MEMORY_CACHE = 'treestyletab:set-on-memory-cache';
96+
export const kCOMMAND_GET_ON_MEMORY_CACHE = 'treestyletab:get-on-memory-cache';
97+
9598
export const kCOMMAND_BOOKMARK_TAB_WITH_DIALOG = 'treestyletab:bookmark-tab-with-dialog';
9699
export const kCOMMAND_BOOKMARK_TABS_WITH_DIALOG = 'treestyletab:bookmark-tabs-with-dialog';
97100

webextensions/sidebar/sidebar-cache.js

+9-14
Original file line numberDiff line numberDiff line change
@@ -437,17 +437,13 @@ async function fixupTabsRestoredFromCache(tabElements, tabs, options = {}) {
437437
// ===================================================================
438438

439439
async function updateWindowCache(key, value) {
440-
if (!configs.persistCachedTree &&
441-
browser.storage.session) {
440+
if (!configs.persistCachedTree) {
442441
const storagKey = `sidebarCache-${await UniqueId.ensureWindowId(mTargetWindow)}-${key}`;
443-
if (value) {
444-
const data = {};
445-
data[storagKey] = value;
446-
browser.storage.session.set(data);
447-
}
448-
else {
449-
browser.storage.session.remove(storagKey);
450-
}
442+
browser.runtime.sendMessage({
443+
type: Constants.kCOMMAND_SET_ON_MEMORY_CACHE,
444+
key: storagKey,
445+
value,
446+
});
451447
return;
452448
}
453449

@@ -495,10 +491,9 @@ export function markWindowCacheDirty(key) {
495491
async function getWindowCache(key) {
496492
if (!configs.persistCachedTree) {
497493
const storageKey = `sidebarCache-${await UniqueId.ensureWindowId(mTargetWindow)}-${key}`;
498-
const defaultData = {};
499-
defaultData[storageKey] = undefined;
500-
return browser.storage.session.get(defaultData).then(data => {
501-
return data[storageKey];
494+
return browser.runtime.sendMessage({
495+
type: Constants.kCOMMAND_GET_ON_MEMORY_CACHE,
496+
key: storageKey,
502497
});
503498
}
504499

0 commit comments

Comments
 (0)