test_peerConnection_disabledVideoPreNegotiation.html (1482B)
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: "1570673", 12 title: "Sending an initially disabled video track should be playable remotely", 13 visible: true, 14 }); 15 16 var test; 17 runNetworkTest(async (options) => { 18 // [TODO] re-enable HW decoder after bug 1526207 is fixed. 19 if (navigator.userAgent.includes("Android")) { 20 await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false], 21 ["media.webrtc.hw.h264.enabled", false]); 22 } 23 24 test = new PeerConnectionTest(options); 25 test.setMediaConstraints([{video: true}], []); 26 test.chain.insertAfter("PC_LOCAL_GUM", function PC_LOCAL_DISABLE_VIDEO() { 27 for (const {track} of test.pcLocal._pc.getSenders()) { 28 if (track.kind == "video") { 29 track.enabled = false; 30 } 31 } 32 }); 33 test.chain.append(async function PC_REMOTE_RECEIVING_BLACK() { 34 const v = test.pcRemote.remoteMediaElements[0]; 35 is(v.readyState, v.HAVE_ENOUGH_DATA, "video element should be playing"); 36 const h = new CaptureStreamTestHelper2D(); 37 await h.waitForPixel(test.pcRemote.remoteMediaElements[0], 38 px => h.isPixel(px, h.black, 128)); 39 }); 40 await test.run(); 41 }); 42 </script> 43 </pre> 44 </body> 45 </html>