Source code

Revision control

Copy as Markdown

Other Tools

// This file can be customized to report results as needed.
(function () {
if ((!window.testRunner && location.search != '?webkit' && location.hash != '#webkit')
&& location.search != '?gecko' && location.search != '?raptor')
return;
if (window.testRunner)
testRunner.waitUntilDone();
var scriptElement = document.createElement('script');
scriptElement.src = '../resources/runner.js';
document.head.appendChild(scriptElement);
var styleElement = document.createElement('style');
styleElement.textContent = 'pre { padding-top: 600px; }';
document.head.appendChild(styleElement);
var createTest;
var valuesByIteration = new Array;
window.onload = function () {
document.body.removeChild(document.querySelector('main'));
startBenchmark();
}
window.benchmarkClient = {
iterationCount: 5, // Use 4 different instances of DRT/WTR to run 5 iterations.
willStartFirstIteration: function (iterationCount) {
createTest = function (name, aggregator, isLastTest) {
return {
customIterationCount: iterationCount,
doNotIgnoreInitialRun: true,
doNotMeasureMemoryUsage: true,
continueTesting: !isLastTest,
unit: 'ms',
name: name,
aggregator: aggregator};
}
if (window.PerfTestRunner) {
PerfTestRunner.prepareToMeasureValuesAsync(createTest(null, 'Total'));
}
},
didRunSuites: function (measuredValues) {
if (window.PerfTestRunner)
PerfTestRunner.measureValueAsync(measuredValues.total);
valuesByIteration.push(measuredValues.tests);
},
didFinishLastIteration: function () {
document.head.removeChild(document.querySelector('style'));
var measuredValuesByFullName = {};
function addToMeasuredValue(value, fullName, aggregator) {
var values = measuredValuesByFullName[fullName] || new Array;
measuredValuesByFullName[fullName] = values;
values.push(value);
values.aggregator = aggregator;
}
valuesByIteration.forEach(function (measuredValues) {
for (var suiteName in measuredValues) {
var suite = measuredValues[suiteName];
for (var testName in suite.tests) {
var test = suite.tests[testName];
for (var subtestName in test.tests)
addToMeasuredValue(test.tests[subtestName], suiteName + '/' + testName + '/' + subtestName);
addToMeasuredValue(test.total, suiteName + '/' + testName, 'Total');
}
addToMeasuredValue(suite.total, suiteName, 'Total');
}
});
var fullNames = new Array;
for (var fullName in measuredValuesByFullName) {
fullNames.push(fullName);
}
if (typeof tpRecordTime !== "undefined" || location.search == '?raptor') {
var values = new Array;
var allNames = new Array;
for (var i = 0; i < fullNames.length; i++) {
vals = measuredValuesByFullName[fullNames[i]];
values.push(vals);
for (var count=0; count < vals.length; count ++) {
allNames.push(fullNames[i]);
}
}
if (location.search == '?raptor') {
_data = ['raptor-benchmark', 'speedometer', measuredValuesByFullName];
console.log('speedometer source about to post results to the raptor webext');
window.postMessage(_data, '*');
window.sessionStorage.setItem('benchmark_results', JSON.stringify(_data));
} else {
tpRecordTime(values.join(','), 0, allNames.join(','));
}
} else {
for (var i = 0; i < fullNames.length; i++) {
var values = measuredValuesByFullName[fullNames[i]];
PerfTestRunner.reportValues(createTest(fullNames[i], values.aggregator, i + 1 == fullNames.length), values);
}
}
}
};
})();