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,