Bug 1375096 - Make tpaint use TalosContentProfiler so that we can get full profiles from automation. r?jmaher
MozReview-Commit-ID: 9Si9rHeabWF
--- a/testing/talos/talos/startup_test/tpaint.html
+++ b/testing/talos/talos/startup_test/tpaint.html
@@ -1,12 +1,12 @@
<html>
<meta charset='utf-8'>
<script language="JavaScript" type="text/javascript" src="../scripts/MozillaFileLogger.js"></script>
-<script language="JavaScript" type="text/javascript" src="../scripts/Profiler.js"></script>
+<script language="JavaScript" src="chrome://talos-powers-content/content/TalosContentProfiler.js"></script>
<script language="JavaScript" type="text/javascript" src="chrome://talos-powers-content/content/TalosPowersContent.js"></script>
<script language="JavaScript" type="text/javascript" src="../tests/quit.js"></script>
<script>
var OPENER_DELAY = 1000; // ms delay between tests
var REPEAT_COUNT = 20;
var kid, kidStartTime, kidEndTime, windowIndex, openTimes;
var auto = document.location.search.split('=')[1]; // ?auto=1
@@ -15,23 +15,23 @@ var auto = document.location.search.spli
* its contents being painted.
*
* XXX When run manually, outside of automation, need to:
* 1) allow popups
* 2) set dom.send_after_paint_to_content = true
* 3) set browser.link.open_newwindow = 2 (else it opens in a tab)
*/
-function startTest() {
+async function startTest() {
// Initialize
windowIndex = -1;
openTimes = [];
- Profiler.initFromURLQueryParams(location.search);
- Profiler.beginTest("tpaint");
+ TalosContentProfiler.initFromURLQueryParams(location.search);
+ await TalosContentProfiler.beginTest("tpaint");
scheduleNextWindow();
}
function scheduleNextWindow() {
windowIndex++;
if (windowIndex >= REPEAT_COUNT) {
window.setTimeout(reportTimes, 0);
return;
@@ -47,18 +47,18 @@ function calcMedian( numbers ) {
sortedNumbers.sort( function (a,b){ return a-b; } );
var n = Math.floor( sortedNumbers.length / 2 );
if (sortedNumbers.length % 2) {
return sortedNumbers[n];
}
return ( sortedNumbers[n-1] + sortedNumbers[n] ) / 2;
}
-function reportTimes() {
- Profiler.finishTest();
+async function reportTimes() {
+ await TalosContentProfiler.finishTest();
var min = 99999, max = 0, avg = 0;
var count = openTimes.length;
for (var i = 0; i < count; i++) {
var time = openTimes[i];
avg += time;
if (time < min)
min = time;
@@ -85,36 +85,36 @@ function reportTimes() {
window.close();
} else {
alert("Average over " + count + " runs: " + avg + "\n" +
"(min=" + min + ", max=" + max + ")\n" +
"runs=" + openTimes.join(','));
}
}
-function childIsOpen() {
+async function childIsOpen() {
kidEndTime = window.performance.now();
- Profiler.pause('tpaint ' + windowIndex);
+ await TalosContentProfiler.pause('tpaint ' + windowIndex);
openTimes[windowIndex] = kidEndTime - kidStartTime;
scheduleNextWindow();
}
var kidHTML = "<html><meta charset='utf-8'><script>" +
"var e = 'MozAfterPaint';" +
"function done() {" +
" window.removeEventListener(e, done, true);" +
" window.opener.childIsOpen();" +
" window.close();" +
"}" +
"window.addEventListener(e, done, true);" +
"</" + "script>TPAINT</html>";
var kidURI = "data:text/html," + encodeURI(kidHTML);
-function openWindow() {
- Profiler.resume('tpaint ' + windowIndex);
+async function openWindow() {
+ await TalosContentProfiler.resume('tpaint ' + windowIndex);
kidStartTime = window.performance.now();
kid = window.open(kidURI);
}
if (auto)
startTest();
</script>