tor-browser

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

ImageCapture-grabFrame.https.html (1497B)


      1 <!DOCTYPE html>
      2 <script src="/resources/testharness.js"></script>
      3 <script src="/resources/testharnessreport.js"></script>
      4 <body>
      5 <canvas id='canvas0' width=10 height=10></canvas>
      6 <canvas id='canvas1' width=10 height=10></canvas>
      7 </body>
      8 <script>
      9 
     10 // This test verifies that ImageCapture can grabFrame()s.
     11 
     12 var test = async_test(function() {
     13  var canvas0 = document.getElementById('canvas0');
     14  var context0 = canvas0.getContext("2d");
     15  context0.fillStyle = "red";
     16  context0.fillRect(0, 0, 10, 10);
     17 
     18  var stream = canvas0.captureStream();
     19 
     20  var capturer = new ImageCapture(stream.getVideoTracks()[0]);
     21 
     22  capturer.grabFrame()
     23    .then(bitmap => {
     24      assert_equals(canvas0.width, bitmap.width);
     25      assert_equals(canvas0.height, bitmap.height);
     26 
     27      var context1 = document.getElementById('canvas1').getContext("2d");
     28      context1.drawImage(bitmap, 0, 0);
     29 
     30      var imageData0 = context0.getImageData(0, 0, 10, 10);
     31      var imageData1 = context1.getImageData(0, 0, 10, 10);
     32 
     33      assert_equals(imageData0.width, imageData1.width);
     34      assert_equals(imageData0.height, imageData1.height);
     35      assert_equals(imageData0.data.length, imageData1.data.length);
     36      for (var i = 0; i < imageData0.data.length; i++)
     37        assert_approx_equals(imageData0.data[i], imageData1.data[i], 5);
     38 
     39      this.done();
     40    })
     41    .catch(error => {
     42      assert_unreached('Error during grabFrame(): '+ error);
     43    });
     44 }, 'exercises the ImageCapture API creation and grabFrame().');
     45 
     46 </script>