UploadedFile should support a callback for upload progress
[WebKit.git] / Websites / perf.webkit.org / public / cycler.html
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta http-equiv="refresh" content="3600">
5 <style>
6 html, body, iframe { margin: 0; padding: 0; border: none; width: 100%; height: 100%; }
7 </style>
8 </head>
9 <body>
10 <script>
11
12 var urls = [];
13 var CycleSeconds = 30;
14
15 var request = new XMLHttpRequest();
16 request.open('GET', '/data/manifest.json', true);
17 request.send(null);
18 request.onreadystatechange = function () {
19     if (request.readyState != XMLHttpRequest.DONE)
20         return;
21     if (request.status !== 200) {
22         alert('Failed with status: ' + request.status);
23         return;
24     }
25
26     var manifest = JSON.parse(request.responseText);
27     var dashboards = [];
28     for (var dashboardName in manifest.dashboards)
29         dashboards.push(dashboardName);
30
31     for (var dashboardName of dashboards)
32         urls.push('/v3/#/dashboard/' + dashboardName);
33
34     loadURLAt(0);
35 }
36
37 var oldIframe = null;
38 function loadURLAt(i) {
39     var newIframe = document.createElement('iframe');
40     document.body.appendChild(newIframe);
41     newIframe.src = urls[i];
42     newIframe.onload = showNewFrame.bind(window, i, newIframe);
43 }
44
45 function showNewFrame(i, iframe) {
46     if (oldIframe)
47         document.body.removeChild(oldIframe);
48     oldIframe = iframe;
49
50     i = (i + 1) % urls.length;
51     setTimeout(loadURLAt.bind(window, i), CycleSeconds * 1000);
52 }
53
54 </script>
55 </body>
56 </html>