From a5091488e50baed6d5a3c2d5a229d5887e27e04c Mon Sep 17 00:00:00 2001 From: Raymond Hill Date: Sun, 2 Nov 2025 12:55:44 -0500 Subject: [PATCH] [mv3][edge] Filter out rules with `responseHeaders` condition MS store validator rejects those rules in static rulesets. --- platform/mv3/edge/patch-ruleset.js | 36 ++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 platform/mv3/edge/patch-ruleset.js diff --git a/platform/mv3/edge/patch-ruleset.js b/platform/mv3/edge/patch-ruleset.js new file mode 100644 index 000000000..d68dbb479 --- /dev/null +++ b/platform/mv3/edge/patch-ruleset.js @@ -0,0 +1,36 @@ +/******************************************************************************* + + uBlock Origin - a comprehensive, efficient content blocker + Copyright (C) 2025-present Raymond Hill + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see {http://www.gnu.org/licenses/}. + + Home: https://github.com/gorhill/uBlock +*/ + +function patchRule(rule, out) { + const { condition } = rule; + if ( Array.isArray(condition.responseHeaders) ) { return; } + out.push(rule); + return rule; +} + +export function patchRuleset(ruleset) { + const out = []; + for ( const rule of ruleset ) { + if ( patchRule(rule, out) ) { continue; } + console.log(`\tReject ${JSON.stringify(rule)}`); + } + return out; +}