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