blob: e2caebb141c5f329eddf17a1a3d3ef784997e5b5 [file] [log] [blame]
<html>
<head>
<script>
function log(msg) {
var element = document.createElement("div");
element.textContent = msg;
document.body.appendChild(element);
document.body.appendChild(document.createElement("br"));
}
var count = 0;
function fastTimeoutHandler() {
++count;
setTimeout(fastTimeoutHandler, 1);
}
function slowTimeoutHandler() {
// Note: the count threshold is tied somewhat to the
// maxTimerNestingLevel in DOMTimer.cpp.
if (count > 10)
log("PASS");
else
log("FAIL -- timeout ran " + count + " times");
testRunner.notifyDone();
}
function runTest() {
if (!window.testRunner) {
log("This test requires the LayoutTestController");
return;
}
testRunner.dumpAsText();
testRunner.waitUntilDone();
// Make timers run no more often than once every two seconds.
internals.settings.setMinimumTimerInterval(2.0);
setTimeout(slowTimeoutHandler, 1000);
setTimeout(fastTimeoutHandler, 1);
// Allow timers to run quickly again.
// If this doesn't cause timers to get re-evaluated immediately,
// the fast timeout handler won't get called for up to two seconds,
// which would lead to poor responsiveness.
internals.settings.setMinimumTimerInterval(0.004);
}
</script>
</head>
<body onload="runTest()">
</body>
</html>