diff options
Diffstat (limited to 'background/patterns_query_manager.js')
-rw-r--r-- | background/patterns_query_manager.js | 28 |
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); |