blob: 43f7d69374b41bd479455d4babfc72a8cbfe8f95 [file] [log] [blame]
<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>