tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_peerConnection_addSecondVideoStream.html (1792B)


      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: add second video stream"
     13  });
     14 
     15  runNetworkTest(async function (options) {
     16    // Use fake video here since the native fake device on linux doesn't
     17    // change color as needed by checkVideoPlaying() below.
     18    await pushPrefs(
     19      ['media.video_loopback_dev', ''],
     20      ['media.navigator.streams.fake', true]);
     21    // [TODO] re-enable HW decoder after bug 1526207 is fixed.
     22    if (navigator.userAgent.includes("Android")) {
     23      await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false],
     24                      ["media.webrtc.hw.h264.enabled", false]);
     25    }
     26 
     27    const test = new PeerConnectionTest(options);
     28    addRenegotiation(test.chain,
     29      [
     30        function PC_LOCAL_ADD_SECOND_STREAM(test) {
     31          test.setMediaConstraints([{video: true}, {video: true}],
     32                                   [{video: true}]);
     33          return test.pcLocal.getAllUserMediaAndAddStreams([{video: true}]);
     34        },
     35      ],
     36      [
     37        function PC_REMOTE_CHECK_VIDEO_FLOW(test) {
     38          const h = new VideoStreamHelper();
     39          is(test.pcRemote.remoteMediaElements.length, 2,
     40             "Should have two remote media elements after renegotiation");
     41          return Promise.all(test.pcRemote.remoteMediaElements.map(video =>
     42            h.checkVideoPlaying(video)));
     43        },
     44      ]
     45    );
     46 
     47    test.setMediaConstraints([{video: true, fake: true}], [{video: true}]);
     48    return test.run();
     49  });
     50 </script>
     51 </pre>
     52 </body>
     53 </html>