diff chrome/pageloader.js @ 206:beca399c3a16

Bug 685632 - Please collect RSS (memory) data during Talos testing on Android. r=jlebar,njn
author Joel Maher <jmaher@mozilla.com>
date Wed, 09 Nov 2011 10:41:03 -0500
parents eaef28f55f92
children
line wrap: on
line diff
--- a/chrome/pageloader.js	Mon Oct 10 14:41:18 2011 -0700
+++ b/chrome/pageloader.js	Wed Nov 09 10:41:03 2011 -0500
@@ -66,6 +66,7 @@
 var timeoutEvent = -1;
 var running = false;
 var forceCC = true;
+var reportRSS = false;
 
 var useMozAfterPaint = false;
 var gPaintWindow = window;
@@ -109,6 +110,7 @@
     if (args.timeout) timeout = parseInt(args.timeout);
     if (args.delay) delay = parseInt(args.delay);
     if (args.mozafterpaint) useMozAfterPaint = true;
+    if (args.rss) reportRSS = true;
 
     forceCC = !args.noForceCC;
     doRenderTest = args.doRender;
@@ -210,8 +212,11 @@
                          "addEventListener('load', _contentLoadHandler, true); ";
                        content.messageManager.loadFrameScript(contentScript, false);
                      }
-
-                     setTimeout(plLoadPage, 100);
+                     if (reportRSS) {
+                       initializeMemoryCollector(plLoadPage, 100);
+                     } else {
+                       setTimeout(plLoadPage, 100);
+                     }
                    }, 500);
       };
 
@@ -222,7 +227,11 @@
 
       content = document.getElementById('contentPageloader');
 
-      setTimeout(plLoadPage, delay);
+      if (reportRSS) {
+        initializeMemoryCollector(plLoadPage, delay);
+      } else {
+        setTimeout(plLoadPage, delay);
+      }
     }
   } catch(e) {
     dumpLine(e);
@@ -290,7 +299,15 @@
 
   if (timeout > 0) {
     timeoutEvent = setTimeout('loadFail()', timeout);
-  } 
+  }
+  if (reportRSS) {
+    collectMemory(startAndLoadURI, pageName);
+  } else {
+    startAndLoadURI(pageName);
+  }
+}
+
+function startAndLoadURI(pageName) {
   start_time = Date.now();
   content.loadURI(pageName);
 }
@@ -548,6 +565,14 @@
 }
 
 function plStop(force) {
+  if (reportRSS) {
+    collectMemory(plStopAll, force);
+  } else {
+    plStopAll(force);
+  }
+}
+
+function plStopAll(force) {
   try {
     if (force == false) {
       pageIndex = 0;
@@ -573,6 +598,10 @@
     dumpLine(e);
   }
 
+  if (reportRSS) {
+    stopMemCollector();
+  }
+
   if (content) {
     content.removeEventListener('load', plLoadHandlerCapturing, true);
     content.removeEventListener('load', plLoadHandler, true);