comparison 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
comparison
equal deleted inserted replaced
205:eaef28f55f92 206:beca399c3a16
64 var timeout = -1; 64 var timeout = -1;
65 var delay = 250; 65 var delay = 250;
66 var timeoutEvent = -1; 66 var timeoutEvent = -1;
67 var running = false; 67 var running = false;
68 var forceCC = true; 68 var forceCC = true;
69 var reportRSS = false;
69 70
70 var useMozAfterPaint = false; 71 var useMozAfterPaint = false;
71 var gPaintWindow = window; 72 var gPaintWindow = window;
72 var gPaintListener = false; 73 var gPaintListener = false;
73 74
107 if (args.filter) pageFilterRegexp = new RegExp(args.filter); 108 if (args.filter) pageFilterRegexp = new RegExp(args.filter);
108 if (args.noisy) noisy = true; 109 if (args.noisy) noisy = true;
109 if (args.timeout) timeout = parseInt(args.timeout); 110 if (args.timeout) timeout = parseInt(args.timeout);
110 if (args.delay) delay = parseInt(args.delay); 111 if (args.delay) delay = parseInt(args.delay);
111 if (args.mozafterpaint) useMozAfterPaint = true; 112 if (args.mozafterpaint) useMozAfterPaint = true;
113 if (args.rss) reportRSS = true;
112 114
113 forceCC = !args.noForceCC; 115 forceCC = !args.noForceCC;
114 doRenderTest = args.doRender; 116 doRenderTest = args.doRender;
115 117
116 if (forceCC && 118 if (forceCC &&
208 " }" + 210 " }" +
209 "} " + 211 "} " +
210 "addEventListener('load', _contentLoadHandler, true); "; 212 "addEventListener('load', _contentLoadHandler, true); ";
211 content.messageManager.loadFrameScript(contentScript, false); 213 content.messageManager.loadFrameScript(contentScript, false);
212 } 214 }
213 215 if (reportRSS) {
214 setTimeout(plLoadPage, 100); 216 initializeMemoryCollector(plLoadPage, 100);
217 } else {
218 setTimeout(plLoadPage, 100);
219 }
215 }, 500); 220 }, 500);
216 }; 221 };
217 222
218 browserWindow.addEventListener('load', browserLoadFunc, true); 223 browserWindow.addEventListener('load', browserLoadFunc, true);
219 } else { 224 } else {
220 gPaintWindow = window; 225 gPaintWindow = window;
221 window.resizeTo(winWidth, winHeight); 226 window.resizeTo(winWidth, winHeight);
222 227
223 content = document.getElementById('contentPageloader'); 228 content = document.getElementById('contentPageloader');
224 229
225 setTimeout(plLoadPage, delay); 230 if (reportRSS) {
231 initializeMemoryCollector(plLoadPage, delay);
232 } else {
233 setTimeout(plLoadPage, delay);
234 }
226 } 235 }
227 } catch(e) { 236 } catch(e) {
228 dumpLine(e); 237 dumpLine(e);
229 plStop(true); 238 plStop(true);
230 } 239 }
288 }; 297 };
289 } 298 }
290 299
291 if (timeout > 0) { 300 if (timeout > 0) {
292 timeoutEvent = setTimeout('loadFail()', timeout); 301 timeoutEvent = setTimeout('loadFail()', timeout);
293 } 302 }
303 if (reportRSS) {
304 collectMemory(startAndLoadURI, pageName);
305 } else {
306 startAndLoadURI(pageName);
307 }
308 }
309
310 function startAndLoadURI(pageName) {
294 start_time = Date.now(); 311 start_time = Date.now();
295 content.loadURI(pageName); 312 content.loadURI(pageName);
296 } 313 }
297 314
298 function loadFail() { 315 function loadFail() {
546 563
547 renderReport.recordTime(pageIndex, end - start); 564 renderReport.recordTime(pageIndex, end - start);
548 } 565 }
549 566
550 function plStop(force) { 567 function plStop(force) {
568 if (reportRSS) {
569 collectMemory(plStopAll, force);
570 } else {
571 plStopAll(force);
572 }
573 }
574
575 function plStopAll(force) {
551 try { 576 try {
552 if (force == false) { 577 if (force == false) {
553 pageIndex = 0; 578 pageIndex = 0;
554 if (cycle < NUM_CYCLES-1) { 579 if (cycle < NUM_CYCLES-1) {
555 cycle++; 580 cycle++;
569 dumpLine(renderReport.getReport(fmt)); 594 dumpLine(renderReport.getReport(fmt));
570 } 595 }
571 } 596 }
572 } catch (e) { 597 } catch (e) {
573 dumpLine(e); 598 dumpLine(e);
599 }
600
601 if (reportRSS) {
602 stopMemCollector();
574 } 603 }
575 604
576 if (content) { 605 if (content) {
577 content.removeEventListener('load', plLoadHandlerCapturing, true); 606 content.removeEventListener('load', plLoadHandlerCapturing, true);
578 content.removeEventListener('load', plLoadHandler, true); 607 content.removeEventListener('load', plLoadHandler, true);