| Index: content/test/data/gpu/webgl_with_select_element.html
|
| diff --git a/content/test/data/gpu/webgl_with_select_element.html b/content/test/data/gpu/webgl_with_select_element.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..43f7d69374b41bd479455d4babfc72a8cbfe8f95
|
| --- /dev/null
|
| +++ b/content/test/data/gpu/webgl_with_select_element.html
|
| @@ -0,0 +1,77 @@
|
| +<html>
|
| +<head>
|
| +<script type="text/javascript">
|
| +var gl;
|
| +// For some reason, when running this test in automated fashion, it
|
| +// triggers the bug reliably if the first frame with back-to-back
|
| +// events happens a certain number of frames into the test execution.
|
| +var numFrames = 202;
|
| +var intensity = 255;
|
| +var contextWasLost = false;
|
| +
|
| +function contextLostHandler(e) {
|
| + contextWasLost = true;
|
| +}
|
| +
|
| +function draw() {
|
| + if (--intensity == 0) {
|
| + intensity = 255;
|
| + }
|
| +
|
| + gl.clearColor(intensity / 255.0, 0, 0, 1);
|
| + gl.clear(gl.COLOR_BUFFER_BIT);
|
| +
|
| + if (numFrames % 2 == 0) {
|
| + // Toggle the state of the drop-down every other frame. Every now
|
| + // and then, dispatch two events back to back. This really seems to
|
| + // trigger the bug.
|
| + var maxIteration = 1;
|
| + if (numFrames % 6 == 0) {
|
| + maxIteration = 2;
|
| + }
|
| + for (var ii = 0; ii < maxIteration; ++ii) {
|
| + var e = document.createEvent('MouseEvent');
|
| + e.initMouseEvent('mousedown', true, true, window);
|
| + var s = document.getElementById('dropdown');
|
| + s.dispatchEvent(e);
|
| + }
|
| + }
|
| +
|
| + if (--numFrames > 0) {
|
| + requestAnimationFrame(draw);
|
| + } else {
|
| + if (contextWasLost) {
|
| + window.domAutomationController.send("FAILED");
|
| + } else {
|
| + window.domAutomationController.send("SUCCESS");
|
| + }
|
| + }
|
| +}
|
| +
|
| +function onLoad() {
|
| + window.domAutomationController.send("LOADED");
|
| +
|
| + var canvas = document.getElementById("canvas1");
|
| + if (!canvas)
|
| + return;
|
| + canvas.addEventListener("webglcontextlost", contextLostHandler, false);
|
| +
|
| + gl = canvas.getContext("webgl");
|
| + if (!gl)
|
| + return;
|
| +
|
| + requestAnimationFrame(draw);
|
| +}
|
| +</script>
|
| +</head>
|
| +<body onload="onLoad()">
|
| +<select id="dropdown">
|
| + <option value="option1">option1</option>
|
| + <option value="option2">option2</option>
|
| + <option value="option3">option3</option>
|
| + <option value="option4">option4</option>
|
| +</select>
|
| +<canvas id="canvas1" width="32px" height="32px">
|
| +</canvas>
|
| +</body>
|
| +</html>
|
|
|