From 138642938257928dd18b24d38a8dd82eb5a66a4a Mon Sep 17 00:00:00 2001 From: Raymond Hill Date: Thu, 16 May 2019 17:22:20 -0400 Subject: [PATCH] Fix regression in applying procedural cosmetic filters Related commit: - 3573b6b32c3f5721eb606b1e0698ed66497ab080 --- platform/chromium/vapi-usercss.real.js | 2 +- src/js/contentscript.js | 39 +++++++++++++------------- 2 files changed, 20 insertions(+), 21 deletions(-) diff --git a/platform/chromium/vapi-usercss.real.js b/platform/chromium/vapi-usercss.real.js index 49a6061d7..333d76287 100644 --- a/platform/chromium/vapi-usercss.real.js +++ b/platform/chromium/vapi-usercss.real.js @@ -59,7 +59,7 @@ vAPI.userStylesheet = { vAPI.DOMFilterer = class { constructor() { - this.commitTimer = new vAPI.SafeAnimationFrame(( ) => this.commitNow); + this.commitTimer = new vAPI.SafeAnimationFrame(this.commitNow.bind(this)); this.domIsReady = document.readyState !== 'loading'; this.disabled = false; this.listeners = []; diff --git a/src/js/contentscript.js b/src/js/contentscript.js index 115362f55..4c0f2df4f 100644 --- a/src/js/contentscript.js +++ b/src/js/contentscript.js @@ -709,18 +709,17 @@ vAPI.DOMFilterer = (function() { }; PSelector.prototype.operatorToTaskMap = undefined; - const DOMProceduralFilterer = function(domFilterer) { - this.domFilterer = domFilterer; - this.domIsReady = false; - this.domIsWatched = false; - this.mustApplySelectors = false; - this.selectors = new Map(); - this.hiddenNodes = new Set(); - }; + const DOMProceduralFilterer = class { + constructor(domFilterer) { + this.domFilterer = domFilterer; + this.domIsReady = false; + this.domIsWatched = false; + this.mustApplySelectors = false; + this.selectors = new Map(); + this.hiddenNodes = new Set(); + } - DOMProceduralFilterer.prototype = { - - addProceduralSelectors: function(aa) { + addProceduralSelectors(aa) { const addedSelectors = []; let mustCommit = this.domIsWatched; for ( let i = 0, n = aa.length; i < n; i++ ) { @@ -757,9 +756,9 @@ vAPI.DOMFilterer = (function() { procedural: addedSelectors }); } - }, + } - commitNow: function() { + commitNow() { if ( this.selectors.size === 0 || this.domIsReady === false ) { return; } @@ -804,18 +803,18 @@ vAPI.DOMFilterer = (function() { this.domFilterer.unhideNode(node); } //console.timeEnd('procedural selectors/dom layout changed'); - }, + } - createProceduralFilter: function(o) { + createProceduralFilter(o) { return new PSelector(o); - }, + } - onDOMCreated: function() { + onDOMCreated() { this.domIsReady = true; this.domFilterer.commitNow(); - }, + } - onDOMChanged: function(addedNodes, removedNodes) { + onDOMChanged(addedNodes, removedNodes) { if ( this.selectors.size === 0 ) { return; } this.mustApplySelectors = this.mustApplySelectors || @@ -869,7 +868,7 @@ vAPI.DOMFilterer = (function() { onDOMChanged() { if ( super.onDOMChanged instanceof Function ) { - super.onDOMChanged(arguments); + super.onDOMChanged.apply(this, arguments); } this.proceduralFilterer.onDOMChanged.apply( this.proceduralFilterer,