Fix: don't argue for mutations generated by other extensions
This commit is contained in:
parent
f05c13722b
commit
8458b6b7a4
|
@ -19,6 +19,7 @@ const APPLY = (() => {
|
||||||
onChange: () => {
|
onChange: () => {
|
||||||
if (styleInjector.outOfOrder()) {
|
if (styleInjector.outOfOrder()) {
|
||||||
styleInjector.sort();
|
styleInjector.sort();
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -414,21 +415,21 @@ const APPLY = (() => {
|
||||||
}
|
}
|
||||||
|
|
||||||
function createDocRootObserver({onChange}) {
|
function createDocRootObserver({onChange}) {
|
||||||
let lastCalledTime = performance.now();
|
let digest = 0;
|
||||||
let continuousCalledCount = 0;
|
let lastCalledTime = NaN;
|
||||||
let observing = false;
|
let observing = false;
|
||||||
const observer = new MutationObserver(() => {
|
const observer = new MutationObserver(() => {
|
||||||
const now = performance.now();
|
if (digest) {
|
||||||
if (now - lastCalledTime < 1000) {
|
if (performance.now() - lastCalledTime > 1000) {
|
||||||
if (continuousCalledCount >= 5) {
|
digest = 0;
|
||||||
|
} else if (digest > 5) {
|
||||||
throw new Error('The page keeps generating mutations. Skip the event.');
|
throw new Error('The page keeps generating mutations. Skip the event.');
|
||||||
}
|
}
|
||||||
continuousCalledCount++;
|
|
||||||
} else {
|
|
||||||
continuousCalledCount = 0;
|
|
||||||
}
|
}
|
||||||
lastCalledTime = now;
|
if (onChange()) {
|
||||||
onChange();
|
digest++;
|
||||||
|
lastCalledTime = performance.now();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
return {start, stop, evade};
|
return {start, stop, evade};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user