Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / fast / dom / timer-throttling-hidden-page.html
index e6a4e8e..7b652ff 100644 (file)
@@ -2,12 +2,12 @@
 <head>
     <script src="../../resources/js-test.js"></script>
     <script>
-        description('<a href="https://bugs.webkit.org/show_bug.cgi?id=98474">Bug 98474</a>: Throttle DOM timers on hidden pages.');
+        description('<a href="https://bugs.webkit.org/show_bug.cgi?id=98474">Bug 98474</a>: Throttle DOM timers on hidden pages and <a href="http://crbug.com/400343">bug 400343</a> prerender pages.');
 
         var jsTestIsAsync = true;
         var previousTime = 0;
         var timerCount = 0;
-        var firstTimerWhileHidden = true;
+        var firstTimerWhileNotVisible = true;
         var isPageVisible = true;
         var timeoutInterval = 100;
         var tolerance = 20;
         {
             var time = Date.now();
             if (!isPageVisible) {
-                if (firstTimerWhileHidden) {
-                    firstTimerIntervalWhilePageHidden = time - previousTime;
+                if (firstTimerWhileNotVisible) {
+                    firstTimerIntervalWhilePageNotVisible = time - previousTime;
                     var minValue = timeoutInterval - tolerance;
-                    shouldBeGreaterThanOrEqual("firstTimerIntervalWhilePageHidden", minValue.toString());
+                    shouldBeGreaterThanOrEqual("firstTimerIntervalWhilePageNotVisible", minValue.toString());
                     var maxValue = timeoutInterval + timerAlignmentInterval + tolerance;
-                    shouldBeTrue("firstTimerIntervalWhilePageHidden <= " + maxValue);
-                    firstTimerWhileHidden = false;
+                    shouldBeTrue("firstTimerIntervalWhilePageNotVisible <= " + maxValue);
+                    firstTimerWhileNotVisible = false;
                 } else {
-                    timerIntervalWhilePageHidden = time - previousTime;
-                    shouldBeCloseTo("timerIntervalWhilePageHidden", timerAlignmentInterval, tolerance);
+                    timerIntervalWhilePageNotVisible = time - previousTime;
+                    shouldBeCloseTo("timerIntervalWhilePageNotVisible", timerAlignmentInterval, tolerance);
                 }
             } else {
                 timerIntervalWhilePageVisible = time - previousTime;
             } else if (timerCount == 3) {
                 testRunner.setPageVisibility("visible");
                 isPageVisible = true;
-            } else if (timerCount >= 4){
+            } else if (timerCount == 5) {
+                testRunner.setPageVisibility("prerender");
+                isPageVisible = false;
+                firstTimerWhileNotVisible = true;
+            } else if (timerCount == 7) {
+                testRunner.setPageVisibility("visible");
+                isPageVisible = true;
+            } else if (timerCount >= 8){
                 finishJSTest();
                 return;
             }
@@ -71,7 +78,7 @@
 </head>
 <body onload="runTest()">
     <p>
-    This test measures the time taken to fire a <span class="timeoutInterval"></span>ms DOM Timer when the page visibility is set to "visible", "hidden" and then back to "visible".  Due to hidden page timer throttling, the timer should fire close to <span id="alignmentInterval"></span>s when page is hidden.  And it should fire close to <span class="timeoutInterval"></span>ms, when the page is visible.
+    This test measures the time taken to fire a <span class="timeoutInterval"></span>ms DOM Timer when the page visibility is set to "visible", "hidden", "visible", "prerender" and then back to "visible".  Due to page timer throttling, the timer should fire close to <span id="alignmentInterval"></span>s when page is hidden or prerender.  And it should fire close to <span class="timeoutInterval"></span>ms, when the page is visible.
     </p>
 </body>
 </html>