From 1a9c63254c3819d1fc7cdf7f84fd0cb501325d4f Mon Sep 17 00:00:00 2001 From: Raymond Hill Date: Tue, 3 Jun 2025 06:05:56 -0400 Subject: [PATCH] [mv3] Report custom DNR rule count in troubleshooting information As discussed internally. The custom DNR rule count will be reported only when it's not zero, and the count is only for effective DNR rules, i.e. it will not be reported if "Developer mode" is not enabled. --- platform/mv3/extension/js/background.js | 7 +++++++ platform/mv3/extension/js/report.js | 7 ++++++- platform/mv3/extension/js/ruleset-manager.js | 7 ++++--- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/platform/mv3/extension/js/background.js b/platform/mv3/extension/js/background.js index 5cd59ce8d..bee7b51b2 100644 --- a/platform/mv3/extension/js/background.js +++ b/platform/mv3/extension/js/background.js @@ -53,6 +53,7 @@ import { import { enableRulesets, excludeFromStrictBlock, + getEffectiveUserRules, getEnabledRulesetsDetails, getRulesetDetails, patchDefaultRulesets, @@ -400,6 +401,12 @@ function onMessage(request, sender, callback) { }); break; + case 'getEffectiveUserRules': + getEffectiveUserRules().then(result => { + callback(result); + }); + return true; + case 'updateUserDnrRules': updateUserRules().then(result => { callback(result); diff --git a/platform/mv3/extension/js/report.js b/platform/mv3/extension/js/report.js index e31914bc4..126d251d8 100644 --- a/platform/mv3/extension/js/report.js +++ b/platform/mv3/extension/js/report.js @@ -106,12 +106,14 @@ async function getConfigData() { platformInfo, rulesets, defaultMode, + userRules, registerContentScriptsReason, unregisterContentScriptsReason, ] = await Promise.all([ runtime.getPlatformInfo(), dnr.getEnabledRulesets(), sendMessage({ what: 'getDefaultFilteringMode' }), + sendMessage({ what: 'getEffectiveUserRules' }), localRead('$scripting.registerContentScripts'), localRead('$scripting.unregisterContentScripts'), ]); @@ -148,8 +150,11 @@ async function getConfigData() { 'site': `${modes[reportedPage.mode]}`, 'default': `${modes[defaultMode]}`, }, - rulesets, }; + if ( userRules.length !== 0 ) { + config['user rules'] = userRules.length; + } + config.rulesets = rulesets; if ( registerContentScriptsReason !== undefined ) { config.registerContentScripts = registerContentScriptsReason; } diff --git a/platform/mv3/extension/js/ruleset-manager.js b/platform/mv3/extension/js/ruleset-manager.js index 7876ab821..16e041f34 100644 --- a/platform/mv3/extension/js/ruleset-manager.js +++ b/platform/mv3/extension/js/ruleset-manager.js @@ -669,7 +669,7 @@ async function getEnabledRulesetsDetails() { /******************************************************************************/ -async function getUserRules() { +async function getEffectiveUserRules() { const allRules = await dnr.getDynamicRules(); const userRules = []; for ( const rule of allRules ) { @@ -684,7 +684,7 @@ async function updateUserRules() { userRules, userRulesText = '', ] = await Promise.all([ - getUserRules(), + getEffectiveUserRules(), localRead('userDnrRules'), ]); @@ -735,7 +735,7 @@ async function updateUserRules() { console.info(`updateUserRules() / ${reason}`); out.errors.push(`${reason}`); } finally { - const userRules = await getUserRules(); + const userRules = await getEffectiveUserRules(); if ( userRules.length === 0 ) { await localRemove('userDnrRuleCount'); } else { @@ -751,6 +751,7 @@ export { enableRulesets, excludeFromStrictBlock, filteringModesToDNR, + getEffectiveUserRules, getEnabledRulesetsDetails, getRulesetDetails, patchDefaultRulesets,