From 85f587162f8952f64062cf00c5b8141f1a4d2e36 Mon Sep 17 00:00:00 2001 From: Raymond Hill Date: Sun, 28 Dec 2025 09:48:20 -0500 Subject: [PATCH] [mv3] Use parameter name as url filter where possible Related issue: https://github.com/uBlockOrigin/uBOL-home/discussions/575 --- src/js/static-net-filtering.js | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/src/js/static-net-filtering.js b/src/js/static-net-filtering.js index efc393978..7df10d3e8 100644 --- a/src/js/static-net-filtering.js +++ b/src/js/static-net-filtering.js @@ -4732,19 +4732,20 @@ StaticNetFilteringEngine.prototype.dnrFromCompiled = function(op, context, ...ar } case 'removeparam': { rule.action.type = 'redirect'; - if ( rule.__modifierValue === '|' ) { - rule.__modifierValue = ''; + let paramName = rule.__modifierValue; + if ( paramName === '|' ) { + paramName = ''; } - if ( rule.__modifierValue !== '' ) { + if ( paramName !== '' ) { rule.action.redirect = { transform: { queryTransform: { - removeParams: [ rule.__modifierValue ] + removeParams: [ paramName ] } } }; - if ( /^~?\/.+\/$/.test(rule.__modifierValue) ) { - dnrAddRuleError(rule, `Unsupported regex-based removeParam: ${rule.__modifierValue}`); + if ( /^~?\/.+\/$/.test(paramName) ) { + dnrAddRuleError(rule, `Unsupported regex-based removeParam: ${paramName}`); } } else { rule.action.redirect = { @@ -4766,15 +4767,13 @@ StaticNetFilteringEngine.prototype.dnrFromCompiled = function(op, context, ...ar ]; } } - // https://github.com/uBlockOrigin/uBOL-home/issues/140 - // Mitigate until DNR API flaw is addressed by browser vendors - let priority = rule.priority || 1; - if ( rule.condition.urlFilter !== undefined ) { priority += 1; } - if ( rule.condition.regexFilter !== undefined ) { priority += 1; } - if ( rule.condition.initiatorDomains !== undefined ) { priority += 1; } - if ( rule.condition.requestDomains !== undefined ) { priority += 1; } - if ( priority !== 1 ) { - rule.priority = priority; + // https://github.com/uBlockOrigin/uBOL-home/discussions/575 + if ( rule.condition.urlFilter === undefined ) { + if ( rule.condition.regexFilter === undefined ) { + if ( paramName !== '' ) { + rule.condition.urlFilter = `^${paramName}=`; + } + } } if ( rule.__modifierAction === ALLOW_REALM ) { dnrAddRuleError(rule, `Unsupported removeparam exception: ${rule.__modifierValue}`);