%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
const run_test = isolated => { // Multiplier to convert the clamped timestamps to microseconds. const multiplier = 1000; const windowOrigin = performance.timeOrigin; // Clamp to at least 5 microseconds in isolated contexts and at least 100 in // non-isolated ones. const resolution = isolated ? 5 : 100; const create_worker = () => { return new Promise(resolve => { const workerScript = 'postMessage({timeOrigin: performance.timeOrigin})'; const blob = new Blob([workerScript]); const worker = new Worker(URL.createObjectURL(blob)); worker.addEventListener('message', event => { resolve(event.data.timeOrigin); }); }); }; promise_test(async t => { assert_equals(self.crossOriginIsolated, isolated, "crossOriginIsolated is properly set"); let prev = windowOrigin; let current; for (let i = 1; i < 100; ++i) { current = await create_worker(); assert_true(current === prev || current - prev > resolution / 1000); prev = current; } }, 'timeOrigins are clamped.'); };