<html>
<head>
<script>
function log(m) {
    document.getElementById("log").innerHTML += m + "<br>";
}

var multiplyFactor = 2;   // Create this many timers in every timer callback.
var targetLatency = 10000; // Multiply timers until it takes this much to fire all their callbacks.
var timerCount = 1;

function timerCallback(creationTimestamp) {
    --timerCount;

    if (!multiplyFactor) {
        if (timerCount == 0)
            log("No more timers - UI should be responsive now.");
        return;
    }

    // Create more timers. Capture the current time so when callbacks are fired,
    // we can check how long it actually took (latency caused by a long timer queue).
    var timestamp = new Date().getTime();
    for (var i = 0; i < multiplyFactor; ++i) {
        setTimeout(function() { timerCallback(timestamp); }, 0);
        ++timerCount;
    }

    // Once the timer queue gets long enough for the timer firing latency to be over the limit,
    // stop multplying them and keep the number of timers constant.
    if (multiplyFactor > 1 && new Date().getTime() - creationTimestamp > targetLatency)
        multiplyFactor = 1;
}

function runTest() {
    log("Freezing UI...");
    setTimeout(function() { timerCallback(new Date().getTime()); }, 0);
    setTimeout("multiplyFactor = 0; log('Finishing. Started to drain timers.');", 10000);
}

</script>
</head>
<body onload="runTest()">
This test will create enough timers to freeze browser UI. After 10 seconds, it
will start drain the timers so the UI becomes responsive again in a few seconds.
You don't need to kill the browser.<br>If the bug is fixed, there will be no
UI freeze. Refresh the page to repeat the experiment.<br>Try to click at this
button (or browser's menu) while UI is frozen: <button onclick="log('clicked')">Click Me</button> <hr>
<div id="log"></div>
</body>
</html>
