@@ -57,6 +57,7 @@ import {
5757 broadcastMessage ,
5858 hostnameFromMatch ,
5959 hostnamesFromMatches ,
60+ intFromVersion ,
6061} from './utils.js' ;
6162
6263import {
@@ -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