tor-browser

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

test_peerConnection_replaceTrack_disabled.html (1811B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4 <script src="pc.js"></script>
      5 <script src="/tests/dom/canvas/test/captureStream_common.js"></script>
      6 </head>
      7 <body>
      8 <pre id="test">
      9 <script>
     10 createHTML({
     11  bug: "1576771",
     12  title: "Replace a disabled video track with an enabled one",
     13  visible: true,
     14 });
     15 
     16 runNetworkTest(() => {
     17  const helper = new CaptureStreamTestHelper2D(240, 160);
     18  const emitter = new VideoFrameEmitter(helper.green, helper.green, 240, 160);
     19  const test = new PeerConnectionTest();
     20  test.setMediaConstraints([{video: true}], []);
     21  test.chain.insertAfter("PC_REMOTE_WAIT_FOR_MEDIA_FLOW", [
     22    function PC_LOCAL_DISABLE_SENDTRACK(test) {
     23      test.pcLocal._pc.getSenders()[0].track.enabled = false;
     24    },
     25    function PC_REMOTE_WAIT_FOR_BLACK(test) {
     26      return helper.pixelMustBecome(
     27        test.pcRemote.remoteMediaElements[0], helper.black, {
     28          threshold: 128,
     29          infoString: "Remote disabled track becomes black",
     30          cancel: wait(10000).then(
     31            () => new Error("Timeout waiting for black"))});
     32    },
     33    function PC_LOCAL_REPLACETRACK_WITH_ENABLED_TRACK(test) {
     34      emitter.start();
     35      test.pcLocal._pc.getSenders()[0].replaceTrack(
     36        emitter.stream().getTracks()[0]);
     37    },
     38  ]);
     39  test.chain.append([
     40    function PC_REMOTE_WAIT_FOR_GREEN(test) {
     41      return helper.pixelMustBecome(
     42        test.pcRemote.remoteMediaElements[0], helper.green, {
     43          threshold: 128,
     44          infoString: "Remote disabled track becomes green",
     45          cancel: wait(10000).then(
     46            () => new Error("Timeout waiting for green"))});
     47    },
     48    function CLEANUP(test) {
     49      emitter.stop();
     50      for (const track of emitter.stream().getTracks()) {
     51        track.stop();
     52      }
     53    },
     54  ]);
     55  return test.run();
     56 });
     57 </script>
     58 </pre>
     59 </body>
     60 </html>