From 21ec5a277c598b84a0adcf829c3dcc9e53ee82e8 Mon Sep 17 00:00:00 2001 From: Raymond Hill Date: Wed, 14 Feb 2024 14:30:05 -0500 Subject: [PATCH] Fix improper invalidation of valid `uritransform` exception filters Related feedback: https://github.com/uBlockOrigin/uBlock-discussions/discussions/831#discussioncomment-8461847 --- src/js/codemirror/ubo-static-filtering.js | 1 + src/js/static-filtering-parser.js | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/js/codemirror/ubo-static-filtering.js b/src/js/codemirror/ubo-static-filtering.js index ac1b048a8..9dfcfb9fb 100644 --- a/src/js/codemirror/ubo-static-filtering.js +++ b/src/js/codemirror/ubo-static-filtering.js @@ -192,6 +192,7 @@ CodeMirror.defineMode('ubo-static-filtering', function() { case sfp.NODE_TYPE_NET_OPTION_NAME_SCRIPT: case sfp.NODE_TYPE_NET_OPTION_NAME_SHIDE: case sfp.NODE_TYPE_NET_OPTION_NAME_TO: + case sfp.NODE_TYPE_NET_OPTION_NAME_URLTRANSFORM: case sfp.NODE_TYPE_NET_OPTION_NAME_XHR: case sfp.NODE_TYPE_NET_OPTION_NAME_WEBRTC: case sfp.NODE_TYPE_NET_OPTION_NAME_WEBSOCKET: diff --git a/src/js/static-filtering-parser.js b/src/js/static-filtering-parser.js index 6110c4f7d..67f82ce69 100644 --- a/src/js/static-filtering-parser.js +++ b/src/js/static-filtering-parser.js @@ -1501,7 +1501,7 @@ export class AstFilterParser { } break; } - case NODE_TYPE_NET_OPTION_NAME_URLTRANSFORM: + case NODE_TYPE_NET_OPTION_NAME_URLTRANSFORM: { realBad = abstractTypeCount || behaviorTypeCount || unredirectableTypeCount; if ( realBad ) { break; } if ( isException !== true && this.options.trustedSource !== true ) { @@ -1510,11 +1510,12 @@ export class AstFilterParser { break; } const value = this.getNetOptionValue(NODE_TYPE_NET_OPTION_NAME_URLTRANSFORM); - if ( parseReplaceValue(value) === undefined ) { + if ( value !== '' && parseReplaceValue(value) === undefined ) { this.astError = AST_ERROR_OPTION_BADVALUE; realBad = true; } break; + } case NODE_TYPE_NET_OPTION_NAME_REMOVEPARAM: realBad = abstractTypeCount || behaviorTypeCount; break;