3 <script type="text/javascript">
9 var alreadySetAutomationId = false;
11 function testHorizontalBands() {
12 gl.enable(gl.SCISSOR_TEST);
14 gl.clearColor(1, 0, 0, 1);
15 gl.scissor(0, 0, w, h/2);
16 gl.clear(gl.COLOR_BUFFER_BIT);
18 gl.clearColor(0, 1, 0, 1);
19 gl.scissor(0, h/2, w, h/2);
20 gl.clear(gl.COLOR_BUFFER_BIT);
22 gl.disable(gl.SCISSOR_TEST);
25 var array = new Uint8Array(size);
26 gl.readPixels(0, 0, w, h, gl.RGBA, gl.UNSIGNED_BYTE, array);
28 return array[0] == 255 && array[1] == 0 &&
29 array[size - 4] == 0 && array[size - 3] == 255;
32 function testContextLost(e) {
35 setTimeout(function() {
36 extension.restoreContext();
42 function testContextRestored() {
43 gl = canvas.getContext("experimental-webgl");
44 if (!gl || gl.isContextLost()) {
45 // Might just be blocked because of infobar.
48 gl.clearColor(0, 0, 1, 1);
49 gl.clear(gl.COLOR_BUFFER_BIT);
51 var a = new Uint8Array(w * h * 4);
52 gl.readPixels(0, 0, w, h, gl.RGBA, gl.UNSIGNED_BYTE, a);
54 if (!alreadySetAutomationId)
55 window.domAutomationController.setAutomationId(1);
56 if (a[0] == 0 && a[1] == 0 && a[2] == 255)
57 window.domAutomationController.send("SUCCESS");
59 window.domAutomationController.send("FAILED");
62 function contextLostTest(kind)
65 case "WEBGL_lose_context": {
66 extension = gl.getExtension("WEBKIT_WEBGL_lose_context") ||
67 gl.getExtension("WEBGL_lose_context");
68 extension.loseContext();
72 // nothing -- the browser test navigates to about:gpucrash and kills
75 case "kill_after_notification":
76 // The browser test waits for notification from the page that it
77 // has been loaded before navigating to about:gpucrash.
78 window.domAutomationController.setAutomationId(1);
79 alreadySetAutomationId = true;
80 window.domAutomationController.send("LOADED");
86 canvas = document.getElementById("canvas1");
91 canvas.addEventListener("webglcontextlost", testContextLost, false);
92 canvas.addEventListener("webglcontextrestored", testContextRestored, false);
94 gl = canvas.getContext("experimental-webgl");
98 if (!testHorizontalBands())
101 var query = /query=(.*)/.exec(window.location.href);
103 contextLostTest(query[1]);
107 <body onload="onLoad()">
108 <canvas id="canvas1" width="16px" height="32px">