tor-browser

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

canvas.2d.offscreen.worker.lang.html (2806B)


      1 <!doctype HTML>
      2 <html lang="en-US" class="reftest-wait">
      3  <meta charset="utf-8">
      4  <title>HTML5 Canvas Test:  The lang attribute is respected in offscreen worker canvas</title>
      5  <link rel="match" href="canvas.2d.offscreen.worker.lang-ref.html" />
      6  <link rel="author" href="mailto:schenney@chromium.org"/>
      7  <link rel="help" href="https://html.spec.whatwg.org/multipage/canvas.html#text-styles"/>
      8  <meta name="assert" content="An offscreen canvas in a worker respects the lang text attribute." />
      9  <script src="/common/reftest-wait.js"></script>
     10  <style>
     11    #canvas-tr {
     12      position: absolute;
     13      top: 10px;
     14      left: 10px;
     15    }
     16    #canvas-en {
     17      position: absolute;
     18      top: 120px;
     19      left: 10px;
     20    }
     21  </style>
     22  <script type="text/javascript">
     23    function createWorker(language) {
     24      const placeholder_canvas = document.createElement('canvas');
     25      placeholder_canvas.setAttribute('width', '300');
     26      placeholder_canvas.setAttribute('height', '100');
     27      const offscreen = placeholder_canvas.transferControlToOffscreen();
     28 
     29      const worker = new Worker('text-lang-worker-' + language + '.js');
     30      worker.postMessage({canvas: offscreen}, [offscreen]);
     31 
     32      return placeholder_canvas;
     33    }
     34 
     35    function runTest() {
     36      const placeholder_canvas_tr = createWorker('tr');
     37      const canvas_tr = document.getElementById('canvas-tr');
     38      const ctx_tr = canvas_tr.getContext('2d', {willReadFrequently: true});
     39      function checkFirstResult() {
     40        // Wait until frame propagates.
     41        ctx_tr.drawImage(placeholder_canvas_tr, 0, 0);
     42        const pixel_tr = ctx_tr.getImageData(0, 0, 1, 1).data;
     43 
     44        if (pixel_tr[3] == 0) {
     45          // Results not available, wait longer.
     46          requestAnimationFrame(checkFirstResult);
     47        } else {
     48          const placeholder_canvas_en = createWorker('en');
     49          const canvas_en = document.getElementById('canvas-en');
     50          const ctx_en = canvas_en.getContext('2d', {willReadFrequently: true});
     51          function checkSecondResult() {
     52            ctx_en.drawImage(placeholder_canvas_en, 0, 0);
     53            const pixel_en = ctx_en.getImageData(0, 0, 1, 1).data;
     54 
     55            if (pixel_en[3] == 0) {
     56              // Results not available, wait longer.
     57              requestAnimationFrame(checkSecondResult);
     58            } else {
     59              takeScreenshot();
     60            }
     61          }
     62          requestAnimationFrame(checkSecondResult);
     63        }
     64      }
     65      requestAnimationFrame(checkFirstResult);
     66    }
     67  </script>
     68  <body onload="runTest()">
     69    <canvas id="canvas-tr" width="300" height="100">
     70      Browser does not support HTML5 Canvas.
     71    </canvas>
     72    <canvas id="canvas-en" width="300" height="100">
     73      Browser does not support HTML5 Canvas.
     74    </canvas>
     75  </body>
     76 </html>