• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<html>
2<head>
3<script type="text/javascript">
4var gl;
5// For some reason, when running this test in automated fashion, it
6// triggers the bug reliably if the first frame with back-to-back
7// events happens a certain number of frames into the test execution.
8var numFrames = 202;
9var intensity = 255;
10var contextWasLost = false;
11
12function contextLostHandler(e) {
13  contextWasLost = true;
14}
15
16function draw() {
17  if (--intensity == 0) {
18    intensity = 255;
19  }
20
21  gl.clearColor(intensity / 255.0, 0, 0, 1);
22  gl.clear(gl.COLOR_BUFFER_BIT);
23
24  if (numFrames % 2 == 0) {
25    // Toggle the state of the drop-down every other frame. Every now
26    // and then, dispatch two events back to back. This really seems to
27    // trigger the bug.
28    var maxIteration = 1;
29    if (numFrames % 6 == 0) {
30      maxIteration = 2;
31    }
32    for (var ii = 0; ii < maxIteration; ++ii) {
33      var e = document.createEvent('MouseEvent');
34      e.initMouseEvent('mousedown', true, true, window);
35      var s = document.getElementById('dropdown');
36      s.dispatchEvent(e);
37    }
38  }
39
40  if (--numFrames > 0) {
41    requestAnimationFrame(draw);
42  } else {
43    if (contextWasLost) {
44      window.domAutomationController.send("FAILED");
45    } else {
46      window.domAutomationController.send("SUCCESS");
47    }
48  }
49}
50
51function onLoad() {
52  window.domAutomationController.send("LOADED");
53
54  var canvas = document.getElementById("canvas1");
55  if (!canvas)
56    return;
57  canvas.addEventListener("webglcontextlost", contextLostHandler, false);
58
59  gl = canvas.getContext("webgl");
60  if (!gl)
61    return;
62
63  requestAnimationFrame(draw);
64}
65</script>
66</head>
67<body onload="onLoad()">
68<select id="dropdown">
69  <option value="option1">option1</option>
70  <option value="option2">option2</option>
71  <option value="option3">option3</option>
72  <option value="option4">option4</option>
73</select>
74<canvas id="canvas1" width="32px" height="32px">
75</canvas>
76</body>
77</html>
78