fixup: innerObserver
This commit is contained in:
parent
d4317878db
commit
08f90ff891
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user