From 826bc7d4578e350ffeb1b8a00627958e38b9d41a Mon Sep 17 00:00:00 2001 From: Raymond Hill Date: Thu, 21 Dec 2023 11:14:33 -0500 Subject: [PATCH] It's ok for toLogger() to be in derived class Related commit: https://github.com/gorhill/uBlock/commit/aa7f77aaadc531ce1b5d002ebf455396916688ac --- src/js/messaging.js | 13 +------------ src/js/scriptlet-filtering.js | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/js/messaging.js b/src/js/messaging.js index f63d16c0d..52242b360 100644 --- a/src/js/messaging.js +++ b/src/js/messaging.js @@ -718,18 +718,7 @@ const retrieveContentScriptParameters = async function(sender, request) { if ( logger.enabled || request.needScriptlets ) { const scriptletDetails = scriptletFilteringEngine.injectNow(request); if ( scriptletDetails !== undefined ) { - if ( logger.enabled && typeof scriptletDetails.filters === 'string' ) { - const fctxt = µb.filteringContext - .duplicate() - .fromTabId(tabId) - .setRealm('extended') - .setType('scriptlet') - .setURL(request.url) - .setDocOriginFromURL(request.url); - for ( const raw of scriptletDetails.filters.split('\n') ) { - fctxt.setFilter({ source: 'extended', raw }).toLogger(); - } - } + scriptletFilteringEngine.toLogger(request, scriptletDetails); if ( request.needScriptlets ) { response.scriptletDetails = scriptletDetails; } diff --git a/src/js/scriptlet-filtering.js b/src/js/scriptlet-filtering.js index 1e10db256..10da19f0b 100644 --- a/src/js/scriptlet-filtering.js +++ b/src/js/scriptlet-filtering.js @@ -26,6 +26,7 @@ /******************************************************************************/ import µb from './background.js'; +import logger from './logger.js'; import { onBroadcast } from './broadcast.js'; import { redirectEngine as reng } from './redirect-engine.js'; import { sessionFirewall } from './filtering-engines.js'; @@ -300,6 +301,22 @@ export class ScriptletFilteringEngineEx extends ScriptletFilteringEngine { return scriptletDetails; } + + toLogger(request, details) { + if ( details === undefined ) { return; } + if ( logger.enabled !== true ) { return; } + if ( typeof details.filters !== 'string' ) { return; } + const fctxt = µb.filteringContext + .duplicate() + .fromTabId(request.tabId) + .setRealm('extended') + .setType('scriptlet') + .setURL(request.url) + .setDocOriginFromURL(request.url); + for ( const raw of details.filters.split('\n') ) { + fctxt.setFilter({ source: 'extended', raw }).toLogger(); + } + } } /******************************************************************************/