| <body> |
| <p>Test Timeouts (setTimeout, setInterval, clearTimeout, clearInterval).</p> |
| <div id=result></div> |
| <script> |
| var logIsFrozen = false; |
| function log(message) |
| { |
| if (!logIsFrozen) |
| document.getElementById("result").innerHTML += message + "<br>"; |
| } |
| |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| testRunner.waitUntilDone(); |
| } |
| |
| var worker = new Worker('resources/worker-timeout.js'); |
| |
| worker.onmessage = function(evt) { |
| log(evt.data); |
| if (evt.data == "DONE") { |
| // This flag is needed because in Chromium port, the notifyDone() does not immediately snapshots |
| // the result and the still-firing timer in the worker may cause more messages to be logged before |
| // actual termination of the test. However one objective of the test is to keep active interval |
| // while the worker gets destroyed, so we freeze log rather then stop the interval from firing. |
| // See https://bugs.webkit.org/show_bug.cgi?id=31452 for more info. |
| logIsFrozen = true; |
| if (window.testRunner) |
| testRunner.notifyDone(); |
| } |
| } |
| </script> |
| </body> |
| </html> |