From 16c0f69853a12c18873c0ebec8f03e1a2920cf59 Mon Sep 17 00:00:00 2001 From: Raymond Hill Date: Thu, 6 Nov 2025 12:23:36 -0500 Subject: [PATCH] [mv3][safari] Rwrite certain `main_frame` + `regexFilter` rules Related issue: https://github.com/uBlockOrigin/uBOL-home/issues/539 --- platform/mv3/safari/patch-ruleset.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/platform/mv3/safari/patch-ruleset.js b/platform/mv3/safari/patch-ruleset.js index 953475d15..88932de19 100644 --- a/platform/mv3/safari/patch-ruleset.js +++ b/platform/mv3/safari/patch-ruleset.js @@ -19,6 +19,26 @@ Home: https://github.com/gorhill/uBlock */ +// https://github.com/uBlockOrigin/uBOL-home/issues/539 +function patchRuleForIssue539(rule) { + const { condition } = rule; + if ( Array.isArray(condition.requestDomains) === false ) { return; } + if ( Array.isArray(condition.initiatorDomains) ) { return; } + if ( Array.isArray(condition.excludedRequestDomains) ) { + if ( Array.isArray(condition.excludedInitiatorDomains) ) { return; } + } + if ( Array.isArray(condition.resourceTypes) === false ) { return; } + if ( condition.resourceTypes.length !== 1 ) { return; } + if ( condition.resourceTypes.includes('main_frame') === false ) { return; } + if ( condition.regexFilter === undefined ) { return; } + condition.initiatorDomains = condition.requestDomains; + delete condition.requestDomains; + if ( Array.isArray(condition.excludedRequestDomains) ) { + condition.excludedInitiatorDomains = condition.excludedRequestDomains; + delete condition.excludedRequestDomains; + } +} + function patchRule(rule, out) { const copy = structuredClone(rule); const condition = copy.condition; @@ -40,6 +60,7 @@ function patchRule(rule, out) { condition.excludedDomains = condition.excludedInitiatorDomains; delete condition.excludedInitiatorDomains; } + patchRuleForIssue539(copy); // https://github.com/uBlockOrigin/uBOL-home/issues/434 let { urlFilter } = condition; if ( urlFilter?.endsWith('^') ) {