Fallback if requestIdleCallback is not available

This commit is contained in:
codebicycle
2018-04-14 12:43:08 +03:00
parent 1f8f8dabd1
commit f6a9214cfb

View File

@@ -321,8 +321,7 @@ chrome.runtime.sendMessage({}, function(response) {
} }
var observer = new MutationObserver(function(mutations) { var observer = new MutationObserver(function(mutations) {
// Process the DOM nodes lazily function mutationObserverHandler() {
requestIdleCallback(_ => {
mutations.forEach(function(mutation) { mutations.forEach(function(mutation) {
forEach.call(mutation.addedNodes, function(node) { forEach.call(mutation.addedNodes, function(node) {
if (typeof node === "function") if (typeof node === "function")
@@ -335,7 +334,13 @@ chrome.runtime.sendMessage({}, function(response) {
checkForVideo(node, node.parentNode || mutation.target, false); 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 }); observer.observe(document, { childList: true, subtree: true });