tor-browser

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

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>