fixup: innerObserver

This commit is contained in:
tophf 2020-03-16 13:18:17 +03:00
parent d4317878db
commit 08f90ff891

View File

@ -313,7 +313,11 @@ self.createStyleInjector = self.INJECTED === 1 ? self.createStyleInjector : ({
let digest = 0; let digest = 0;
let lastCalledTime = NaN; let lastCalledTime = NaN;
let observing = false; let observing = false;
const observer = new MutationObserver(() => { const observer = new MutationObserver(onMutation);
const innerObserver = new MutationObserver(onMutation);
return {evade, start, stop};
function onMutation() {
if (digest) { if (digest) {
if (performance.now() - lastCalledTime > 1000) { if (performance.now() - lastCalledTime > 1000) {
digest = 0; digest = 0;
@ -326,8 +330,7 @@ self.createStyleInjector = self.INJECTED === 1 ? self.createStyleInjector : ({
digest++; digest++;
lastCalledTime = performance.now(); lastCalledTime = performance.now();
} }
}); }
return {evade, start, stop};
function evade(fn) { function evade(fn) {
const restore = observing && start; const restore = observing && start;
@ -339,14 +342,13 @@ self.createStyleInjector = self.INJECTED === 1 ? self.createStyleInjector : ({
function start() { function start() {
if (observing) return; if (observing) return;
observer.observe(document.documentElement, {childList: true}); observer.observe(document.documentElement, {childList: true});
observer.observe(container, {childList: true}); innerObserver.observe(container, {childList: true});
observing = true; observing = true;
} }
function stop() { function stop() {
if (!observing) return; if (!observing) return;
// FIXME: do we need this? innerObserver.disconnect();
observer.takeRecords();
observer.disconnect(); observer.disconnect();
observing = false; observing = false;
} }