tor-browser

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

test_offscreencanvas_basic_webgl.html (1642B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4 <title>WebGL in OffscreenCanvas</title>
      5 <script src="/tests/SimpleTest/SimpleTest.js"></script>
      6 <link rel="stylesheet" href="/tests/SimpleTest/test.css">
      7 </head>
      8 <body>
      9 <canvas id="c" width="64" height="64"></canvas>
     10 <canvas id="c-ref" width="64" height="64"></canvas>
     11 <script>
     12 
     13 SimpleTest.waitForExplicitFinish();
     14 
     15 function testToDataURL() {
     16  // testing toDataURL
     17  // Fill c-ref with green color.
     18  var c = document.getElementById("c-ref");
     19  var ctx = c.getContext("2d");
     20  ctx.rect(0, 0, 64, 64);
     21  ctx.fillStyle = "#00FF00";
     22  ctx.fill();
     23  var htmlCanvas = document.getElementById("c");
     24  ok(c.toDataURL() == htmlCanvas.toDataURL(), "toDataURL should return a 64x64 green square");
     25 }
     26 
     27 function runTest() {
     28 
     29  var htmlCanvas = document.getElementById("c");
     30  var worker = new Worker("offscreencanvas.js");
     31 
     32  ok(htmlCanvas, "Should have HTML canvas element");
     33  ok(worker, "Web worker successfully created");
     34 
     35  worker.onmessage = function(evt) {
     36    var msg = evt.data || {};
     37    if (msg.type == "test") {
     38      ok(msg.result, msg.name);
     39    }
     40    if (msg.type == "finish") {
     41      testToDataURL();
     42      worker.terminate();
     43      SimpleTest.finish();
     44    }
     45  }
     46 
     47  ok(htmlCanvas.transferControlToOffscreen, "HTMLCanvasElement has transferControlToOffscreen function");
     48 
     49  var offscreenCanvas = htmlCanvas.transferControlToOffscreen();
     50  ok(offscreenCanvas, "Expected transferControlToOffscreen to succeed");
     51 
     52  worker.postMessage({test: 'webgl', canvas: offscreenCanvas}, [offscreenCanvas]);
     53 }
     54 
     55 SpecialPowers.pushPrefEnv({'set': [
     56  ['webgl.force-enabled', true],
     57 ]}, runTest);
     58 
     59 </script>
     60 </body>
     61 </html>