summaryrefslogtreecommitdiff
path: root/data/extensions/jsr@javascriptrestrictor/nscl/service/NavCache.js
diff options
context:
space:
mode:
Diffstat (limited to 'data/extensions/jsr@javascriptrestrictor/nscl/service/NavCache.js')
-rw-r--r--data/extensions/jsr@javascriptrestrictor/nscl/service/NavCache.js32
1 files changed, 16 insertions, 16 deletions
diff --git a/data/extensions/jsr@javascriptrestrictor/nscl/service/NavCache.js b/data/extensions/jsr@javascriptrestrictor/nscl/service/NavCache.js
index 0e603fd..28bdb0d 100644
--- a/data/extensions/jsr@javascriptrestrictor/nscl/service/NavCache.js
+++ b/data/extensions/jsr@javascriptrestrictor/nscl/service/NavCache.js
@@ -1,7 +1,7 @@
/*
* NoScript Commons Library
* Reusable building blocks for cross-browser security/privacy WebExtensions.
- * Copyright (C) 2020-2023 Giorgio Maone <https://maone.net>
+ * Copyright (C) 2020-2024 Giorgio Maone <https://maone.net>
*
* SPDX-License-Identifier: GPL-3.0-or-later
*
@@ -45,26 +45,26 @@ var NavCache = (() => {
});
browser.tabs.onRemoved.addListener(tabId => {
- tabs.delete(tabId);
+ delete tabs[tabId];
});
- (async () => {
-
- async function populateFrames(tab) {
- let tabId = tab.id;
- let frames = await browser.webNavigation.getAllFrames({tabId});
- if (!frames) return; // invalid tab
- if (!tabs[tabId]) tabs[tabId] = {};
- let top = tabs[tabId];
- for ({frameId, url, parentFrameId} of frames) {
- tab[frameId] = {url, parentFrameId};
+ return {
+ wakening: (async () => {
+ async function populateFrames(tab) {
+ let tabId = tab.id;
+ let frames = await browser.webNavigation.getAllFrames({tabId});
+ if (!frames) return; // invalid tab
+ if (!tabs[tabId]) tabs[tabId] = {};
+ let top = tabs[tabId];
+ for ({frameId, url, parentFrameId} of frames) {
+ tab[frameId] = {url, parentFrameId};
+ }
}
- }
- await Promise.all((await browser.tabs.query({})).map(populateFrames));
- })();
+ await Promise.all((await browser.tabs.query({})).map(populateFrames));
+ return true;
+ })(),
- return {
getTab(tabId) {
return clone(tabs[tabId] || {});
},