Skip to content

Commit 8f504f6

Browse files
committed
[mv3] Fix potentially broken custom cosmetic filters
Related issue: uBlockOrigin/uBOL-home#670 Regression from 46852eb
1 parent a7e2386 commit 8f504f6

1 file changed

Lines changed: 25 additions & 0 deletions

File tree

platform/mv3/extension/js/background.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ import {
5757
broadcastMessage,
5858
hostnameFromMatch,
5959
hostnamesFromMatches,
60+
intFromVersion,
6061
} from './utils.js';
6162

6263
import {
@@ -664,10 +665,34 @@ async function startSession() {
664665
// The default rulesets may have changed, find out new ruleset to enable,
665666
// obsolete ruleset to remove.
666667
if ( isNewVersion ) {
668+
const previousVersion = rulesetConfig.version;
667669
ubolLog(`Version change: ${rulesetConfig.version} => ${currentVersion}`);
668670
rulesetConfig.version = currentVersion;
669671
await patchDefaultRulesets();
670672
saveRulesetConfig();
673+
// https://github.com/uBlockOrigin/uBOL-home/issues/670
674+
if ( intFromVersion(previousVersion) <= intFromVersion('2026.423.0000') ) {
675+
const promises = [];
676+
const customFilters = await getAllCustomFilters();
677+
for ( const [ hostname, selectors ] of customFilters ) {
678+
let modified = false;
679+
for ( let i = 0; i < selectors.length; i++ ) {
680+
const selector = selectors[i];
681+
if ( selector.startsWith('0') === false ) { continue; }
682+
selectors[i] = selector.slice(1);
683+
modified = true;
684+
}
685+
if ( modified === false ) { continue; }
686+
promises.push(
687+
removeAllCustomFilters(hostname).then(( ) =>
688+
addCustomFilters(hostname, selectors)
689+
)
690+
);
691+
}
692+
if ( promises.length !== 0 ) {
693+
await Promise.all(promises);
694+
}
695+
}
671696
}
672697

673698
const rulesetsUpdated = await enableRulesets(rulesetConfig.enabledRulesets);

0 commit comments

Comments
 (0)