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