| <html> |
| <head> |
| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| <script src="../../resources/gc.js"></script> |
| </head> |
| <body> |
| <script> |
| promise_test(async t => { |
| // In case other tests that leak peerconnections have run before, |
| // we record the number of peerconnections at start. Promise_test |
| // is not supposed to execute in parallel with other tests. |
| const basePeerConnectionCount = internals.peerConnectionCount(); |
| let iframe = document.createElement("iframe"); |
| document.body.appendChild( iframe ); |
| let iframe_pc = new iframe.contentWindow.RTCPeerConnection(); |
| assert_equals(iframe_pc.signalingState, 'stable'); |
| iframe.remove(); |
| assert_equals(iframe_pc.signalingState, 'closed'); |
| assert_equals(internals.peerConnectionCount(), basePeerConnectionCount + 1); |
| iframe_pc = null; |
| await asyncGC(); |
| assert_equals(internals.peerConnectionCount(), basePeerConnectionCount); |
| }, 'PeerConnection in iframe is closed and garbage collected'); |
| </script> |
| </body> |
| </html> |