tor-browser

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

webgl-hanging-fb-test.html (1332B)


      1 <!DOCTYPE html>
      2 <html class="reftest-wait">
      3 <head>
      4 <meta charset="UTF-8">
      5 
      6 <script type="text/javascript" src="webgl-utils.js"></script>
      7 <script type="text/javascript">
      8 /* Hanging Framebuffer Test
      9 *
     10 * Clear the canvas to green, but create and bind a new framebuffer
     11 * before returning. This will fail if we blindly read from the bound
     12 * framebuffer, instead of binding to the screen and reading from that.
     13 *
     14 * How failure looks isn't well defined, since this is an empty framebuffer,
     15 * thus is incomplete, and should cause errors if it's read from.
     16 */
     17 
     18 "use strict";
     19 
     20 function renderGL(gl) {
     21  gl.clearColor(0.0, 1.0, 0.0, 1.0);
     22  gl.clear(gl.COLOR_BUFFER_BIT);
     23 
     24  var fb = gl.createFramebuffer();
     25  gl.bindFramebuffer(gl.FRAMEBUFFER, fb);
     26 
     27  gl.finish();
     28 }
     29 
     30 function renderFailure(canvas) {
     31  // This will also trigger RAF for us.
     32  var context = canvas.getContext("2d");
     33  context.fillText('WebGL failed.', 64, 64);
     34 }
     35 
     36 function runTest() {
     37  var canvas = document.getElementById("canvas");
     38  var gl = initGL(canvas);
     39 
     40  if (gl)
     41    renderGL(gl);
     42  else
     43    renderFailure(canvas);
     44 
     45  waitForComposite(testComplete);
     46 }
     47 
     48 function testComplete() {
     49  document.documentElement.removeAttribute("class");
     50 }
     51 </script>
     52 </head>
     53 
     54 <body onload="rAF(runTest);">
     55  <canvas id="canvas" width="256" height="256"></canvas>
     56 </body>
     57 
     58 </html>