tor-browser

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

MediaRecorder-disabled-tracks.https.html (2004B)


      1 <!doctype html>
      2 <html>
      3 <head>
      4  <title>MediaRecorder Disabled Tracks</title>
      5  <link rel="help" href="https://w3c.github.io/mediacapture-record/MediaRecorder.html#mediarecorder">
      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 <script>
     13 
     14  // This test verifies that MediaStream with disabled tracks can be correctly
     15  // recorded. See crbug.com/878255 for more context.
     16 
     17  [ ["video-only",  {video: true,  audio: false}],
     18    ["audio-only",  {video: false, audio: true}],
     19    ["audio-video", {video: true,  audio: true}]]
     20  .forEach( function(args) {
     21    async_test(function(test) {
     22      let recorder;
     23      const recorderOnDataAvailable = test.step_func(function(event) {
     24        if (recorder.state != "recording")
     25          return;
     26 
     27        recorder.onstop = recorderOnStopExpected;
     28        recorder.stop();
     29      });
     30 
     31      const recorderOnStopExpected = test.step_func_done();
     32      const recorderOnStopUnexpected = test.unreached_func('Recording stopped.');
     33      const recorderOnError = test.unreached_func('Recording error.');
     34 
     35      const gotStream = test.step_func(function(stream) {
     36        for (track of stream.getTracks())
     37          track.enabled = false;
     38 
     39        recorder = new MediaRecorder(stream);
     40 
     41        assert_equals(recorder.state, "inactive");
     42        recorder.ondataavailable = recorderOnDataAvailable;
     43        recorder.onstop = recorderOnStopUnexpected;
     44        recorder.onerror = recorderOnError;
     45        recorder.start();
     46 
     47        assert_equals(recorder.state, "recording");
     48        recorder.requestData();
     49      });
     50 
     51      const onError = test.unreached_func('Error creating MediaStream.');
     52      setMediaPermission().then(() => navigator.mediaDevices.getUserMedia(args[1])).then(gotStream, onError);
     53    }, args[0]);
     54  });
     55 
     56 </script>