tor-browser

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

test_eme_canvas_blocked.html (1666B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <title>Test Encrypted Media Extensions</title>
      5  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      6  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
      7  <script type="text/javascript" src="manifest.js"></script>
      8  <script type="text/javascript" src="eme.js"></script>
      9 </head>
     10 <body>
     11 <pre id="test">
     12 <script class="testbody" type="text/javascript">
     13 var manager = new MediaTestManager();
     14 
     15 function startTest(test, token) {
     16  manager.started(token);
     17 
     18  let v = document.createElement("video");
     19  v.preload = "auto"; // Required due to "canplay" not firing for MSE unless we do this.
     20 
     21  var p1 = new EMEPromise();
     22  v.addEventListener("loadeddata", function(ev) {
     23    var video = ev.target;
     24    var canvas = document.createElement("canvas");
     25    canvas.width = video.videoWidth;
     26    canvas.height = video.videoHeight;
     27    document.body.appendChild(canvas);
     28    var ctx = canvas.getContext("2d");
     29    ctx.drawImage(video, 0, 0);
     30    if (canvas.width || canvas.height) {
     31      let pixels = ctx.getImageData(0, 0, canvas.width, canvas.height).data;
     32      for (let byte of pixels) {
     33        if (byte != 0) {
     34          ok(false, "Should not draw EME video to canvas");
     35          // We don't need a log for each pixel, break after 1st failure.
     36          break;
     37        }
     38      }
     39    }
     40    p1.resolve();
     41  });
     42 
     43  let p2 = SetupEME(v, test, token);
     44 
     45  Promise.all([p1.promise, p2])
     46    .catch(reason => ok(false, reason))
     47    .then(() => {
     48      CleanUpMedia(v);
     49      manager.finished(token);
     50    });
     51 }
     52 
     53 SimpleTest.waitForExplicitFinish();
     54 manager.runTests(gEMETests, startTest);
     55 </script>
     56 </pre>
     57 </body>
     58 </html>