diff --git a/platform/mv3/safari/patch-ruleset.js b/platform/mv3/safari/patch-ruleset.js index 27cc6f1de..12a9e5594 100644 --- a/platform/mv3/safari/patch-ruleset.js +++ b/platform/mv3/safari/patch-ruleset.js @@ -19,16 +19,6 @@ Home: https://github.com/gorhill/uBlock */ -function patchRuleWithRequestDomains(rule, out) { - const requestDomains = rule.condition.requestDomains; - delete rule.condition.requestDomains; - for ( const domain of requestDomains ) { - const newRule = structuredClone(rule); - newRule.condition.urlFilter = `||${domain}^`; - out.push(newRule); - } -} - export function patchRuleset(ruleset) { const out = []; for ( const rule of ruleset ) { @@ -45,6 +35,21 @@ export function patchRuleset(ruleset) { condition.excludedDomains = condition.excludedInitiatorDomains; delete condition.excludedInitiatorDomains; } + // https://github.com/uBlockOrigin/uBOL-home/issues/434 + let { urlFilter } = condition; + if ( urlFilter?.endsWith('^') ) { + urlFilter = urlFilter.slice(0, -1); + const match = /^(.*?\/\/|\|\|)/.exec(urlFilter); + const pattern = match + ? urlFilter.slice(match[0].length) + : urlFilter; + if ( /[^\w.%*-]/.test(pattern) ) { + const extra = structuredClone(rule); + extra.condition.urlFilter = `${urlFilter}|`; + out.push(extra); + console.log(`Patching to ${extra.condition.urlFilter}`); + } + } out.push(rule); } return out;