<!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>
