14 lines
663 B
JavaScript
14 lines
663 B
JavaScript
|
// rAF never fires on devtools_page (because it's in the background)
|
||
|
// https://bugs.chromium.org/p/chromium/issues/detail?id=1241986#c31
|
||
|
// Since we render React elements here, we need to polyfill it with setTimeout
|
||
|
// The polyfill is based on https://gist.github.com/jalbam/5fe05443270fa6d8136238ec72accbc0
|
||
|
const FRAME_TIME = 16;
|
||
|
let lastTime = 0;
|
||
|
window.requestAnimationFrame = function (callback, element) {
|
||
|
const now = window.performance.now();
|
||
|
const nextTime = lastTime + FRAME_TIME |> Math.max(%, now);
|
||
|
return function () {
|
||
|
(lastTime = nextTime) |> callback(%);
|
||
|
} |> setTimeout(%, nextTime - now);
|
||
|
};
|
||
|
window.cancelAnimationFrame = clearTimeout;
|