chromium/third_party/blink/web_tests/fast/peerconnection/RTCPeerConnection-reload-interesting-usage.html

<!DOCTYPE html>
<html>
<head>
<title>RTCPeerConnection-crash-tests</title>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
</head>
<body>
<script>
'use strict;'

promise_test(async t => {
  // Note that this test uses location.reload, so there can't be more than
  // one test per file with this simple reload-detection scheme.
  if (sessionStorage.getItem('test-state') === 'reloading') {
    return; // success
  }
  sessionStorage.setItem('test-state', 'starting');
  // Set conditions that will cause OnInterestingUsage to be called.
  const pc = new RTCPeerConnection();
  pc.addTransceiver('audio');
  const offer = await pc.createOffer();
  const hasCandidate = new Promise(resolve => {
    pc.onicecandidate = (e) => {
      resolve();
    }
  });
  await pc.setLocalDescription(offer);
  await hasCandidate;

  const pc2 = new RTCPeerConnection();
  sessionStorage.setItem('test-state', 'reloading');
  location.reload();
}, 'Reload with active PC with interesting usage does not crash');

</script>
</body>
</html>