Skip to content

Commit 1de0e82

Browse files
committed
Replace requestAnimationFrame-if.js with no-requestAnimationFrame-if.js
Related issue: - uBlockOrigin/uBlock-issues#981 To be consistent with no-setTimeout-if.js. requestAnimationFrame-if.js is deprecated and must no longer be used, it will be removed in the near future when it's no longer in use in default filter lists. no-requestAnimationFrame-if.js is aliased to norafif.js.
1 parent 042935b commit 1de0e82

1 file changed

Lines changed: 33 additions & 0 deletions

File tree

β€Žassets/resources/scriptlets.jsβ€Ž

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -491,6 +491,7 @@
491491

492492
/// requestAnimationFrame-if.js
493493
/// alias raf-if.js
494+
// Deprecated, use "no-requestAnimationFrame-if.js"
494495
(function() {
495496
let needle = '{{1}}';
496497
const not = needle.charAt(0) === '!';
@@ -518,6 +519,38 @@
518519
})();
519520

520521

522+
/// no-requestAnimationFrame-if.js
523+
/// alias norafif.js
524+
(function() {
525+
let needle = '{{1}}';
526+
if ( needle === '{{1}}' ) { needle = ''; }
527+
const needleNot = needle.charAt(0) === '!';
528+
if ( needleNot ) { needle = needle.slice(1); }
529+
if ( needle.startsWith('/') && needle.endsWith('/') ) {
530+
needle = needle.slice(1, -1);
531+
} else if ( needle !== '' ) {
532+
needle = needle.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
533+
}
534+
const log = needleNot === false && needle === '' ? console.log : undefined;
535+
const reNeedle = new RegExp(needle);
536+
window.requestAnimationFrame = new Proxy(window.requestAnimationFrame, {
537+
apply: function(target, thisArg, args) {
538+
const a = String(args[0]);
539+
let defuse = false;
540+
if ( log !== undefined ) {
541+
log('uBO: requestAnimationFrame("%s")', a);
542+
} else {
543+
defuse = reNeedle.test(a) !== needleNot;
544+
}
545+
if ( defuse ) {
546+
args[0] = function(){};
547+
}
548+
return target.apply(thisArg, args);
549+
}
550+
});
551+
})();
552+
553+
521554
/// set-constant.js
522555
/// alias set.js
523556
(function() {

0 commit comments

Comments
Β (0)