blob: aaf6a4f38c238269c68f40d422fdfe969e610ab0 [file] [log] [blame]
<!DOCTYPE html>
<body>
<script src="../../resources/js-test-pre.js"></script>
<div style="position: relative; width: 1600px; height: 2400px; background-color: green;">
<div style="position:absolute; left: 600px; top: 800px;">
<div id="testElement">TEST</div>
</div>
</div>
<script>
description("Tests that a repeating timer changing the height of an element outside viewport does not get throttled.");
jsTestIsAsync = true;
var testElement = document.getElementById('testElement');
var iterationCount = 0;
var timeoutId;
function timerCallback()
{
++iterationCount;
// Change the height of the element while it is outside viewport.
testElement.style["height"] = "" + iterationCount;
// 5 iterations should be sufficient to throttle the timer.
if (iterationCount == 5) {
// Do not use shouldBeTrue() because it would cause a DOM tree mutation
// and unthrottle the timer.
shouldBeFalse("internals.isTimerThrottled(timeoutId)");
clearInterval(timeoutId);
finishJSTest();
}
}
timeoutId = setInterval(timerCallback, 10);
shouldBeFalse("internals.isTimerThrottled(timeoutId)");
</script>
<script src="../../resources/js-test-post.js"></script>
</body>