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) {
// 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 });