tor-browser

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

parallel-capture-requests.https.html (2300B)


      1 <!doctype html>
      2 <html>
      3 <head>
      4 <title>Parallel capture requests</title>
      5 </head>
      6 <body>
      7 <button id="button">User gesture</button>
      8 <script src="/resources/testharness.js"></script>
      9 <script src="/resources/testharnessreport.js"></script>
     10 <script src="/resources/testdriver.js"></script>
     11 <script src="/resources/testdriver-vendor.js"></script>
     12 <script>
     13 async function getDisplayMedia(constraints) {
     14  const p = new Promise(r => button.onclick = r);
     15  await test_driver.click(button);
     16  await p;
     17  return navigator.mediaDevices.getDisplayMedia(constraints);
     18 }
     19 
     20 promise_test(function() {
     21  const getUserMediaPromise =
     22        navigator.mediaDevices.getUserMedia({audio: true, video:true});
     23  const getDisplayMediaPromise =
     24        getDisplayMedia({video: true, audio: true});
     25  return Promise.all([getUserMediaPromise, getDisplayMediaPromise])
     26      .then(function(s) {
     27        assert_greater_than_equal(s[0].getTracks().length, 1);
     28        assert_less_than_equal(s[0].getTracks().length, 2);
     29        assert_equals(s[0].getVideoTracks().length, 1);
     30        assert_less_than_equal(s[0].getAudioTracks().length, 1);
     31        assert_greater_than_equal(s[1].getTracks().length, 1);
     32        assert_less_than_equal(s[1].getTracks().length, 2);
     33        assert_equals(s[1].getVideoTracks().length, 1);
     34        assert_less_than_equal(s[1].getAudioTracks().length, 1);
     35      });
     36 }, 'getDisplayMedia() and parallel getUserMedia()');
     37 
     38 promise_test(function() {
     39  const getDisplayMediaPromise =
     40        getDisplayMedia({video: true, audio: true});
     41  const getUserMediaPromise =
     42        navigator.mediaDevices.getUserMedia({audio: true, video:true});
     43  return Promise.all([getDisplayMediaPromise, getUserMediaPromise])
     44      .then(function(s) {
     45        assert_greater_than_equal(s[0].getTracks().length, 1);
     46        assert_less_than_equal(s[0].getTracks().length, 2);
     47        assert_equals(s[0].getVideoTracks().length, 1);
     48        assert_less_than_equal(s[0].getAudioTracks().length, 1);
     49        assert_greater_than_equal(s[1].getTracks().length, 1);
     50        assert_less_than_equal(s[1].getTracks().length, 2);
     51        assert_equals(s[1].getVideoTracks().length, 1);
     52        assert_less_than_equal(s[1].getAudioTracks().length, 1);
     53      });
     54 }, 'getUserMedia() and parallel getDisplayMedia()');
     55 </script>
     56 </body>
     57 </html>