Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Tools / GardeningServer / lib / ct-scheduled-updater.html
1 <!--
2 Copyright 2014 The Chromium Authors. All rights reserved.
3 Use of this source code is governed by a BSD-style license that can be
4 found in the LICENSE file.
5 -->
6
7 <script>
8 // Schedule a repeated action with requestAnimationFrame to avoid doing work
9 // when the tab is hidden.
10 function CTScheduledUpdater(callback, interval) {
11   this.callback = callback;
12   this._isScheduled = false;
13   this._intervalId = setInterval(this._schedule.bind(this), interval);
14 }
15
16 CTScheduledUpdater.prototype._schedule = function() {
17   if (this._isScheduled)
18     return;
19
20   this._isScheduled = true;
21   requestAnimationFrame(this._do.bind(this));
22 }
23
24 CTScheduledUpdater.prototype._do = function() {
25   this._isScheduled = false;
26   this.callback();
27 }
28 </script>