From 51db128dc268abeecaf19255c22f1261ed386f69 Mon Sep 17 00:00:00 2001 From: Raymond Hill Date: Sun, 13 Apr 2025 10:13:18 -0400 Subject: [PATCH] [mv3] "Enable strict blocking" setting depends on broad host permissions --- platform/mv3/extension/js/mode-manager.js | 3 +++ platform/mv3/extension/js/settings.js | 9 ++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/platform/mv3/extension/js/mode-manager.js b/platform/mv3/extension/js/mode-manager.js index 9014ffd8f..01f973962 100644 --- a/platform/mv3/extension/js/mode-manager.js +++ b/platform/mv3/extension/js/mode-manager.js @@ -21,6 +21,7 @@ import { broadcastMessage, + hasBroadHostPermissions, hostnamesFromMatches, isDescendantHostnameOfIter, toBroaderHostname, @@ -255,12 +256,14 @@ async function writeFilteringModeDetails(afterDetails) { return Promise.all([ getDefaultFilteringMode(), getTrustedSites(), + hasBroadHostPermissions(), localWrite('filteringModeDetails', data), sessionWrite('filteringModeDetails', data), ]).then(results => { broadcastMessage({ defaultFilteringMode: results[0], trustedSites: Array.from(results[1]), + hasOmnipotence: results[2], }); }); } diff --git a/platform/mv3/extension/js/settings.js b/platform/mv3/extension/js/settings.js index 6e7610875..4c9352f6e 100644 --- a/platform/mv3/extension/js/settings.js +++ b/platform/mv3/extension/js/settings.js @@ -69,7 +69,7 @@ function renderWidgets() { { const input = qs$('#strictBlockMode input[type="checkbox"]'); - const canStrictBlock = cachedRulesetData.defaultFilteringMode > 1; + const canStrictBlock = cachedRulesetData.hasOmnipotence; input.checked = canStrictBlock && cachedRulesetData.strictBlockMode; dom.attr(input, 'disabled', canStrictBlock ? null : ''); } @@ -235,6 +235,13 @@ listen.onmessage = ev => { } } + if ( message.hasOmnipotence !== undefined ) { + if ( message.hasOmnipotence !== local.hasOmnipotence ) { + local.hasOmnipotence = message.hasOmnipotence; + render = true; + } + } + if ( message.defaultFilteringMode !== undefined ) { if ( message.defaultFilteringMode !== local.defaultFilteringMode ) { local.defaultFilteringMode = message.defaultFilteringMode;