From 3db46c1728a2a93fd103c258a7e73a60d84c95fd Mon Sep 17 00:00:00 2001 From: Raymond Hill Date: Sun, 12 Nov 2023 11:44:24 -0500 Subject: [PATCH] Allow for support of more event types Related commit: https://github.com/gorhill/uBlock/commit/ef311ddbec9e50e032cfce062bd6c69aed5ae977 --- assets/resources/scriptlets.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/assets/resources/scriptlets.js b/assets/resources/scriptlets.js index 33e4b18ae..143c78f35 100644 --- a/assets/resources/scriptlets.js +++ b/assets/resources/scriptlets.js @@ -2704,7 +2704,7 @@ function cookieRemover( const safe = safeSelf(); const reName = safe.patternToRegex(needle); const extraArgs = safe.getExtraArgs(Array.from(arguments), 1); - const throttle = (fn, ms = 1000) => { + const throttle = (fn, ms = 500) => { if ( throttle.timer !== undefined ) { return; } throttle.timer = setTimeout(( ) => { throttle.timer = undefined; @@ -2746,13 +2746,17 @@ function cookieRemover( } }); }; - if ( extraArgs.when === 'scroll' ) { - document.addEventListener('scroll', ( ) => { + removeCookie(); + window.addEventListener('beforeunload', removeCookie); + if ( typeof extraArgs.when !== 'string' ) { return; } + const supportedEventTypes = [ 'scroll', 'keydown' ]; + const eventTypes = extraArgs.when.split(/\s/); + for ( const type of eventTypes ) { + if ( supportedEventTypes.includes(type) === false ) { continue; } + document.addEventListener(type, ( ) => { throttle(removeCookie); }, { passive: true }); } - removeCookie(); - window.addEventListener('beforeunload', removeCookie); } /******************************************************************************/