Bug 1375096 - Make tpaint use TalosContentProfiler so that we can get full profiles from automation. r?jmaher draft
authorMike Conley <mconley@mozilla.com>
Wed, 21 Jun 2017 11:55:19 -0400
changeset 598560 37bec9e44e2f88a495951592009427c76340fb21
parent 598559 1bf0169c1e593f8b0441e67645449f9da41c0bc9
child 634511 eef5379cfdbf067cb73fd01d8409172a6840a948
push id65246
push usermconley@mozilla.com
push dateWed, 21 Jun 2017 20:41:15 +0000
reviewersjmaher
bugs1375096
milestone56.0a1
Bug 1375096 - Make tpaint use TalosContentProfiler so that we can get full profiles from automation. r?jmaher MozReview-Commit-ID: 9Si9rHeabWF
testing/talos/talos/startup_test/tpaint.html
--- 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>