tor-browser

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

test_bug743615.html (2454B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <!--
      4 https://bugzilla.mozilla.org/show_bug.cgi?id=743615
      5 -->
      6 <head>
      7  <meta charset="utf-8">
      8  <title>Test for Bug 743615</title>
      9  <script src="/tests/SimpleTest/SimpleTest.js"></script>
     10  <script type="application/javascript" src="utils_bug743615.js"></script>
     11  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
     12 </head>
     13 <body>
     14 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=743615">Mozilla Bug 743615</a>
     15 <p id="display"></p>
     16 <div id="content" style="display: none">
     17 <canvas id="c" width="200" height="200"><canvas>
     18 </div>
     19 <pre id="test">
     20 <script type="application/javascript">
     21 
     22 /** Test for structured cloning ImageData. */
     23 
     24 SimpleTest.waitForExplicitFinish();
     25 window.addEventListener('message', windowMessage);
     26 startTest();
     27 
     28 function startTest() {
     29  // Make an ImageData.
     30  var ctx = document.getElementById('c').getContext('2d');
     31  ctx.fillStyle = 'rgb(';
     32  ctx.fillRect(30, 30, 50, 50);
     33 
     34  // Make a blank ImageData.
     35  var imageData = ctx.createImageData(200, 200);
     36  is(imageData.data.length, imageData.width * imageData.height * 4,
     37   'right size for data');
     38 
     39  // Write some things into it.
     40  var pattern = makePattern(imageData.data.length, 42, 7);
     41  setPattern(imageData, pattern);
     42  ok(checkPattern(imageData, pattern), 'Can read it back before sending');
     43 
     44  // PostMessage it to ourselves.
     45  window.postMessage({ imageData,
     46                       pattern,
     47                       dataRef: imageData.data }, '*');
     48 }
     49 
     50 function windowMessage(evt) {
     51  // Check the pattern we received.
     52  var imageData = evt.data.imageData;
     53  var pattern = evt.data.pattern;
     54  ok(checkPattern(imageData, pattern),
     55     'postMessage from self worked correctly');
     56 
     57  is(imageData.data, evt.data.dataRef,
     58          'Should have backrefs for imagedata buffer');
     59 
     60  // Make a new pattern, and send it to a worker.
     61  pattern = makePattern(imageData.data.length, 4, 3);
     62  setPattern(imageData, pattern);
     63  var worker = new Worker('worker_bug743615.js');
     64  worker.onmessage = workerMessage;
     65  worker.postMessage( {imageData, pattern });
     66 }
     67 
     68 function workerMessage(evt) {
     69  // Relay the results of the worker-side tests.
     70  is(evt.data.statusMessage, 'PASS', evt.data.statusMessage);
     71 
     72  // Test what the worker sent us.
     73  ok(checkPattern(evt.data.imageData, evt.data.pattern),
     74     'postMessage from worker worked correctly');
     75 
     76  // All done.
     77  SimpleTest.finish();
     78 }
     79 
     80 </script>
     81 </pre>
     82 </body>
     83 </html>