From b31d53a4d0358913dbeabe6b9f73d695d877c1e6 Mon Sep 17 00:00:00 2001 From: Paul Irish Date: Mon, 19 Mar 2018 10:31:53 -0700 Subject: [PATCH] enqueue the entire MuObs handler instead. --- inject.js | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/inject.js b/inject.js index 816f55d..1a4da29 100644 --- a/inject.js +++ b/inject.js @@ -286,29 +286,22 @@ chrome.runtime.sendMessage({}, function(response) { } } - // Process the DOM nodes lazily - function enqueueCheckNodes(node, parent, added) { - const checkNodes = _ => checkForVideo(node, parent, added); - if ('requestIdleCallback' in window) { - requestIdleCallback(checkNodes, {timeout: 1000}); - } else { - checkNodes(); - } - } - var observer = new MutationObserver(function(mutations) { - mutations.forEach(function(mutation) { - forEach.call(mutation.addedNodes, function(node) { - if (typeof node === "function") - return; - enqueueCheckNodes(node, node.parentNode || mutation.target, true); + // Process the DOM nodes lazily + requestIdleCallback(_ => { + mutations.forEach(function(mutation) { + forEach.call(mutation.addedNodes, function(node) { + if (typeof node === "function") + return; + checkForVideo(node, node.parentNode || mutation.target, true); + }); + forEach.call(mutation.removedNodes, function(node) { + if (typeof node === "function") + return; + checkForVideo(node, node.parentNode || mutation.target, false); + }); }); - forEach.call(mutation.removedNodes, function(node) { - if (typeof node === "function") - return; - enqueueCheckNodes(node, node.parentNode || mutation.target, false); - }); - }); + }, {timeout: 1000}); }); observer.observe(document, { childList: true, subtree: true });