| Index: perf/dashboard/ui/sunspider_report.html
|
| ===================================================================
|
| --- perf/dashboard/ui/sunspider_report.html (revision 298504)
|
| +++ perf/dashboard/ui/sunspider_report.html (working copy)
|
| @@ -1,279 +0,0 @@
|
| -<html>
|
| -<head>
|
| -<style>
|
| -body {
|
| - font-family: sans-serif;
|
| -}
|
| -div#output {
|
| - cursor: pointer;
|
| -}
|
| -div#switcher {
|
| - cursor: pointer;
|
| -}
|
| -div#switcher a {
|
| - border-top: 1px solid black;
|
| - border-left: 1px solid black;
|
| - padding-left: 0.5em;
|
| - padding-right: 0.5em;
|
| -}
|
| -canvas.plot {
|
| - border: 1px solid black;
|
| -}
|
| -div.plot-coordinates {
|
| - font-family: monospace;
|
| -}
|
| -iframe {
|
| - 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;
|
| -}
|
| -</style>
|
| -<script src="js/common.js"></script>
|
| -<script src="js/coordinates.js"></script>
|
| -<script src="js/plotter.js"></script>
|
| -<script src="config.js"></script>
|
| -<script>
|
| -document.title = Config.title;
|
| -
|
| -var params = ParseParams();
|
| -if (!('history' in params)) {
|
| - params.history = 150;
|
| - window.location.href = MakeURL(params);
|
| -}
|
| -if (!('trace' in params)) {
|
| - params.trace = 'summary';
|
| - window.location.href = MakeURL(params);
|
| -}
|
| -
|
| -function goTo(trace) {
|
| - params.trace = trace;
|
| - if (params.trace == '' && params.trace != '0')
|
| - params.trace = 'summary';
|
| - window.location.href = MakeURL(params);
|
| -}
|
| -
|
| -function goToClosure(trace) {
|
| - return function(){goTo(trace)};
|
| -}
|
| -
|
| -var didUpdatePositionDetails = false;
|
| -
|
| -function unitsForTrace() {
|
| - return 'msec';
|
| -}
|
| -
|
| -function timing(dict) {
|
| - return parseFloat(dict['time']);
|
| -}
|
| -
|
| -function deviation(absoluteValue, dict) {
|
| - deviationPercentage = parseFloat(dict['stdd']);
|
| - return absoluteValue / 100 * deviationPercentage;
|
| -}
|
| -
|
| -function testCategoryDetails(dict) {
|
| - return dict['details'];
|
| -}
|
| -
|
| -function jsonToJs(data) {
|
| - return eval('(' + data + ')')
|
| -}
|
| -
|
| -function addSelectionTabs(rows) {
|
| - if (rows.length > 0 && rows[0].length > 0) {
|
| - data = jsonToJs(rows[0]);
|
| - tabs = ['summary'];
|
| - for (var clNumber in data)
|
| - for (var testType in data[clNumber])
|
| - for (test_name in testCategoryDetails(data[clNumber][testType]))
|
| - tabs.push(test_name);
|
| -
|
| - initPlotSwitcher(tabs);
|
| - }
|
| -}
|
| -
|
| -function onSummaryReceived(data) {
|
| - var rows = data.split('\n');
|
| - addSelectionTabs(rows);
|
| - clNumbers = [];
|
| - dataRows = {};
|
| -
|
| - for(var i = 0; i < rows.length; i++) {
|
| - if (rows[i].length < 1)
|
| - break;
|
| - if (i > params.history) // limit by history
|
| - break;
|
| -
|
| - clData = jsonToJs(rows[i]);
|
| -
|
| - if (params.trace == 'summary') {
|
| - for (var clNumber in clData) {
|
| - clNumbers.push(clNumber)
|
| -
|
| - for(testType in clData[clNumber]){
|
| - if(!dataRows[testType])
|
| - dataRows[testType] = []
|
| -
|
| - time = timing(clData[clNumber][testType]);
|
| - stdd = deviation(time, clData[clNumber][testType]);
|
| - dataRows[testType].push([time, stdd])
|
| - }
|
| - }
|
| - } else {
|
| - // specific selection that is defined in params.trace
|
| - for (var clNumber in clData) {
|
| - clNumbers.push(clNumber)
|
| - currentData = clData[clNumber]
|
| - for(testType in currentData){
|
| - if(!dataRows[params.trace])
|
| - dataRows[params.trace] = []
|
| -
|
| - details = testCategoryDetails(currentData[testType]);
|
| - if (details[params.trace]) {
|
| - testData = details[params.trace];
|
| - time = timing(testData);
|
| - stdd = deviation(time, testData);
|
| - dataRows[params.trace].push([time, stdd])
|
| - break;
|
| - }
|
| - }
|
| - }
|
| - }
|
| - }
|
| -
|
| - dataGrid = []
|
| - for(key in dataRows) {
|
| - dataGrid.push(dataRows[key].reverse())
|
| - }
|
| - clNumbers.reverse();
|
| - var plotter = new Plotter(clNumbers, dataGrid, Config.dataDescription,
|
| - unitsForTrace(), document.getElementById("output"));
|
| - plotter.onclick = handlePlotClicked;
|
| - plotter.plot();
|
| -
|
| - return;
|
| -}
|
| -
|
| -function handlePlotClicked(cl, value, fuzz, e) {
|
| - document.getElementById('view-change').
|
| - setAttribute('src', Config.changeLinkPrefix + cl);
|
| -
|
| - if (!didUpdatePositionDetails) {
|
| - updatePositionDetails();
|
| - didUpdatePositionDetails = true;
|
| - }
|
| -}
|
| -
|
| -function updatePositionDetails() {
|
| - var output = document.getElementById("output");
|
| - var win_height = window.innerHeight;
|
| - var details = document.getElementById("views");
|
| - var views = document.getElementById("views");
|
| - var selectors = document.getElementById("selectors");
|
| - selectors.style.display = "block";
|
| -
|
| - var views_width = output.offsetWidth - selectors.offsetWidth;
|
| -
|
| - views.style.border = "1px solid black";
|
| - views.style.width = views_width + "px";
|
| - views.style.height = (win_height - output.offsetHeight -
|
| - output.offsetTop - 30) + "px";
|
| -
|
| - selectors.style.position = "absolute";
|
| - selectors.style.left = (views.offsetLeft + views_width + 1) + "px";
|
| - selectors.style.top = views.offsetTop + "px";
|
| -
|
| - viewCl();
|
| -}
|
| -
|
| -function viewCl(target) {
|
| - document.getElementById("view-change").style.display = "block";
|
| -}
|
| -
|
| -function initPlotSwitcher(tabs) {
|
| - for(var i = 0; i < tabs.length; i++) {
|
| - var anchor = document.createElement("a");
|
| - anchor.appendChild(document.createTextNode(tabs[i]));
|
| - anchor.addEventListener("click", goToClosure(tabs[i]), false);
|
| - document.getElementById("switcher").appendChild(anchor);
|
| - }
|
| -
|
| - if ('lookout' in params) {
|
| - switcher.style.display = "none";
|
| - details.style.display = "none";
|
| - header_text.style.display = "none";
|
| - explain.style.display = "none";
|
| - selection.style.display = "none";
|
| - } else {
|
| - document.getElementById("header_lookout").style.display = "none";
|
| - }
|
| -}
|
| -
|
| -function log(data) {
|
| - document.getElementById('log').appendChild(
|
| - document.createTextNode(data + '\n'));
|
| -}
|
| -
|
| -function init() {
|
| - Fetch("summary.dat", onSummaryReceived);
|
| -}
|
| -
|
| -window.addEventListener("load", init, false);
|
| -</script>
|
| -</head>
|
| -<body>
|
| -<p>
|
| -<div id="header_lookout" align="center">
|
| - <font style='color: #0066FF; font-family: Arial, serif;font-size: 20pt; font-weight: bold;'>
|
| - <script>document.write(Config.title);</script>
|
| - </font>
|
| -</div>
|
| -<div id="header_text">
|
| -Builds generated by the <a href="http://build.chromium.org/">BUILD TYPE</a> build
|
| -slave are run through the
|
| -<script>
|
| -document.write('<a href="' + Config.sourceLink + '">' + Config.title + '</a>');
|
| -</script>
|
| -and the results of that test are charted here.
|
| -</div>
|
| -</p>
|
| -<p style="font-size: 0.75em; font-style: italic; color: rgb(100,100,100)">
|
| -<div id="explain">
|
| -The vertical axis is the time in milliseconds for the build to complete the
|
| -test, and the horizontal axis is the change-list for the build being
|
| -tested
|
| -</div>
|
| -</p>
|
| -<div id="switcher">
|
| -
|
| -</div>
|
| -<div id="output"></div>
|
| -<div id="details">
|
| - <div id="views">
|
| - <iframe id="view-change"></iframe>
|
| - <iframe id="view-pages"></iframe>
|
| - </div>
|
| - <div id="selectors">
|
| - <div class="selector" onclick="viewCl()">CL</div>
|
| - </div>
|
| -</div>
|
| -<pre id="log"></pre>
|
| -</body>
|
| -</html>
|
|
|