aboutsummaryrefslogtreecommitdiff
path: root/background/patterns_query_manager.js
diff options
context:
space:
mode:
Diffstat (limited to 'background/patterns_query_manager.js')
-rw-r--r--background/patterns_query_manager.js28
1 files changed, 18 insertions, 10 deletions
diff --git a/background/patterns_query_manager.js b/background/patterns_query_manager.js
index 3b74ee9..9de9d35 100644
--- a/background/patterns_query_manager.js
+++ b/background/patterns_query_manager.js
@@ -64,8 +64,7 @@ let registered_script = null;
let script_update_occuring = false;
let script_update_needed;
-async function update_content_script()
-{
+async function update_content_script() {
if (script_update_occuring)
return;
@@ -98,8 +97,7 @@ if (this.haketilo_content_script_main)
}
#ENDIF
-function register(kind, object)
-{
+function register(kind, object) {
if (kind === "mappings") {
for (const [pattern, resource] of Object.entries(object.payloads))
pqt.register(tree, pattern, object.identifier, resource);
@@ -118,8 +116,7 @@ function register(kind, object)
#ENDIF
}
-function changed(kind, change)
-{
+function changed(kind, change) {
const old_version = currently_registered.get(change.key);
if (old_version !== undefined) {
if (kind === "mappings") {
@@ -143,8 +140,19 @@ function changed(kind, change)
#ENDIF
}
-async function start(secret_)
-{
+function setting_changed(change) {
+ if (change.key !== "default_allow")
+ return;
+
+ default_allow.value = (change.new_val || {}).value;
+
+#IF MOZILLA || MV3
+ script_update_needed = true;
+ setTimeout(update_content_script, 0);
+#ENDIF
+}
+
+async function start(secret_) {
secret = secret_;
const [mapping_tracking, initial_mappings] =
@@ -155,9 +163,9 @@ async function start(secret_)
initial_mappings.forEach(m => register("mappings", m));
initial_blocking.forEach(b => register("blocking", b));
- const set_allow_val = ch => default_allow.value = (ch.new_val || {}).value;
const [setting_tracking, initial_settings] =
- await haketilodb.track.settings(set_allow_val);
+ await haketilodb.track.settings(setting_changed);
+
for (const setting of initial_settings) {
if (setting.name === "default_allow")
Object.assign(default_allow, setting);