[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.
This commit is contained in:
Raymond Hill 2025-06-03 06:05:56 -04:00
parent eb46f42419
commit 1a9c63254c
No known key found for this signature in database
GPG key ID: 25E1490B761470C2
3 changed files with 17 additions and 4 deletions

View file

@ -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);

View file

@ -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;
}

View file

@ -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,