summaryrefslogtreecommitdiffstats
path: root/dom/media/test/crashtests/audiocontext-after-unload-1.html
blob: 9b4f1181d229eb2790c68ccd8683ff4f15f52332 (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
27
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<title>Test for bug 1646601</title>
<script>
document.addEventListener('DOMContentLoaded', async () => {
  const frame = document.createElement('iframe');
  document.body.appendChild(frame);
  frame.srcdoc = '<html></html>';
  await new Promise(resolve => frame.onload = resolve);
  const subwin = frame.contentWindow;
  const subcontext = subwin.AudioContext;
  // Construct an AudioContext while the subdocument is fully active to start
  // a MediaTrackGraph.
  new subcontext();
  // Unload the subdocument and wait for completion.
  // This shuts down the MediaTrackGraph.
  subwin.location.reload();
  await new Promise(resolve => frame.onload = resolve);
  // Test that a new AudioContext on the inactive subdocument does not attempt
  // to use the shut-down MediaTrackGraph.
  try { new subcontext() } catch {}
  document.documentElement.removeAttribute('class');
});
</script>
</head>
</html>