mirror of
https://github.com/gorhill/uBlock.git
synced 2026-03-11 09:04:36 +00:00
[mv3][safari] Workaround for urlFilter with path part ending with ^
Related issue: https://github.com/uBlockOrigin/uBOL-home/issues/434
This commit is contained in:
parent
4d2cfd1487
commit
5957656a5b
1 changed files with 15 additions and 10 deletions
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in a new issue