From 5fd35ffb3c91cc3fe13908746b34c3263895b89e Mon Sep 17 00:00:00 2001 From: Raymond Hill Date: Sat, 29 Apr 2023 15:22:40 -0400 Subject: [PATCH] Properly handle converted procedural filters in logger Related issue: - https://github.com/uBlockOrigin/uBlock-issues/issues/2624 --- src/js/contentscript.js | 6 +++--- src/js/scriptlets/cosmetic-logger.js | 8 +++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/js/contentscript.js b/src/js/contentscript.js index f4a1e8e62..6244a7030 100644 --- a/src/js/contentscript.js +++ b/src/js/contentscript.js @@ -663,9 +663,9 @@ vAPI.DOMFilterer = class { const proceduralFilterer = this.proceduralFiltererInstance(); if ( proceduralFilterer !== null ) { for ( const json of this.convertedProceduralFilters ) { - out.procedural.push( - proceduralFilterer.createProceduralFilter(json) - ); + const pfilter = proceduralFilterer.createProceduralFilter(json); + pfilter.converted = true; + out.procedural.push(pfilter); } } } diff --git a/src/js/scriptlets/cosmetic-logger.js b/src/js/scriptlets/cosmetic-logger.js index f023d231c..181c6e209 100644 --- a/src/js/scriptlets/cosmetic-logger.js +++ b/src/js/scriptlets/cosmetic-logger.js @@ -141,16 +141,18 @@ const processDeclarativeComplex = function(out) { /******************************************************************************/ -const processProcedural = function(out) { +function processProcedural(out) { if ( proceduralDict.size === 0 ) { return; } for ( const [ raw, pselector ] of proceduralDict ) { - if ( pselector.hit === false && pselector.exec().length === 0 ) { + if ( pselector.converted ) { + if ( safeQuerySelector(pselector.selector) === null ) { continue; } + } else if ( pselector.hit === false && pselector.exec().length === 0 ) { continue; } out.push(`##${raw}`); proceduralDict.delete(raw); } -}; +} /******************************************************************************/