tor-browser

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

test_peerConnection_replaceTrack_camera.html (1557B)


      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 
     10 <video id="video" width="160" height="120" autoplay></video>
     11 
     12 <script type="application/javascript">
     13  createHTML({
     14    bug: "1709481",
     15    title: "replaceTrack (null -> camera) test",
     16    visible: true
     17  });
     18 
     19  runNetworkTest(async () => {
     20    // Make sure we use the fake video device, and not loopback
     21    await pushPrefs(
     22      ['media.video_loopback_dev', ''],
     23      ['media.navigator.streams.fake', true]);
     24    const pc1 = new RTCPeerConnection(), pc2 = new RTCPeerConnection();
     25    pc1.onicecandidate = e => pc2.addIceCandidate(e.candidate);
     26    pc2.onicecandidate = e => pc1.addIceCandidate(e.candidate);
     27    pc2.ontrack = ({track}) => video.srcObject = new MediaStream([track]);
     28    pc1.addTransceiver("audio");
     29    const tc1 = pc1.addTransceiver("video");
     30    const stream = await navigator.mediaDevices.getUserMedia({video: true});
     31    const [track] = stream.getVideoTracks();
     32    await pc1.setLocalDescription();
     33    await pc2.setRemoteDescription(pc1.localDescription);
     34    await pc2.setLocalDescription();
     35    await pc1.setRemoteDescription(pc2.localDescription);
     36    await wait(100);
     37    await tc1.sender.replaceTrack(track);
     38    const h = new VideoStreamHelper();
     39    await h.checkVideoPlaying(video);
     40    pc1.close();
     41    pc2.close();
     42    await SpecialPowers.popPrefEnv();
     43  });
     44 
     45 </script>
     46 </pre>
     47 </body>
     48 </html>