summaryrefslogtreecommitdiff
path: root/data/extensions/jsr@javascriptrestrictor/nscl/service/TabCache.js
diff options
context:
space:
mode:
Diffstat (limited to 'data/extensions/jsr@javascriptrestrictor/nscl/service/TabCache.js')
-rw-r--r--data/extensions/jsr@javascriptrestrictor/nscl/service/TabCache.js18
1 files changed, 10 insertions, 8 deletions
diff --git a/data/extensions/jsr@javascriptrestrictor/nscl/service/TabCache.js b/data/extensions/jsr@javascriptrestrictor/nscl/service/TabCache.js
index bac095e..eb290f0 100644
--- a/data/extensions/jsr@javascriptrestrictor/nscl/service/TabCache.js
+++ b/data/extensions/jsr@javascriptrestrictor/nscl/service/TabCache.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
*
@@ -20,7 +20,7 @@
var TabCache = (() => {
- let cache = new Map();
+ const cache = new Map();
browser.tabs.onUpdated.addListener((tabId, changes, tab) => {
cache.set(tabId, tab);
@@ -30,15 +30,17 @@ var TabCache = (() => {
cache.delete(tabId);
});
- (async () => {
- for (let tab of await browser.tabs.query({})) {
- cache.set(tab.id, tab);
- }
- })();
-
return {
+ wakening: (async () => {
+ for (let tab of await browser.tabs.query({})) {
+ cache.set(tab.id, tab);
+ }
+ })(),
get(tabId) {
return cache.get(tabId);
+ },
+ async async(tabId) {
+ return cache.get(tabId) || await browser.tabs.get(tabId);
}
};
})();