tor-browser

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

MediaRecorder-blob-timecode.https.html (1491B)


      1 <!doctype html>
      2 <html>
      3 <head>
      4  <title>MediaRecorder Blob event timecode</title>
      5  <link rel="help" href="https://w3c.github.io/mediacapture-record/MediaRecorder.html#dom-mediarecorder-start">
      6  <script src="/resources/testharness.js"></script>
      7  <script src="/resources/testharnessreport.js"></script>
      8  <script src="/resources/testdriver.js"></script>
      9  <script src="/resources/testdriver-vendor.js"></script>
     10  <script src="../mediacapture-streams/permission-helper.js"></script>
     11 </head>
     12 <body>
     13 
     14 <script>
     15  promise_test(async t => {
     16    await setMediaPermission();
     17    const stream = await navigator.mediaDevices.getUserMedia({video:true, audio:true});
     18    t.add_cleanup(() => stream.getTracks().forEach(tr => tr.stop()));
     19    const recorder = new MediaRecorder(stream);
     20 
     21    // Sets 0 timeslice will call the first chunk to be triggered immediately.
     22    recorder.start(0);
     23    let combinedSize = 0;
     24    let previous_timecode = 0;
     25    while (combinedSize < 2000) {
     26      const {data, timecode} = await new Promise(r => recorder.ondataavailable = r);
     27      if (combinedSize === 0) {
     28        assert_equals(timecode, 0, "first chunk timecode must be 0");
     29      } else {
     30        assert_greater_than(timecode, previous_timecode, "timecode must increase monotonically");
     31      }
     32      previous_timecode = timecode;
     33      combinedSize += data.size;
     34    }
     35    recorder.stop();
     36  }, "MediaRecorder Blob timecode for first chunk must be 0 and monotonically increasing");
     37 
     38 </script>
     39 </body>
     40 </html>