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