From f6a9214cfb6219e39e5040052a706eded255d98c Mon Sep 17 00:00:00 2001 From: codebicycle Date: Sat, 14 Apr 2018 12:43:08 +0300 Subject: [PATCH] Fallback if requestIdleCallback is not available --- inject.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/inject.js b/inject.js index 153ada9..78699a7 100644 --- a/inject.js +++ b/inject.js @@ -321,8 +321,7 @@ chrome.runtime.sendMessage({}, function(response) { } var observer = new MutationObserver(function(mutations) { - // Process the DOM nodes lazily - requestIdleCallback(_ => { + function mutationObserverHandler() { mutations.forEach(function(mutation) { forEach.call(mutation.addedNodes, function(node) { if (typeof node === "function") @@ -335,7 +334,13 @@ chrome.runtime.sendMessage({}, function(response) { checkForVideo(node, node.parentNode || mutation.target, false); }); }); - }, {timeout: 1000}); + } + // Process the DOM nodes lazily + if ('requestIdleCallback' in window) { + requestIdleCallback(mutationObserverHandler, {timeout: 1000}); + } else { + mutationObserverHandler(); + } }); observer.observe(document, { childList: true, subtree: true });