blob: 21d190caa296304e1891113638ff576579211ea8 [file] [log] [blame]
<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
<script>
description('Tests that DOM timers on hidden pages that have not reached max nesting level are not throttled.');
jsTestIsAsync = true;
let timerCount = 0;
let isPageVisible = true;
const timeoutInterval = 10;
let timerHandle = 0;
const maxNestingLevel = 5;
function testTimer()
{
timerCount++;
timerHandle = setTimeout(testTimer, timeoutInterval);
shouldBeFalse("internals.isTimerThrottled(timerHandle)");
if (timerCount == 1) {
testRunner.setPageVisibility("hidden");
isPageVisible = false;
} else if (timerCount == maxNestingLevel - 1) {
testRunner.resetPageVisibility();
clearTimeout(timerHandle);
finishJSTest();
return;
}
}
function runTest()
{
if (!window.testRunner) {
debug('This test requires testRunner');
return;
}
testRunner.overridePreference("WebKitHiddenPageDOMTimerThrottlingEnabled", 1);
timerHandle = setTimeout(testTimer, timeoutInterval);
shouldBeFalse("internals.isTimerThrottled(timerHandle)");
}
</script>
</head>
<body onload="runTest()">
<script src="../../resources/js-test-post.js"></script>
</body>
</html>