Skip to content

Commit ea15cef

Browse files
committed
[mv3] Also log salvaged rules using entity-based domains
Some filters with entity-based domain option can be salvaged when there are non-entity-based domain option, but since we are throwing away the entity-based entries, we are only partially converting to DNR. This commit will log a warning about this in log.txt. Before this commit, only non-salvageable filters were logged.
1 parent 86ba04d commit ea15cef

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

platform/mv3/make-rulesets.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,12 @@ async function processNetworkFilters(assetDetails, network) {
267267

268268
const plainGood = rules.filter(rule => isGood(rule) && isRegex(rule) === false);
269269
log(`\tPlain good: ${plainGood.length}`);
270+
log(plainGood
271+
.filter(rule => Array.isArray(rule._warning))
272+
.map(rule => rule._warning.map(v => `\t\t${v}`))
273+
.join('\n'),
274+
true
275+
);
270276

271277
const regexes = rules.filter(rule => isGood(rule) && isRegex(rule));
272278
log(`\tMaybe good (regexes): ${regexes.length}`);

src/js/static-net-filtering.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -673,6 +673,11 @@ const dnrAddRuleError = (rule, msg) => {
673673
rule._error.push(msg);
674674
};
675675

676+
const dnrAddRuleWarning = (rule, msg) => {
677+
rule._warning = rule._warning || [];
678+
rule._warning.push(msg);
679+
};
680+
676681
/*******************************************************************************
677682
678683
Filter classes
@@ -4385,8 +4390,9 @@ FilterContainer.prototype.dnrFromCompiled = function(op, context, ...args) {
43854390
hn => hn.endsWith('.*') === false
43864391
);
43874392
if ( domains.length === 0 ) {
4388-
dnrAddRuleError(rule, `Could not salvage rule with only entity-based domain= option: ${rule.condition.initiatorDomains.join('|')}`);
4393+
dnrAddRuleError(rule, `Can't salvage rule with only entity-based domain= option: ${rule.condition.initiatorDomains.join('|')}`);
43894394
} else {
4395+
dnrAddRuleWarning(rule, `Salvaged rule by ignoring ${rule.condition.initiatorDomains.length - domains.length} entity-based domain= option: ${rule.condition.initiatorDomains.join('|')}`);
43904396
rule.condition.initiatorDomains = domains;
43914397
}
43924398
}

0 commit comments

Comments
 (0)