| Index: dashboard/overview-chrome.html
|
| diff --git a/dashboard/overview-chrome.html b/dashboard/overview-chrome.html
|
| deleted file mode 100644
|
| index 525bda23edca86051423f6379722667fe0f8aca2..0000000000000000000000000000000000000000
|
| --- a/dashboard/overview-chrome.html
|
| +++ /dev/null
|
| @@ -1,452 +0,0 @@
|
| -<html>
|
| -
|
| -<!--
|
| - Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| - Use of this source code is governed by a BSD-style license that can be
|
| - found in the LICENSE file.
|
| --->
|
| -
|
| -<!--
|
| - Display all graphs for machines specified in chrome_config.js.
|
| --->
|
| -
|
| -<head>
|
| -<title>Chrome Perf Overview</title>
|
| -<style type="text/css">
|
| -a {
|
| - color: #004277;
|
| - text-decoration: none;
|
| -}
|
| -
|
| -/* Containers */
|
| -#top {
|
| - text-align: center;
|
| - padding: 10px;
|
| -}
|
| -#top-left {
|
| - float:left;
|
| -}
|
| -#top-right {
|
| - float:right;
|
| -}
|
| -.clear {
|
| - clear: both;
|
| -}
|
| -.header {
|
| - font-family:Tahoma;
|
| - text-align:left;
|
| - font-size:12px;
|
| - font-weight:bold;
|
| - text-decoration:none;
|
| -}
|
| -.section-title {
|
| - text-align: center;
|
| - border-bottom: 1px solid #EFEFEF;
|
| - margin: 0px 15px 0px 15px;
|
| - font-size: 11px;
|
| - align: center;
|
| -}
|
| -
|
| -/* Graph */
|
| -div.plot {
|
| - cursor: pointer;
|
| -}
|
| -div.switcher * {
|
| - border: 1px solid black;
|
| - border-radius: 4px 4px 0 0;
|
| - padding-left: 0.5em;
|
| - padding-right: 0.5em;
|
| -}
|
| -div.switcher .select {
|
| - background: #ddd;
|
| - cursor: pointer;
|
| -}
|
| -canvas.plot {
|
| - border: 1px solid black;
|
| - cursor: pointer;
|
| -}
|
| -div.plot-coordinates {
|
| - font-family: monospace;
|
| -}
|
| -iframe.detail {
|
| - display: none;
|
| - width: 100%;
|
| - height: 100%;
|
| - border: none;
|
| -}
|
| -div.selector {
|
| - border: solid 1px black;
|
| - cursor: pointer;
|
| - padding-left: 0.3em;
|
| - background-color: white;
|
| -}
|
| -div.selector:hover {
|
| - background-color: rgb(200,200,250);
|
| -}
|
| -div.selected {
|
| - border-left: none;
|
| -}
|
| -div.selectors {
|
| - width: 80px;
|
| - display: none;
|
| -}
|
| -#explain {
|
| - font-size: 0.75em;
|
| - font-style: italic;
|
| - color: rgb(100,100,100);
|
| -}
|
| -
|
| -/* Header Tab. */
|
| -.header-tab .empty {
|
| - clear: left;
|
| -}
|
| -.header-tab {
|
| - border-bottom: 1px solid #6B90DA;
|
| - padding-left: 5px;
|
| -}
|
| -.header-tab ul {
|
| - list-style: none;
|
| - padding: 0;
|
| - margin: 0;
|
| -}
|
| -.header-tab li {
|
| - float: left;
|
| - border: 1px solid #bbb;
|
| - border-bottom-width: 0;
|
| - margin: 0;
|
| -}
|
| -.header-tab a {
|
| - text-decoration: none;
|
| - display: block;
|
| - background: #eee;
|
| - padding: 0.24em 1em;
|
| - color: #004277;
|
| - text-align: center;
|
| -}
|
| -.header-tab a:hover {
|
| - background: #ddf;
|
| -}
|
| -.header-tab .active {
|
| - border-color: #6B90DA;
|
| -}
|
| -.header-tab .active a {
|
| - position: relative;
|
| - top: 1px;
|
| - background: white;
|
| - font-weight: bold;
|
| - color: black;
|
| -}
|
| -</style>
|
| -
|
| -<script src="chrome_config.js"></script>
|
| -<script src="ui/js/common.js"></script>
|
| -<script src="ui/js/plotter.js"></script>
|
| -<script src="ui/js/coordinates.js"></script>
|
| -<script src="ui/js/graph.js"></script>
|
| -
|
| -<script language="javascript">
|
| -var params = ParseParams();
|
| -var view = (params['view']) ? params['view'] : 'important';
|
| -
|
| -var CHANNELS = ['canary', 'dev', 'beta', 'stable'];
|
| -
|
| -function init() {
|
| - // Fetch graphs.dat from all machines and tests.
|
| - var graphFiles = [];
|
| - var graphPaths = [];
|
| - for (var system in ChromeConfig.systemTitles) {
|
| - for (var testName in ChromeConfig.testTitles) {
|
| - var path = '../' + system + '/' + testName;
|
| - graphFiles.push(path + '/' + 'graphs.dat');
|
| - var p = {
|
| - path: path,
|
| - testName: testName,
|
| - machine: ChromeConfig.systemTitles[system],
|
| - }
|
| - graphPaths.push(p);
|
| - }
|
| - }
|
| - new FetchList(graphFiles, onGraphListReceived, graphPaths);
|
| -}
|
| -
|
| -function onGraphListReceived(data, graphPaths) {
|
| - // Order graphList by machine and test name.
|
| - var graphMap = {};
|
| - var testNames = [];
|
| - for (var i = 0; i < data.length; i++) {
|
| - var graphList = JsonToJs(data[i]);
|
| - if (graphList) {
|
| - if (!(graphPaths[i].machine in graphMap))
|
| - graphMap[graphPaths[i].machine] = {};
|
| - graphMap[graphPaths[i].machine][graphPaths[i].testName] =
|
| - [graphList, graphPaths[i].path];
|
| - if (testNames.indexOf(graphPaths[i].testName) < 0)
|
| - testNames.push(graphPaths[i].testName);
|
| - }
|
| - }
|
| -
|
| - // Get all important graphs.
|
| - var selectedGraphNames = {};
|
| - for (var machine in graphMap) {
|
| - var graphByTestName = graphMap[machine];
|
| - for (var test in graphByTestName) {
|
| - var gList = graphByTestName[test][0];
|
| - for (var k = 0; k < gList.length; k++) {
|
| - var g = gList[k];
|
| - if (!(g.name in selectedGraphNames)) {
|
| - if (g.important) {
|
| - selectedGraphNames[g.name] = 1;
|
| - }
|
| - }
|
| - }
|
| - }
|
| - }
|
| -
|
| - if (view == 'channel-comparison') {
|
| - addGraphTable(graphMap, testNames, selectedGraphNames, CHANNELS);
|
| - } else if (view == 'platform-comparison') {
|
| - displayPlatformComparison(graphMap, testNames, selectedGraphNames);
|
| - } else {
|
| - displayImportantGraphs(graphMap, testNames, selectedGraphNames);
|
| - }
|
| -
|
| -}
|
| -
|
| -function displayImportantGraphs(graphMap, testNames, selectedGraphNames) {
|
| - // Add graph for each channels. For total graph only.
|
| - var output = document.getElementById('output');
|
| -
|
| - // Add section labels.
|
| - var sectionBelow = document.createElement('p');
|
| - sectionBelow.setAttribute('style', 'text-align: center;');
|
| - output.appendChild(sectionBelow);
|
| - sectionBelow.appendChild(document.createTextNode('[ '));
|
| - for (var i = 0; i < CHANNELS.length; i++) {
|
| - var a = document.createElement('a');
|
| - a.innerHTML = CHANNELS[i];
|
| - a.setAttribute('href', '#' + CHANNELS[i]);
|
| - sectionBelow.appendChild(a);
|
| - if (i < CHANNELS.length - 1)
|
| - sectionBelow.appendChild(document.createTextNode(' | '));
|
| - }
|
| - sectionBelow.appendChild(document.createTextNode(' ]'));
|
| -
|
| - for (var i = 0; i < CHANNELS.length; i++) {
|
| - var channel = CHANNELS[i];
|
| - // Channel title.
|
| - var channelTitle = document.createElement('div');
|
| - output.appendChild(channelTitle);
|
| - channelTitle.setAttribute('id', channel);
|
| - channelTitle.setAttribute('class', 'section-title');
|
| - channelTitle.innerHTML = '<h2>' + channel + '</h2>';
|
| - addGraphTable(graphMap, testNames, selectedGraphNames, [channel]);
|
| - }
|
| -}
|
| -
|
| -function addGraphTable(graphMap, testNames, selectedGraphNames, channels) {
|
| - var output = document.getElementById('output');
|
| - var table = document.createElement('table');
|
| - output.appendChild(table);
|
| -
|
| - // Add machine titles.
|
| - var trMachineTitle = document.createElement('tr');
|
| - table.appendChild(trMachineTitle);
|
| - trMachineTitle.appendChild(document.createElement('th'));
|
| - for (var system in ChromeConfig.systemTitles) {
|
| - var th = document.createElement('th');
|
| - trMachineTitle.appendChild(th);
|
| - th.innerHTML = '<a href="#" >' + ChromeConfig.systemTitles[system] +
|
| - '</a>';
|
| - }
|
| -
|
| - // For each tests.
|
| - for (var j = 0; j < testNames.length; j++) {
|
| - var testName = testNames[j];
|
| - var tr = document.createElement('tr');
|
| - table.appendChild(tr);
|
| -
|
| - // Add graph title.
|
| - var tdGraphTitle = document.createElement('td');
|
| - tdGraphTitle.setAttribute(
|
| - 'style', 'width: 50px; vertical-align:top; padding-top: 80px');
|
| - tr.appendChild(tdGraphTitle);
|
| - tdGraphTitle.innerHTML = ChromeConfig.testTitles[testName];
|
| -
|
| - // For each machine, add graph.
|
| - for (var machine in graphMap) {
|
| - var toBeGraphedList = [];
|
| - if (testName in graphMap[machine]) {
|
| - var gMap = graphMap[machine][testName];
|
| - var graphList = gMap[0];
|
| - var graphPath = gMap[1];
|
| - for (var m = 0; m < graphList.length; m++) {
|
| - if (graphList[m].name in selectedGraphNames) {
|
| - graphList[m].loc = graphPath + '/' + graphList[m].name +
|
| - '-summary.dat';
|
| - toBeGraphedList.push(graphList[m]);
|
| - break;
|
| - }
|
| - }
|
| - }
|
| -
|
| - var td = document.createElement('td');
|
| - td.setAttribute('style', 'vertical-align:top;');
|
| - var div = document.createElement('div');
|
| - td.appendChild(div);
|
| - tr.appendChild(td);
|
| -
|
| - if (toBeGraphedList.length > 0) {
|
| - var options = {
|
| - channels: channels,
|
| - width: 250,
|
| - height: 250,
|
| - showDetail: false,
|
| - showTabs: false,
|
| - history: 50,
|
| - enableMouseScroll: false,
|
| - };
|
| - var graph = new Graph(div, toBeGraphedList, options)
|
| - var reportURL = graphPath + '/' + 'report.html?channel=' +
|
| - channels.join(',') + '&graph=' +
|
| - toBeGraphedList[0].name;
|
| - graph.onPlotClicked = function(url) {
|
| - return function () {window.open(url)};
|
| - }(reportURL);
|
| - graph.graph();
|
| - } else {
|
| - div.setAttribute(
|
| - 'style', 'display: inline-block; width: 250px; height: 250px')
|
| - }
|
| - }
|
| - }
|
| -}
|
| -
|
| -function displayPlatformComparison(graphMap, testNames, selectedGraphNames) {
|
| - var output = document.getElementById('output');
|
| -
|
| - var table = document.createElement('table');
|
| - output.appendChild(table);
|
| -
|
| - // Add channel titles.
|
| - var trChannelTitle = document.createElement('tr');
|
| - table.appendChild(trChannelTitle);
|
| - trChannelTitle.appendChild(document.createElement('th'));
|
| - for (var i = 0; i < CHANNELS.length; i++) {
|
| - var th = document.createElement('th');
|
| - trChannelTitle.appendChild(th);
|
| - th.innerHTML = '<a href="#" >' + CHANNELS[i] + '</a>';
|
| - }
|
| -
|
| - var machines = [];
|
| - for (var machine in graphMap)
|
| - machines.push(machine);
|
| -
|
| - // For each tests.
|
| - for (var j = 0; j < testNames.length; j++) {
|
| - var testName = testNames[j];
|
| - var tr = document.createElement('tr');
|
| - table.appendChild(tr);
|
| -
|
| - // Add test title.
|
| - var tdGraphTitle = document.createElement('td');
|
| - tdGraphTitle.setAttribute(
|
| - 'style', 'width: 50px; vertical-align:top; padding-top: 80px');
|
| - tr.appendChild(tdGraphTitle);
|
| - tdGraphTitle.innerHTML = ChromeConfig.testTitles[testName];
|
| -
|
| - // For each channel, add graph.
|
| - for (var i = 0; i < CHANNELS.length; i++) {
|
| - var channel = CHANNELS[i];
|
| - var toBeGraphedList = [];
|
| - for (var machine in graphMap) {
|
| - if (testName in graphMap[machine]) {
|
| - var gMap = graphMap[machine][testName];
|
| - var graphList = gMap[0];
|
| - var graphPath = gMap[1];
|
| - for (var m = 0; m < graphList.length; m++) {
|
| - if (graphList[m].name in selectedGraphNames) {
|
| - graphList[m].loc = graphPath + '/' + graphList[m].name +
|
| - '-summary.dat';
|
| - graphList[m].machine = cleanId(machine);
|
| - toBeGraphedList.push(graphList[m]);
|
| - break;
|
| - }
|
| - }
|
| - }
|
| - }
|
| -
|
| - var td = document.createElement('td');
|
| - td.setAttribute('style', 'vertical-align:top;');
|
| - var div = document.createElement('div');
|
| - td.appendChild(div);
|
| - tr.appendChild(td);
|
| -
|
| - if (toBeGraphedList.length > 0) {
|
| - var options = {
|
| - channels: [channel],
|
| - width: 250,
|
| - height: 250,
|
| - showDetail: false,
|
| - showTabs: false,
|
| - history: 50,
|
| - enableMouseScroll: false,
|
| - orderDataByVersion: true,
|
| - };
|
| - var graph = new Graph(div, toBeGraphedList, options)
|
| - var reportURL = 'platform-comparison.html?channel=' +
|
| - channel + '&graph=' + toBeGraphedList[0].name +
|
| - '&test=' + testNames[j] +
|
| - '&platforms=' + machines.join(',');
|
| - graph.onPlotClicked = function(url) {
|
| - return function () {window.open(url)};
|
| - }(reportURL);
|
| - graph.graph();
|
| - } else {
|
| - div.setAttribute(
|
| - 'style', 'display: inline-block; width: 250px; height: 250px')
|
| - }
|
| - }
|
| - }
|
| -}
|
| -
|
| -function cleanId(str) {
|
| - return str.replace(/\s/g, '_').toLowerCase();
|
| -}
|
| -
|
| -window.addEventListener('load', init, false);
|
| -</script>
|
| -</head>
|
| -<body>
|
| - <div id="top">
|
| - <h2 class="title">
|
| - Chrome Perf:
|
| - <script>
|
| - document.write('<a href="overview-chrome.html'
|
| - + window.location.search
|
| - + '">overview</a>');
|
| - </script>
|
| - </h2>
|
| - <div class="clear"></div>
|
| - </div>
|
| - <div class="header-tab" style="margin:0 auto;">
|
| - <ul>
|
| - <script language="javascript">
|
| - var tabs = {
|
| - 'important': 'Important Graphs',
|
| - 'channel-comparison': 'Channel Comparison',
|
| - 'platform-comparison': 'Platform Comparison',
|
| - }
|
| - for (var key in tabs) {
|
| - var selected = (view == key) ? 'class="active"' : '';
|
| - document.write('<li ' + selected +
|
| - '><a href="overview-chrome.html?view=' + key +
|
| - '">' + tabs[key] + '</a></li>');
|
| - }
|
| - </script>
|
| - </ul>
|
| - <div class="empty"></div>
|
| - </div>
|
| - <br />
|
| - <div id="output" style="margin:0 auto;"></div>
|
| -</body>
|
| -</html>
|
|
|