test_peerConnection_removeVideoTrack.html (2208B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <script type="application/javascript" src="pc.js"></script> 5 <script type="application/javascript" src="/tests/dom/canvas/test/captureStream_common.js"></script> 6 </head> 7 <body> 8 <pre id="test"> 9 <script type="application/javascript"> 10 createHTML({ 11 bug: "1017888", 12 title: "Renegotiation: remove video track" 13 }); 14 15 runNetworkTest(async (options) => { 16 // [TODO] re-enable HW decoder after bug 1526207 is fixed. 17 if (navigator.userAgent.includes("Android")) { 18 await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false], 19 ["media.webrtc.hw.h264.enabled", false]); 20 } 21 22 const test = new PeerConnectionTest(options); 23 let receivedTrack, element; 24 addRenegotiation(test.chain, 25 [ 26 function PC_REMOTE_SETUP_HELPER(test) { 27 is(test.pcRemote._pc.getReceivers().length, 1, 28 "pcRemote should have one receiver before renegotiation"); 29 30 receivedTrack = test.pcRemote._pc.getReceivers()[0].track; 31 is(receivedTrack.readyState, "live", 32 "The received track should be live"); 33 34 element = createMediaElement("video", "pcRemoteReceivedVideo"); 35 element.srcObject = new MediaStream([receivedTrack]); 36 return haveEvent(element, "loadeddata"); 37 }, 38 function PC_LOCAL_REMOVE_VIDEO_TRACK(test) { 39 test.setOfferOptions({ offerToReceiveVideo: true }); 40 test.setMediaConstraints([], [{video: true}]); 41 return test.pcLocal.removeSender(0); 42 }, 43 ], 44 [ 45 function PC_REMOTE_CHECK_FLOW_STOPPED(test) { 46 is(test.pcRemote._pc.getTransceivers().length, 1, 47 "pcRemote should have one transceiver"); 48 const track = test.pcRemote._pc.getTransceivers()[0].receiver.track; 49 50 const vAdded = test.pcRemote.remoteMediaElements.find( 51 elem => elem.id.includes(track.id)); 52 const helper = new VideoStreamHelper(); 53 return helper.checkVideoPaused(vAdded, 10, 10, 16, 5000); 54 }, 55 ] 56 ); 57 58 test.setMediaConstraints([{video: true}], [{video: true}]); 59 await test.run(); 60 }); 61 </script> 62 </pre> 63 </body> 64 </html>