diff --git a/platform/mv3/extension/js/report.js b/platform/mv3/extension/js/report.js index f3072c1a4..e31914bc4 100644 --- a/platform/mv3/extension/js/report.js +++ b/platform/mv3/extension/js/report.js @@ -19,10 +19,18 @@ Home: https://github.com/gorhill/uBlock */ -import { dom, qs$ } from './dom.js'; +import { + dom, + qs$, +} from './dom.js'; + +import { + localRead, + runtime, + sendMessage, +} from './ext.js'; + import { dnr } from './ext-compat.js'; -import { runtime } from './ext.js'; -import { sendMessage } from './ext.js'; /******************************************************************************/ @@ -98,10 +106,14 @@ async function getConfigData() { platformInfo, rulesets, defaultMode, + registerContentScriptsReason, + unregisterContentScriptsReason, ] = await Promise.all([ runtime.getPlatformInfo(), dnr.getEnabledRulesets(), sendMessage({ what: 'getDefaultFilteringMode' }), + localRead('$scripting.registerContentScripts'), + localRead('$scripting.unregisterContentScripts'), ]); const browser = (( ) => { const extURL = runtime.getURL(''); @@ -138,6 +150,12 @@ async function getConfigData() { }, rulesets, }; + if ( registerContentScriptsReason !== undefined ) { + config.registerContentScripts = registerContentScriptsReason; + } + if ( unregisterContentScriptsReason !== undefined ) { + config.unregisterContentScripts = unregisterContentScriptsReason; + } return renderData(config); } diff --git a/platform/mv3/extension/js/scripting-manager.js b/platform/mv3/extension/js/scripting-manager.js index a400ce856..810d0cae0 100644 --- a/platform/mv3/extension/js/scripting-manager.js +++ b/platform/mv3/extension/js/scripting-manager.js @@ -21,7 +21,12 @@ import * as ut from './utils.js'; -import { browser } from './ext.js'; +import { + browser, + localRemove, + localWrite, +} from './ext.js'; + import { fetchJSON } from './fetch.js'; import { getEnabledRulesetsDetails } from './ruleset-manager.js'; import { getFilteringModeDetails } from './mode-manager.js'; @@ -607,14 +612,22 @@ async function registerInjectables() { if ( toRemove.length !== 0 ) { ubolLog(`Unregistered ${toRemove} content (css/js)`); - await browser.scripting.unregisterContentScripts({ ids: toRemove }) - .catch(reason => { console.info(reason); }); + await browser.scripting.unregisterContentScripts({ ids: toRemove }).then(( ) => { + localRemove('$scripting.unregisterContentScripts'); + }).catch(reason => { + localWrite('$scripting.unregisterContentScripts', reason); + console.info(reason); + }); } if ( toAdd.length !== 0 ) { ubolLog(`Registered ${toAdd.map(v => v.id)} content (css/js)`); - await browser.scripting.registerContentScripts(toAdd) - .catch(reason => { console.info(reason); }); + await browser.scripting.registerContentScripts(toAdd).then(( ) => { + localRemove('$scripting.registerContentScripts'); + }).catch(reason => { + localWrite('$scripting.registerContentScripts', reason); + console.info(reason); + }); } registerInjectables.barrier = false;