@samitouri / QOS-React-2 / commits / 8fa0ccca00

fix: use SharedArrayBuffer only when cross-origin isolation is enabled (#20831)

* fix: check cross-origin isolation for SharedArrayBuffer * chore: remove unused a $FlowFixMe comment * prettier

Toru Kobayashi committed Feb 18, 2021 at 06:43 UTC 8fa0ccca0090acbf2d4717a19bc37e9443ba0bf8
1 file changed +9 -4
packages/scheduler/src/SchedulerProfiling.js
+9 -4
@@ -15,13 +15,18 @@ import {NoPriority} from './SchedulerPriorities';
15 let runIdCounter: number = 0;
16 let mainThreadIdCounter: number = 0;
17
18 +const isEnabledSharedArrayBuffer =
19 + // $FlowFixMe Flow doesn't know about SharedArrayBuffer
20 + typeof SharedArrayBuffer === 'function' &&
21 + // We only use SharedArrayBuffer when cross origin isolation is enabled.
22 + typeof window !== 'undefined' &&
23 + window.crossOriginIsolated === true;
24 +
25 const profilingStateSize = 4;
26 export const sharedProfilingBuffer = enableProfiling
20 - ? // $FlowFixMe Flow doesn't know about SharedArrayBuffer
21 - typeof SharedArrayBuffer === 'function'
27 + ? isEnabledSharedArrayBuffer
28 ? new SharedArrayBuffer(profilingStateSize * Int32Array.BYTES_PER_ELEMENT)
23 - : // $FlowFixMe Flow doesn't know about ArrayBuffer
24 - typeof ArrayBuffer === 'function'
29 + : typeof ArrayBuffer === 'function'
30 ? new ArrayBuffer(profilingStateSize * Int32Array.BYTES_PER_ELEMENT)
31 : null // Don't crash the init path on IE9
32 : null;