| <!doctype html> |
| <html> |
| <head> |
| <meta charset="utf-8"> |
| <title>Setting remote description and track event</title> |
| <script src="../resources/testharness.js"></script> |
| <script src="../resources/testharnessreport.js"></script> |
| </head> |
| <body> |
| <script> |
| |
| promise_test(async (test) => { |
| const localStream = await navigator.mediaDevices.getUserMedia({video:true }); |
| |
| const pc1 = new RTCPeerConnection(); |
| const pc2 = new RTCPeerConnection(); |
| |
| let orderingOfEvents = "" |
| |
| pc1.addTrack(localStream.getVideoTracks()[0], localStream); |
| pc2.ontrack = () => { orderingOfEvents += "track;" }; |
| |
| const offer = await pc1.createOffer(); |
| await pc1.setLocalDescription(offer); |
| orderingOfEvents += "before;"; |
| await pc2.setRemoteDescription(offer); |
| orderingOfEvents += "after;"; |
| |
| assert_equals(orderingOfEvents, "before;track;after;"); |
| }, "Track event is emitted before setRemoteDescription resolves"); |
| </script> |
| </body> |
| </html> |