Bug 1182595 - Refactor tpaint to use new common Profiler scripts. r?jmaher draft
authorMike Conley <mconley@mozilla.com>
Fri, 22 Jan 2016 16:06:59 -0500
changeset 333173 b6ac01d2adabbf1437b0b5cc0bdea8ec29f1f066
parent 333172 c4936868c4af071cb7cc24c706247a0b8d9def3d
child 333174 afaad8f732ba19c4652666c28440976f1db02419
push id11283
push usermconley@mozilla.com
push dateMon, 22 Feb 2016 22:35:40 +0000
reviewersjmaher
bugs1182595
milestone47.0a1
Bug 1182595 - Refactor tpaint to use new common Profiler scripts. r?jmaher MozReview-Commit-ID: ZHbssHVPT1
testing/talos/talos/startup_test/tpaint.html
--- a/testing/talos/talos/startup_test/tpaint.html
+++ b/testing/talos/talos/startup_test/tpaint.html
@@ -1,13 +1,13 @@
 <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" type="text/javascript" src="../tests/quit.js"></script>
+<script language="JavaScript" type="text/javascript" src="chrome://talos-powers-content/content/TalosContentProfiler.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
 
 /*
  * tpaint -- measures the amount of time between opening a new window
@@ -19,19 +19,18 @@ var auto = document.location.search.spli
  *     3) set browser.link.open_newwindow = 2 (else it opens in a tab)
  */
 
 function startTest() {
   // Initialize
   windowIndex = -1;
   openTimes = [];
 
-  Profiler.initFromURLQueryParams(location.search);
-  Profiler.beginTest("tpaint");
-  scheduleNextWindow();
+  TalosContentProfiler.initFromURLQueryParams(location.search);
+  TalosContentProfiler.beginTest("tpaint").then(scheduleNextWindow);
 }
 
 function scheduleNextWindow() {
   windowIndex++;
   if (windowIndex >= REPEAT_COUNT) {
     window.setTimeout(reportTimes, 0);
     return;
   }
@@ -40,75 +39,80 @@ function scheduleNextWindow() {
 
 function calcMedian( numbers ) {
   numbers.sort( function (a,b){ return a-b; } );
   var n = Math.floor( numbers.length / 2 );
   return numbers.length % 2 ? numbers[n] : ( numbers[n-1] + numbers[n] ) / 2;
 }
 
 function reportTimes() {
-  Profiler.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;
-    if (time > max)
-      max = time;
-  }
-  avg = (avg / count).toFixed(2);
-  min = min.toFixed(2);
-  max = max.toFixed(2);
-  med = calcMedian(openTimes);
+  TalosContentProfiler.finishTest().then(() => {
+    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;
+      if (time > max)
+        max = time;
+    }
+    avg = (avg / count).toFixed(2);
+    min = min.toFixed(2);
+    max = max.toFixed(2);
+    med = calcMedian(openTimes);
 
-  if (auto) {
-    dumpLog("__start_report" + openTimes.join('|') + "__end_report");
-    var now = (new Date()).getTime();
-    dumpLog("__startTimestamp" + now + "__endTimestamp\n");
-    dumpLog("openingTimes="+openTimes.slice(1)+"\n");
-    dumpLog("avgOpenTime:" + avg + "\n" );
-    dumpLog("minOpenTime:" + min + "\n" );
-    dumpLog("maxOpenTime:" + max + "\n" );
-    dumpLog("medOpenTime:" + med + "\n" );
-    dumpLog("__xulWinOpenTime:" + med + "\n");
+    if (auto) {
+      dumpLog("__start_report" + openTimes.join('|') + "__end_report");
+      var now = (new Date()).getTime();
+      dumpLog("__startTimestamp" + now + "__endTimestamp\n");
+      dumpLog("openingTimes="+openTimes.slice(1)+"\n");
+      dumpLog("avgOpenTime:" + avg + "\n" );
+      dumpLog("minOpenTime:" + min + "\n" );
+      dumpLog("maxOpenTime:" + max + "\n" );
+      dumpLog("medOpenTime:" + med + "\n" );
+      dumpLog("__xulWinOpenTime:" + med + "\n");
 
-    goQuitApplication();
-    window.close();
-  } else {
-    alert("Average over " + count + " runs: " + avg + "\n" +
-          "(min=" + min + ", max=" + max + ")\n" +
-          "runs=" + openTimes.join(','));
-  }
+      goQuitApplication();
+      window.close();
+    } else {
+      alert("Average over " + count + " runs: " + avg + "\n" +
+            "(min=" + min + ", max=" + max + ")\n" +
+            "runs=" + openTimes.join(','));
+    }
+  });
 }
 
 function childIsOpen() {
   kidEndTime = window.performance.now();
-  Profiler.pause('tpaint ' + windowIndex);
-  openTimes[windowIndex] = kidEndTime - kidStartTime;
-  scheduleNextWindow();
+  TalosContentProfiler.contentMarker("tpaint-stopwatch stop");
+
+  TalosContentProfiler.pause('End: tpaint ' + windowIndex).then(() => {
+    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);
-  kidStartTime = window.performance.now();
-  kid = window.open(kidURI);
+  TalosContentProfiler.resume('Start: tpaint ' + windowIndex).then(() => {
+    TalosContentProfiler.contentMarker("tpaint-stopwatch start");
+    kidStartTime = window.performance.now();
+    kid = window.open(kidURI);
+  });
 }
 
 if (auto)
   startTest();
 
 </script>
 <h2>tpaint runner</h2>
 <button onclick="startTest()">Start</button>