mirror of https://github.com/gorhill/uBlock.git
[mv3] Do not merge rules with errors
Related issue: - https://github.com/uBlockOrigin/uBOL-issues/issues/10#issuecomment-1304822579
This commit is contained in:
parent
77e1af790b
commit
6574ede152
|
@ -131,18 +131,22 @@ async function updateRegexRules() {
|
|||
// Collate results
|
||||
const results = await Promise.all(toCheck);
|
||||
const newRules = [];
|
||||
const rejectedRegexRules = [];
|
||||
for ( let i = 0; i < allRules.length; i++ ) {
|
||||
const rule = allRules[i];
|
||||
const result = results[i];
|
||||
if ( result instanceof Object && result.isSupported ) {
|
||||
newRules.push(rule);
|
||||
} else {
|
||||
//console.info(`${result.reason}: ${rule.condition.regexFilter}`);
|
||||
rejectedRegexRules.push(rule);
|
||||
}
|
||||
}
|
||||
console.info(
|
||||
`Rejected regex filters: ${allRules.length-newRules.length} out of ${allRules.length}`
|
||||
);
|
||||
if ( rejectedRegexRules.length !== 0 ) {
|
||||
console.info(
|
||||
'Rejected regexes:',
|
||||
rejectedRegexRules.map(rule => rule.condition.regexFilter)
|
||||
);
|
||||
}
|
||||
|
||||
// Add validated regex rules to dynamic ruleset without affecting rules
|
||||
// outside regex rules realm.
|
||||
|
|
|
@ -4175,6 +4175,9 @@ FilterContainer.prototype.dnrFromCompiled = function(op, context, ...args) {
|
|||
}
|
||||
|
||||
// Merge rules where possible by merging arrays of a specific property.
|
||||
//
|
||||
// https://github.com/uBlockOrigin/uBOL-issues/issues/10#issuecomment-1304822579
|
||||
// Do not merge rules which have errors.
|
||||
const mergeRules = (rulesetMap, mergeTarget) => {
|
||||
const mergeMap = new Map();
|
||||
const sorter = (_, v) => {
|
||||
|
@ -4216,6 +4219,7 @@ FilterContainer.prototype.dnrFromCompiled = function(op, context, ...args) {
|
|||
}
|
||||
};
|
||||
for ( const [ id, rule ] of rulesetMap ) {
|
||||
if ( rule._error !== undefined ) { continue; }
|
||||
const hash = ruleHasher(rule, mergeTarget);
|
||||
if ( mergeMap.has(hash) === false ) {
|
||||
mergeMap.set(hash, []);
|
||||
|
|
Loading…
Reference in New Issue