Separate Simple Backend creation from initialization.
[chromium-blink-merge.git] / tools / perf / page_sets / tough_scrolling_cases / busy.js
blobc22fbb6d3afc48de370ad895533be6bd14ea2cea
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 function busyLoop(millis) {
6     for (var d = Date.now(); Date.now() - d < millis; ) { }
9 function visible() {
10     if ("webkitVisibilityState" in document
11         && document.webkitVisibilityState == "hidden")
12         return false;
13     if ("mozVisibilityState" in document
14         && document.mozVisibilityState == "hidden")
15         return false;
16     if ("msVisibilityState" in document
17         && document.msVisibilityState == "hidden")
18         return false;
19     return true;
22 var timerId = 0;
23 function loop() {
24     timerId = 0;
25     if (!visible())
26         return;
27     busyLoop(250);
28     timerId = window.setTimeout(loop, 50);
31 function handler() {
32     if (visible() && !timerId)
33         timerId = window.setTimeout(loop, 50);
36 document.addEventListener("webkitvisibilitychange", handler, false);
37 document.addEventListener("mozvisibilitychange", handler, false);
38 document.addEventListener("msvisibilitychange", handler, false);
40 loop();