aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWojtek Kosior <koszko@koszko.org>2021-08-04 22:01:01 +0200
committerWojtek Kosior <koszko@koszko.org>2021-08-04 22:01:01 +0200
commit5957fbeeb47bb2c519d34ae4d2eada2433dd1e09 (patch)
treef4e3892cc36937e486075ace69c2d3b7dd26f842
parent2fa41a54acfa5e25b5ccad5b3c91210cc42ce00d (diff)
downloadbrowser-extension-5957fbeeb47bb2c519d34ae4d2eada2433dd1e09.tar.gz
browser-extension-5957fbeeb47bb2c519d34ae4d2eada2433dd1e09.zip
make settings_query.js use storage object passed as an argument
-rw-r--r--background/page_actions_server.js6
-rw-r--r--background/page_info_server.js6
-rw-r--r--background/policy_injector.js6
-rw-r--r--common/settings_query.js (renamed from background/settings_query.js)33
4 files changed, 16 insertions, 35 deletions
diff --git a/background/page_actions_server.js b/background/page_actions_server.js
index a7a44c1..58a0073 100644
--- a/background/page_actions_server.js
+++ b/background/page_actions_server.js
@@ -13,18 +13,17 @@
* IMPORT browser
* IMPORT listen_for_connection
* IMPORT sha256
- * IMPORT get_query_best
+ * IMPORT query_best
* IMPORT make_ajax_request
* IMPORTS_END
*/
var storage;
-var query_best;
var handler;
function send_actions(url, port)
{
- const [pattern, settings] = query_best(url);
+ const [pattern, settings] = query_best(storage, url);
const repos = storage.get_all(TYPE_PREFIX.REPO);
port.postMessage(["settings", [pattern, settings, repos]]);
@@ -126,7 +125,6 @@ function new_connection(port)
async function start_page_actions_server()
{
storage = await get_storage();
- query_best = await get_query_best();
listen_for_connection(CONNECTION_TYPE.PAGE_ACTIONS, new_connection);
}
diff --git a/background/page_info_server.js b/background/page_info_server.js
index 6f02750..e915011 100644
--- a/background/page_info_server.js
+++ b/background/page_info_server.js
@@ -10,7 +10,7 @@
* IMPORTS_START
* IMPORT listen_for_connection
* IMPORT get_storage
- * IMPORT get_query_all
+ * IMPORT query_all
* IMPORT TYPE_PREFIX
* IMPORT CONNECTION_TYPE
* IMPORT url_matches
@@ -18,7 +18,6 @@
*/
var storage;
-var query_all;
function handle_change(connection_data, change)
{
@@ -37,7 +36,7 @@ async function handle_subscription(connection_data, message)
}
connection_data.subscribed.add(url);
- connection_data.port.postMessage(["new_url", query_all(url)]);
+ connection_data.port.postMessage(["new_url", query_all(storage, url)]);
}
function new_connection(port)
@@ -62,7 +61,6 @@ function new_connection(port)
async function start_page_info_server()
{
storage = await get_storage();
- query_all = await get_query_all();
listen_for_connection(CONNECTION_TYPE.PAGE_INFO, new_connection);
}
diff --git a/background/policy_injector.js b/background/policy_injector.js
index 01da094..b3d85e8 100644
--- a/background/policy_injector.js
+++ b/background/policy_injector.js
@@ -19,13 +19,12 @@
* IMPORT url_item
* IMPORT url_extract_target
* IMPORT sign_policy
- * IMPORT get_query_best
+ * IMPORT query_best
* IMPORT csp_rule
* IMPORTS_END
*/
var storage;
-var query_best;
const csp_header_names = {
"content-security-policy" : true,
@@ -53,7 +52,7 @@ function url_inject(details)
if (targets.policy)
targets.target = "";
- let [pattern, settings] = query_best(targets.base_url);
+ let [pattern, settings] = query_best(storage, targets.base_url);
/* Defaults */
if (!pattern)
settings = {};
@@ -106,7 +105,6 @@ function headers_inject(details)
async function start_policy_injector()
{
storage = await get_storage();
- query_best = await get_query_best();
let extra_opts = ["blocking", "responseHeaders"];
if (is_chrome)
diff --git a/background/settings_query.js b/common/settings_query.js
index d0d9511..e85ae63 100644
--- a/background/settings_query.js
+++ b/common/settings_query.js
@@ -7,23 +7,12 @@
/*
* IMPORTS_START
- * IMPORT make_once
- * IMPORT get_storage
* IMPORT TYPE_PREFIX
* IMPORT for_each_possible_pattern
* IMPORTS_END
*/
-var storage;
-
-async function init(fun)
-{
- storage = await get_storage();
-
- return fun;
-}
-
-function check_pattern(pattern, multiple, matched)
+function check_pattern(storage, pattern, multiple, matched)
{
const settings = storage.get(TYPE_PREFIX.PAGE, pattern);
@@ -36,30 +25,28 @@ function check_pattern(pattern, multiple, matched)
return false;
}
-function query(url, multiple)
+function query(storage, url, multiple)
{
const matched = [];
- for_each_possible_pattern(url, p => check_pattern(p, multiple, matched));
+ const cb = p => check_pattern(storage, p, multiple, matched);
+ for_each_possible_pattern(url, cb);
return multiple ? matched : (matched[0] || [undefined, undefined]);
}
-function query_best(url)
+function query_best(storage, url)
{
- return query(url, false);
+ return query(storage, url, false);
}
-function query_all(url)
+function query_all(storage, url)
{
- return query(url, true);
+ return query(storage, url, true);
}
-const get_query_best = make_once(() => init(query_best));
-const get_query_all = make_once(() => init(query_all));
-
/*
* EXPORTS_START
- * EXPORT get_query_best
- * EXPORT get_query_all
+ * EXPORT query_best
+ * EXPORT query_all
* EXPORTS_END
*/