Skip to content

Commit 8884f25

Browse files
committed
Improve prevent-refresh scriptlet
Related discussion: uBlockOrigin/uAssets#25859 (comment)
1 parent eab0fd4 commit 8884f25

File tree

1 file changed

+17
-13
lines changed

1 file changed

+17
-13
lines changed

assets/resources/scriptlets.js

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2315,30 +2315,34 @@ builtinScriptlets.push({
23152315
fn: preventRefresh,
23162316
world: 'ISOLATED',
23172317
dependencies: [
2318-
'run-at.fn',
23192318
'safe-self.fn',
23202319
],
23212320
});
23222321
// https://www.reddit.com/r/uBlockOrigin/comments/q0frv0/while_reading_a_sports_article_i_was_redirected/hf7wo9v/
23232322
function preventRefresh(
2324-
arg1 = ''
2323+
delay = ''
23252324
) {
2326-
if ( typeof arg1 !== 'string' ) { return; }
2325+
if ( typeof delay !== 'string' ) { return; }
23272326
const safe = safeSelf();
2328-
const logPrefix = safe.makeLogPrefix('prevent-refresh', arg1);
2327+
const logPrefix = safe.makeLogPrefix('prevent-refresh', delay);
2328+
const stop = content => {
2329+
window.stop();
2330+
safe.uboLog(logPrefix, `Prevented "${content}"`);
2331+
};
23292332
const defuse = ( ) => {
23302333
const meta = document.querySelector('meta[http-equiv="refresh" i][content]');
23312334
if ( meta === null ) { return; }
2332-
safe.uboLog(logPrefix, `Prevented "${meta.textContent}"`);
2333-
const s = arg1 === ''
2334-
? meta.getAttribute('content')
2335-
: arg1;
2336-
const ms = Math.max(parseFloat(s) || 0, 0) * 1000;
2337-
setTimeout(( ) => { window.stop(); }, ms);
2335+
const content = meta.getAttribute('content') || '';
2336+
const ms = delay === ''
2337+
? Math.max(parseFloat(content) || 0, 0) * 500
2338+
: 0;
2339+
if ( ms === 0 ) {
2340+
stop(content);
2341+
} else {
2342+
setTimeout(( ) => { stop(content); }, ms);
2343+
}
23382344
};
2339-
runAt(( ) => {
2340-
defuse();
2341-
}, 'interactive');
2345+
self.addEventListener('load', defuse, { capture: true, once: true });
23422346
}
23432347

23442348
/******************************************************************************/

0 commit comments

Comments
 (0)