Upstream version 5.34.98.0
[platform/framework/web/crosswalk.git] / src / tools / page_cycler / webpagereplay / extension / page_cycler.js
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.
4
5 // Returns the sum of all values in the array.
6 Array.sum = function(array) {
7   var sum = 0;
8   for (var i = array.length - 1; i >= 0; i--) {
9     sum += array[i];
10   }
11   return sum;
12 };
13
14
15 function WriteReport(sessionLoader) {
16   var iterations = window.iterations;
17   var reportUrl = window.benchmarkConfiguration.reportUrl;
18   var resultsCollection = sessionLoader.getResultsCollection();
19   var times = resultsCollection.getTotalTimes();
20   var pages = resultsCollection.getPages();
21
22   reportUrl += "?n=" + iterations;
23   reportUrl += "&i=" + iterations * pages.length;  // "cycles"
24   reportUrl += "&td=" + Array.sum(times);  // total time
25   reportUrl += "&tf=" + 0;  // fudge time
26   console.log('reportUrl: ' + reportUrl);
27   chrome.cookies.set({
28     "url": reportUrl,
29     "name": "__pc_done",
30     "value": "1",
31     "path": "/",
32   });
33   chrome.cookies.set({
34     "url": reportUrl,
35     "name": "__pc_pages",
36     "value": pages.map(function(x) {
37       return x.replace(/=/g, "%3D");
38     }).join(","),
39     "path": "/",
40   });
41   chrome.cookies.set({
42     "url": reportUrl,
43     "name": "__pc_timings",
44     "value": times.join(","),
45     "path": "/",
46   });
47
48   chrome.tabs.getSelected(null, function(tab) {
49     console.log("Navigate to the report.");
50     chrome.tabs.update(tab.id, {"url": reportUrl}, null);
51   });
52 }
53
54 AddBenchmarkCallback(WriteReport);