From 2076d4223994aa5f9b8be3bf65f13e91eb932d98 Mon Sep 17 00:00:00 2001 From: Raymond Hill Date: Fri, 23 May 2025 09:36:21 -0400 Subject: [PATCH] [mv3] Add to troubleshooting info whether webext API calls failed Related discussion: https://github.com/uBlockOrigin/uBOL-home/issues/327#issuecomment-2904240310 --- platform/mv3/extension/js/report.js | 24 ++++++++++++++++--- .../mv3/extension/js/scripting-manager.js | 23 ++++++++++++++---- 2 files changed, 39 insertions(+), 8 deletions(-) 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;