tor-browser

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

test_getUserMedia_basicTabshare.html (2081B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <script type="application/javascript" src="mediaStreamPlayback.js"></script>
      5 </head>
      6 <body>
      7 <pre id="test">
      8 <script type="application/javascript">
      9  createHTML({
     10    title: "getUserMedia Basic Tabshare Test",
     11    bug: "1193075"
     12  });
     13  /**
     14   * Run a test to verify that we can complete a start and stop media playback
     15   * cycle for a tabshare MediaStream on a video HTMLMediaElement.
     16   *
     17   * Additionally, exercise applyConstraints code for tabshare viewport offset.
     18   */
     19  runTest(function () {
     20    var testVideo = createMediaElement('video', 'testVideo');
     21 
     22    return Promise.resolve()
     23      .then(() => pushPrefs(["media.getusermedia.browser.enabled", true]))
     24      .then(() => {
     25        SpecialPowers.wrap(document).notifyUserGestureActivation();
     26        return getUserMedia({
     27          video: { mediaSource: "browser",
     28                   scrollWithPage: true },
     29        });
     30      })
     31      .then(stream => {
     32        var playback = new MediaStreamPlayback(testVideo, stream);
     33        return playback.playMedia(false);
     34      })
     35      .then(() => getUserMedia({
     36        video: {
     37          mediaSource: "browser",
     38          viewportOffsetX: 0,
     39          viewportOffsetY: 0,
     40          viewportWidth: 100,
     41          viewportHeight: 100
     42        },
     43      }))
     44      .then(stream => {
     45        var playback = new MediaStreamPlayback(testVideo, stream);
     46        playback.startMedia(false);
     47        return playback.verifyPlaying()
     48          .then(() => Promise.all([
     49            () => testVideo.srcObject.getVideoTracks()[0].applyConstraints({
     50              mediaSource: "browser",
     51              viewportOffsetX: 10,
     52              viewportOffsetY: 50,
     53              viewportWidth: 90,
     54              viewportHeight: 50
     55            }),
     56            () => listenUntil(testVideo, "resize", () => true)
     57          ]))
     58          .then(() => playback.verifyPlaying()) // still playing
     59          .then(() => playback.stopTracksForStreamInMediaPlayback())
     60          .then(() => playback.detachFromMediaElement());
     61      });
     62  });
     63 
     64 </script>
     65 </pre>
     66 </body>
     67 </html>