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">