summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/scheduler/tentative/yield/yield-then-detach.html
blob: 835f9e7a62d981bb0565572e22659f1f4d3e669f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<!doctype html>
<title>Scheduler: yield in Detached Scheduler</title>
<link rel="help" href="https://github.com/WICG/scheduling-apis">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>

<script>
'use strict';

promise_test(async t => {
  await new Promise(resolve => window.onload = resolve);

  const frame = document.body.appendChild(document.createElement('iframe'));
  const iframeDOMException = frame.contentWindow.DOMException;
  const iframeScheduler = frame.contentWindow.scheduler;

  let didRun = false;
  iframeScheduler.yield().then(() => { didRun = true; });

  document.body.removeChild(frame);
  await promise_rejects_dom(t, 'NotSupportedError', iframeDOMException, iframeScheduler.yield());
  await new Promise(resolve => t.step_timeout(resolve, 10));
  assert_false(didRun, 'The continuation should not have run.');
}, 'Test scheduler.yield() from an iframe that is removed');

</script>