annotate chrome/pageloader.js @ 204:4dec1e56c677

Bug 689518 - error in pageloader causes talos + e10s to timeout in certain cases. r=bear
author Joel Maher <jmaher@mozilla.com>
date Tue, 27 Sep 2011 09:29:52 -0400
parents 0b38ce037298
children eaef28f55f92
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
196
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
1 /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
2 /* ***** BEGIN LICENSE BLOCK *****
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
3 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
4 *
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
5 * The contents of this file are subject to the Mozilla Public License Version
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
6 * 1.1 (the "License"); you may not use this file except in compliance with
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
7 * the License. You may obtain a copy of the License at
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
8 * http://www.mozilla.org/MPL/
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
9 *
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
10 * Software distributed under the License is distributed on an "AS IS" basis,
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
11 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
12 * for the specific language governing rights and limitations under the
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
13 * License.
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
14 *
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
15 * The Original Code is tp.
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
16 *
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
17 * The Initial Developer of the Original Code is
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
18 * Mozilla Corporation.
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
19 * Portions created by the Initial Developer are Copyright (C) 2007
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
20 * the Initial Developer. All Rights Reserved.
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
21 *
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
22 * Contributor(s):
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
23 * Rob Helmer <rhelmer@mozilla.com>
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
24 * Vladimir Vukicevic <vladimir@mozilla.com>
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
25 *
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
26 * Alternatively, the contents of this file may be used under the terms of
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
27 * either the GNU General Public License Version 2 or later (the "GPL"), or
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
28 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
29 * in which case the provisions of the GPL or the LGPL are applicable instead
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
30 * of those above. If you wish to allow use of your version of this file only
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
31 * under the terms of either the GPL or the LGPL, and not to allow others to
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
32 * use your version of this file under the terms of the MPL, indicate your
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
33 * decision by deleting the provisions above and replace them with the notice
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
34 * and other provisions required by the GPL or the LGPL. If you do not delete
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
35 * the provisions above, a recipient may use your version of this file under
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
36 * the terms of any one of the MPL, the GPL or the LGPL.
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
37 *
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
38 * ***** END LICENSE BLOCK ***** */
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
39
198
59d4f04497dd package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents: 197
diff changeset
40 try {
59d4f04497dd package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents: 197
diff changeset
41 if (Cc === undefined) {
59d4f04497dd package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents: 197
diff changeset
42 var Cc = Components.classes;
59d4f04497dd package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents: 197
diff changeset
43 var Ci = Components.interfaces;
59d4f04497dd package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents: 197
diff changeset
44 }
59d4f04497dd package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents: 197
diff changeset
45 } catch (ex) {}
196
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
46
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
47 var NUM_CYCLES = 5;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
48
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
49 var pageFilterRegexp = null;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
50 var reportFormat = "js";
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
51 var useBrowser = true;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
52 var winWidth = 1024;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
53 var winHeight = 768;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
54
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
55 var doRenderTest = false;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
56
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
57 var pages;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
58 var pageIndex;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
59 var start_time;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
60 var cycle;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
61 var report;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
62 var renderReport;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
63 var noisy = false;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
64 var timeout = -1;
200
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
65 var delay = 250;
196
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
66 var timeoutEvent = -1;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
67 var running = false;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
68 var forceCC = true;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
69
202
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
70 var useMozAfterPaint = false;
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
71 var gPaintWindow = window;
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
72 var gPaintListener = false;
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
73
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
74 //when TEST_DOES_OWN_TIMING, we need to store the time from the page as MozAfterPaint can be slower than pageload
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
75 var gTime = -1;
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
76 var gStartTime = -1;
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
77
196
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
78 var content;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
79
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
80 var TEST_DOES_OWN_TIMING = 1;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
81
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
82 var browserWindow = null;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
83
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
84 // the io service
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
85 var gIOS = null;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
86
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
87 function plInit() {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
88 if (running) {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
89 return;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
90 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
91 running = true;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
92
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
93 cycle = 0;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
94
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
95 try {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
96 var args = window.arguments[0].wrappedJSObject;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
97
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
98 var manifestURI = args.manifest;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
99 var startIndex = 0;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
100 var endIndex = -1;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
101 if (args.startIndex) startIndex = parseInt(args.startIndex);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
102 if (args.endIndex) endIndex = parseInt(args.endIndex);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
103 if (args.numCycles) NUM_CYCLES = parseInt(args.numCycles);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
104 if (args.format) reportFormat = args.format;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
105 if (args.width) winWidth = parseInt(args.width);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
106 if (args.height) winHeight = parseInt(args.height);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
107 if (args.filter) pageFilterRegexp = new RegExp(args.filter);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
108 if (args.noisy) noisy = true;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
109 if (args.timeout) timeout = parseInt(args.timeout);
200
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
110 if (args.delay) delay = parseInt(args.delay);
202
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
111 if (args.mozafterpaint) useMozAfterPaint = true;
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
112
196
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
113 forceCC = !args.noForceCC;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
114 doRenderTest = args.doRender;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
115
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
116 if (forceCC &&
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
117 !window.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
118 .getInterface(Components.interfaces.nsIDOMWindowUtils)
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
119 .garbageCollect) {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
120 forceCC = false;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
121 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
122
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
123 gIOS = Cc["@mozilla.org/network/io-service;1"]
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
124 .getService(Ci.nsIIOService);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
125 if (args.offline)
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
126 gIOS.offline = true;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
127 var fileURI = gIOS.newURI(manifestURI, null, null);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
128 pages = plLoadURLsFromURI(fileURI);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
129
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
130 if (!pages) {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
131 dumpLine('tp: could not load URLs, quitting');
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
132 plStop(true);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
133 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
134
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
135 if (pages.length == 0) {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
136 dumpLine('tp: no pages to test, quitting');
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
137 plStop(true);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
138 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
139
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
140 if (startIndex < 0)
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
141 startIndex = 0;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
142 if (endIndex == -1 || endIndex >= pages.length)
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
143 endIndex = pages.length-1;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
144 if (startIndex > endIndex) {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
145 dumpLine("tp: error: startIndex >= endIndex");
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
146 plStop(true);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
147 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
148
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
149 pages = pages.slice(startIndex,endIndex+1);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
150 var pageUrls = pages.map(function(p) { return p.url.spec.toString(); });
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
151 report = new Report(pageUrls);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
152
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
153 if (doRenderTest)
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
154 renderReport = new Report(pageUrls);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
155
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
156 pageIndex = 0;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
157
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
158 if (args.useBrowserChrome) {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
159 var wwatch = Cc["@mozilla.org/embedcomp/window-watcher;1"]
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
160 .getService(Ci.nsIWindowWatcher);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
161 var blank = Cc["@mozilla.org/supports-string;1"]
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
162 .createInstance(Ci.nsISupportsString);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
163 blank.data = "about:blank";
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
164 browserWindow = wwatch.openWindow
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
165 (null, "chrome://browser/content/", "_blank",
201
bffb8b1b0948 bug 651659 (pageloader no longer creating browser windows with chrome) one small change and chrome returns! (take 1) p=anodelman r=jmaher
Alice Nodelman <alice@mozilla.com>
parents: 200
diff changeset
166 "chrome,all,dialog=no,width=" + winWidth + ",height=" + winHeight, blank);
196
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
167
202
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
168 gPaintWindow = browserWindow;
196
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
169 // get our window out of the way
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
170 window.resizeTo(10,10);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
171
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
172 var browserLoadFunc = function (ev) {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
173 browserWindow.removeEventListener('load', browserLoadFunc, true);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
174
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
175 // do this half a second after load, because we need to be
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
176 // able to resize the window and not have it get clobbered
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
177 // by the persisted values
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
178 setTimeout(function () {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
179 browserWindow.resizeTo(winWidth, winHeight);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
180 browserWindow.moveTo(0, 0);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
181 browserWindow.focus();
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
182
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
183 content = browserWindow.getBrowser();
200
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
184
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
185 // Load the frame script for e10s / IPC message support
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
186 if (content.getAttribute("remote") == "true") {
202
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
187 let contentScript = "data:,function _contentLoadHandler(e) { " +
200
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
188 " if (e.originalTarget.defaultView == content) { " +
202
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
189 " content.wrappedJSObject.tpRecordTime = function(t, s) { sendAsyncMessage('PageLoader:RecordTime', { time: t, startTime: s }); }; ";
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
190 if (useMozAfterPaint) {
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
191 contentScript += "" +
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
192 "function _contentPaintHandler() { " +
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
193 " var utils = content.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIDOMWindowUtils); " +
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
194 " if (utils.isMozAfterPaintPending) { " +
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
195 " addEventListener('MozAfterPaint', function(e) { " +
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
196 " removeEventListener('MozAfterPaint', arguments.callee, true); " +
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
197 " sendAsyncMessage('PageLoader:MozAfterPaint', {}); " +
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
198 " }, true); " +
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
199 " } else { " +
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
200 " sendAsyncMessage('PageLoader:MozAfterPaint', {}); " +
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
201 " } " +
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
202 "}; " +
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
203 "content.wrappedJSObject.setTimeout(_contentPaintHandler, 0); ";
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
204 } else {
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
205 contentScript += " sendAsyncMessage('PageLoader:Load', {}); ";
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
206 }
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
207 contentScript += "" +
200
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
208 " }" +
202
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
209 "} " +
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
210 "addEventListener('load', _contentLoadHandler, true); ";
200
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
211 content.messageManager.loadFrameScript(contentScript, false);
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
212 }
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
213
196
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
214 setTimeout(plLoadPage, 100);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
215 }, 500);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
216 };
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
217
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
218 browserWindow.addEventListener('load', browserLoadFunc, true);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
219 } else {
202
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
220 gPaintWindow = window;
196
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
221 window.resizeTo(winWidth, winHeight);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
222
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
223 content = document.getElementById('contentPageloader');
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
224
200
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
225 setTimeout(plLoadPage, delay);
196
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
226 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
227 } catch(e) {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
228 dumpLine(e);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
229 plStop(true);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
230 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
231 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
232
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
233 function plPageFlags() {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
234 return pages[pageIndex].flags;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
235 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
236
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
237 // load the current page, start timing
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
238 var removeLastAddedListener = null;
200
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
239 var removeLastAddedMsgListener = null;
196
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
240 function plLoadPage() {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
241 var pageName = pages[pageIndex].url.spec;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
242
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
243 if (removeLastAddedListener)
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
244 removeLastAddedListener();
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
245
200
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
246 if (removeLastAddedMsgListener)
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
247 removeLastAddedMsgListener();
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
248
196
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
249 if (plPageFlags() & TEST_DOES_OWN_TIMING) {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
250 // if the page does its own timing, use a capturing handler
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
251 // to make sure that we can set up the function for content to call
202
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
252
196
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
253 content.addEventListener('load', plLoadHandlerCapturing, true);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
254 removeLastAddedListener = function() {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
255 content.removeEventListener('load', plLoadHandlerCapturing, true);
202
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
256 if (useMozAfterPaint) {
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
257 content.removeEventListener("MozAfterPaint", plPaintedCapturing, true);
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
258 gPaintHandler = false;
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
259 }
196
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
260 };
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
261 } else {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
262 // if the page doesn't do its own timing, use a bubbling handler
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
263 // to make sure that we're called after the page's own onload() handling
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
264
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
265 // XXX we use a capturing event here too -- load events don't bubble up
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
266 // to the <browser> element. See bug 390263.
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
267 content.addEventListener('load', plLoadHandler, true);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
268 removeLastAddedListener = function() {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
269 content.removeEventListener('load', plLoadHandler, true);
202
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
270 if (useMozAfterPaint) {
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
271 gPaintWindow.removeEventListener("MozAfterPaint", plPainted, true);
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
272 gPaintHandler = false;
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
273 }
196
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
274 };
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
275 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
276
200
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
277 // If the test browser is remote (e10s / IPC) we need to use messages to watch for page load
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
278 if (content.getAttribute("remote") == "true") {
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
279 content.messageManager.addMessageListener('PageLoader:Load', plLoadHandlerMessage);
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
280 content.messageManager.addMessageListener('PageLoader:RecordTime', plRecordTimeMessage);
202
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
281 if (useMozAfterPaint)
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
282 content.messageManager.addMessageListener('PageLoader:MozAfterPaint', plPaintHandler);
200
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
283 removeLastAddedMsgListener = function() {
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
284 content.messageManager.removeMessageListener('PageLoader:Load', plLoadHandlerMessage);
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
285 content.messageManager.removeMessageListener('PageLoader:RecordTime', plRecordTimeMessage);
202
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
286 if (useMozAfterPaint)
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
287 content.messageManager.removeMessageListener('PageLoader:MozAfterPaint', plPaintHandler);
200
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
288 };
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
289 }
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
290
196
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
291 if (timeout > 0) {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
292 timeoutEvent = setTimeout('loadFail()', timeout);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
293 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
294 start_time = Date.now();
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
295 content.loadURI(pageName);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
296 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
297
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
298 function loadFail() {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
299 var pageName = pages[pageIndex].url.spec;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
300 dumpLine("__FAILTimeout exceeded on " + pageName + "__FAIL")
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
301 plStop(true);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
302 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
303
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
304 function plNextPage() {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
305 if (pageIndex < pages.length-1) {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
306 pageIndex++;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
307
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
308 if (forceCC) {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
309 var tccstart = new Date();
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
310 window.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
311 .getInterface(Components.interfaces.nsIDOMWindowUtils)
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
312 .garbageCollect();
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
313 var tccend = new Date();
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
314 report.recordCCTime(tccend - tccstart);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
315 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
316
200
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
317 setTimeout(plLoadPage, delay);
196
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
318 } else {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
319 plStop(false);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
320 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
321 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
322
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
323 function plRecordTime(time) {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
324 var pageName = pages[pageIndex].url.spec;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
325 var i = pageIndex
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
326 if (i < pages.length-1) {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
327 i++;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
328 } else {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
329 i = 0;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
330 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
331 var nextName = pages[i].url.spec;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
332 report.recordTime(pageIndex, time);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
333 if (noisy) {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
334 dumpLine("Cycle " + (cycle+1) + ": loaded " + pageName + " (next: " + nextName + ")");
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
335 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
336 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
337
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
338 function plLoadHandlerCapturing(evt) {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
339 // make sure we pick up the right load event
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
340 if (evt.type != 'load' ||
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
341 evt.originalTarget.defaultView.frameElement)
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
342 return;
202
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
343
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
344 //set the tpRecordTime function (called from test pages we load to store a global time.
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
345 content.contentWindow.wrappedJSObject.tpRecordTime = function (time, startTime) {
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
346 gTime = time;
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
347 gStartTime = startTime;
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
348 setTimeout(plWaitForPaintingCapturing, 0);
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
349 }
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
350
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
351 content.removeEventListener('load', plLoadHandlerCapturing, true);
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
352
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
353 setTimeout(plWaitForPaintingCapturing, 0);
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
354 }
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
355
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
356 function plWaitForPaintingCapturing() {
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
357 if (gPaintListener)
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
358 return;
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
359
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
360 var utils = gPaintWindow.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
361 .getInterface(Components.interfaces.nsIDOMWindowUtils);
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
362
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
363 if (utils.isMozAfterPaintPending && useMozAfterPaint) {
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
364 if (gPaintListener == false)
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
365 gPaintWindow.addEventListener("MozAfterPaint", plPaintedCapturing, true);
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
366 gPaintListener = true;
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
367 return;
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
368 }
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
369
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
370 _loadHandlerCapturing();
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
371 }
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
372
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
373 function plPaintedCapturing() {
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
374 gPaintWindow.removeEventListener("MozAfterPaint", plPaintedCapturing, true);
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
375 gPaintListener = false;
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
376 _loadHandlerCapturing();
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
377 }
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
378
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
379 function _loadHandlerCapturing() {
196
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
380 if (timeout > 0) {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
381 clearTimeout(timeoutEvent);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
382 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
383
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
384 if (!(plPageFlags() & TEST_DOES_OWN_TIMING)) {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
385 dumpLine("tp: Capturing onload handler used with page that doesn't do its own timing?");
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
386 plStop(true);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
387 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
388
202
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
389 if (useMozAfterPaint) {
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
390 if (gStartTime != null && gStartTime >= 0) {
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
391 gTime = (new Date()) - gStartTime;
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
392 gStartTime = -1;
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
393 }
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
394 }
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
395
196
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
396 // set up the function for content to call
202
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
397 if (gTime >= 0) {
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
398 plRecordTime(gTime);
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
399 gTime = -1;
200
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
400 setTimeout(plNextPage, delay);
196
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
401 };
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
402 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
403
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
404 // the onload handler
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
405 function plLoadHandler(evt) {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
406 // make sure we pick up the right load event
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
407 if (evt.type != 'load' ||
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
408 evt.originalTarget.defaultView.frameElement)
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
409 return;
202
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
410
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
411 content.removeEventListener('load', plLoadHandler, true);
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
412 setTimeout(waitForPainted, 0);
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
413 }
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
414
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
415 // This is called after we have received a load event, now we wait for painted
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
416 function waitForPainted() {
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
417
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
418 var utils = gPaintWindow.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
419 .getInterface(Components.interfaces.nsIDOMWindowUtils);
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
420
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
421 if (!utils.isMozAfterPaintPending || !useMozAfterPaint) {
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
422 _loadHandler();
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
423 return;
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
424 }
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
425
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
426 if (gPaintListener == false)
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
427 gPaintWindow.addEventListener("MozAfterPaint", plPainted, true);
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
428 gPaintListener = true;
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
429 }
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
430
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
431 function plPainted() {
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
432 gPaintWindow.removeEventListener("MozAfterPaint", plPainted, true);
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
433 gPaintListener = false;
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
434 _loadHandler();
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
435 }
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
436
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
437 function _loadHandler() {
196
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
438 if (timeout > 0) {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
439 clearTimeout(timeoutEvent);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
440 }
197
b4da709724e1 Bug 379233 - check offset before recording page load complete - r=vladimir
Alice Nodelman <alice@mozilla.com>
parents: 196
diff changeset
441 var docElem;
b4da709724e1 Bug 379233 - check offset before recording page load complete - r=vladimir
Alice Nodelman <alice@mozilla.com>
parents: 196
diff changeset
442 if (browserWindow)
b4da709724e1 Bug 379233 - check offset before recording page load complete - r=vladimir
Alice Nodelman <alice@mozilla.com>
parents: 196
diff changeset
443 docElem = browserWindow.frames["content"].document.documentElement;
b4da709724e1 Bug 379233 - check offset before recording page load complete - r=vladimir
Alice Nodelman <alice@mozilla.com>
parents: 196
diff changeset
444 else
b4da709724e1 Bug 379233 - check offset before recording page load complete - r=vladimir
Alice Nodelman <alice@mozilla.com>
parents: 196
diff changeset
445 docElem = content.contentDocument.documentElement;
b4da709724e1 Bug 379233 - check offset before recording page load complete - r=vladimir
Alice Nodelman <alice@mozilla.com>
parents: 196
diff changeset
446 var width;
b4da709724e1 Bug 379233 - check offset before recording page load complete - r=vladimir
Alice Nodelman <alice@mozilla.com>
parents: 196
diff changeset
447 if ("getBoundingClientRect" in docElem) {
b4da709724e1 Bug 379233 - check offset before recording page load complete - r=vladimir
Alice Nodelman <alice@mozilla.com>
parents: 196
diff changeset
448 width = docElem.getBoundingClientRect().width;
b4da709724e1 Bug 379233 - check offset before recording page load complete - r=vladimir
Alice Nodelman <alice@mozilla.com>
parents: 196
diff changeset
449 } else if ("offsetWidth" in docElem) {
b4da709724e1 Bug 379233 - check offset before recording page load complete - r=vladimir
Alice Nodelman <alice@mozilla.com>
parents: 196
diff changeset
450 width = docElem.offsetWidth;
b4da709724e1 Bug 379233 - check offset before recording page load complete - r=vladimir
Alice Nodelman <alice@mozilla.com>
parents: 196
diff changeset
451 }
b4da709724e1 Bug 379233 - check offset before recording page load complete - r=vladimir
Alice Nodelman <alice@mozilla.com>
parents: 196
diff changeset
452
196
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
453 var end_time = Date.now();
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
454 var time = (end_time - start_time);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
455
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
456 // does this page want to do its own timing?
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
457 // if so, we shouldn't be here
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
458 if (plPageFlags() & TEST_DOES_OWN_TIMING) {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
459 dumpLine("tp: Bubbling onload handler used with page that does its own timing?");
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
460 plStop(true);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
461 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
462
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
463 plRecordTime(time);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
464
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
465 if (doRenderTest)
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
466 runRenderTest();
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
467
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
468 plNextPage();
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
469 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
470
200
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
471 // the onload handler used for remote (e10s) browser
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
472 function plLoadHandlerMessage(message) {
202
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
473 _loadHandlerMessage();
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
474 }
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
475
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
476 // the mozafterpaint handler for remote (e10s) browser
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
477 function plPaintHandler(message) {
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
478 _loadHandlerMessage();
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
479 }
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
480
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
481 // the core handler for remote (e10s) browser
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
482 function _loadHandlerMessage() {
200
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
483 if (timeout > 0) {
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
484 clearTimeout(timeoutEvent);
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
485 }
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
486
202
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
487 var time = -1;
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
488
200
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
489 // does this page want to do its own timing?
202
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
490 if ((plPageFlags() & TEST_DOES_OWN_TIMING)) {
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
491 if (typeof(gStartTime) != "number")
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
492 gStartTime = Date.parse(gStartTime);
200
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
493
202
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
494 if (gTime >= 0) {
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
495 if (useMozAfterPaint && gStartTime >= 0) {
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
496 gTime = Date.now() - gStartTime;
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
497 gStartTime = -1;
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
498 } else if (useMozAfterPaint) {
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
499 gTime = -1;
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
500 }
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
501 time = gTime;
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
502 gTime = -1;
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
503 }
200
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
504
202
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
505 } else {
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
506 var end_time = Date.now();
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
507 time = (end_time - start_time);
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
508 }
200
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
509
202
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
510 if (time >= 0) {
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
511 plRecordTime(time);
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
512 if (doRenderTest)
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
513 runRenderTest();
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
514
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
515 plNextPage();
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
516 }
200
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
517 }
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
518
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
519 // the record time handler used for remote (e10s) browser
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
520 function plRecordTimeMessage(message) {
202
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
521 gTime = message.json.time;
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
522 if (useMozAfterPaint) {
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
523 gStartTime = message.json.startTime;
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
524 }
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
525 _loadHandlerMessage();
200
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
526 }
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
527
196
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
528 function runRenderTest() {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
529 const redrawsPerSample = 500;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
530
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
531 if (!Ci.nsIDOMWindowUtils)
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
532 return;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
533
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
534 var win;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
535
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
536 if (browserWindow)
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
537 win = content.contentWindow;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
538 else
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
539 win = window;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
540 var wu = win.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowUtils);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
541
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
542 var start = Date.now();
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
543 for (var j = 0; j < redrawsPerSample; j++)
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
544 wu.redraw();
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
545 var end = Date.now();
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
546
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
547 renderReport.recordTime(pageIndex, end - start);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
548 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
549
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
550 function plStop(force) {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
551 try {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
552 if (force == false) {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
553 pageIndex = 0;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
554 if (cycle < NUM_CYCLES-1) {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
555 cycle++;
200
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
556 setTimeout(plLoadPage, delay);
196
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
557 return;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
558 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
559
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
560 var formats = reportFormat.split(",");
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
561
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
562 if (!renderReport) {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
563 for each (var fmt in formats)
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
564 dumpLine(report.getReport(fmt));
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
565 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
566 else {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
567 dumpLine ("*************** Render report *******************");
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
568 for each (var fmt in formats)
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
569 dumpLine(renderReport.getReport(fmt));
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
570 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
571 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
572 } catch (e) {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
573 dumpLine(e);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
574 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
575
200
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
576 if (content) {
202
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
577 content.removeEventListener('load', plLoadHandlerCapturing, true);
196
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
578 content.removeEventListener('load', plLoadHandler, true);
202
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
579 if (useMozAfterPaint)
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
580 content.removeEventListener("MozAfterPaint", plPaintedCapturing, true);
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
581 content.removeEventListener("MozAfterPaint", plPainted, true);
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
582
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
583 if (content.getAttribute("remote") == "true") {
200
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
584 content.messageManager.removeMessageListener('PageLoader:Load', plLoadHandlerMessage);
202
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
585 content.messageManager.removeMessageListener('PageLoader:RecordTime', plRecordTimeMessage);
204
4dec1e56c677 Bug 689518 - error in pageloader causes talos + e10s to timeout in certain cases. r=bear
Joel Maher <jmaher@mozilla.com>
parents: 202
diff changeset
586 if (useMozAfterPaint)
202
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
587 content.messageManager.removeMessageListener('PageLoader:MozAfterPaint', plPaintHandler);
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
588
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
589 content.messageManager.loadFrameScript("data:,removeEventListener('load', _contentLoadHandler, true);", false);
0b38ce037298 Bug 661918 - Tp should wait for MozAfterPaint after onload. r=tnikkel,vlad
Joel Maher <jmaher@mozilla.com>
parents: 201
diff changeset
590 }
200
31249cbe4f19 Bug 629691 - pageloader.xpi does not support e10s for Tp chrome testing. r=jmaher
Joel Maher <jmaher@mozilla.com>
parents: 198
diff changeset
591 }
196
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
592
198
59d4f04497dd package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents: 197
diff changeset
593 if (MozillaFileLogger)
59d4f04497dd package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents: 197
diff changeset
594 MozillaFileLogger.close();
59d4f04497dd package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents: 197
diff changeset
595
196
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
596 goQuitApplication();
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
597 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
598
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
599 /* Returns array */
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
600 function plLoadURLsFromURI(manifestUri) {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
601 var fstream = Cc["@mozilla.org/network/file-input-stream;1"]
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
602 .createInstance(Ci.nsIFileInputStream);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
603 var uriFile = manifestUri.QueryInterface(Ci.nsIFileURL);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
604
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
605 fstream.init(uriFile.file, -1, 0, 0);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
606 var lstream = fstream.QueryInterface(Ci.nsILineInputStream);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
607
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
608 var d = [];
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
609
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
610 var lineNo = 0;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
611 var line = {value:null};
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
612 var more;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
613 do {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
614 lineNo++;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
615 more = lstream.readLine(line);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
616 var s = line.value;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
617
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
618 // strip comments
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
619 s = s.replace(/#.*/, '');
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
620
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
621 // strip leading and trailing whitespace
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
622 s = s.replace(/^\s*/, '').replace(/s\*$/, '');
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
623
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
624 if (!s)
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
625 continue;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
626
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
627 var flags = 0;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
628 var urlspec = s;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
629
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
630 // split on whitespace, and figure out if we have any flags
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
631 var items = s.split(/\s+/);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
632 if (items[0] == "include") {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
633 if (items.length != 2) {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
634 dumpLine("tp: Error on line " + lineNo + " in " + manifestUri.spec + ": include must be followed by the manifest to include!");
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
635 return null;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
636 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
637
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
638 var subManifest = gIOS.newURI(items[1], null, manifestUri);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
639 if (subManifest == null) {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
640 dumpLine("tp: invalid URI on line " + manifestUri.spec + ":" + lineNo + " : '" + line.value + "'");
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
641 return null;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
642 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
643
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
644 var subItems = plLoadURLsFromURI(subManifest);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
645 if (subItems == null)
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
646 return null;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
647 d = d.concat(subItems);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
648 } else {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
649 if (items.length == 2) {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
650 if (items[0].indexOf("%") != -1)
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
651 flags |= TEST_DOES_OWN_TIMING;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
652
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
653 urlspec = items[1];
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
654 } else if (items.length != 1) {
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
655 dumpLine("tp: Error on line " + lineNo + " in " + manifestUri.spec + ": whitespace must be %-escaped!");
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
656 return null;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
657 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
658
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
659 var url = gIOS.newURI(urlspec, null, manifestUri);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
660
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
661 if (pageFilterRegexp && !pageFilterRegexp.test(url.spec))
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
662 continue;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
663
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
664 d.push({ url: url,
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
665 flags: flags });
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
666 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
667 } while (more);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
668
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
669 return d;
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
670 }
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
671
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
672 function dumpLine(str) {
198
59d4f04497dd package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents: 197
diff changeset
673 if (MozillaFileLogger)
59d4f04497dd package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents: 197
diff changeset
674 MozillaFileLogger.log(str + "\n");
196
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
675 dump(str);
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
676 dump("\n");
dd0018bc27de Copy the pageloader from CVS and into a bundle format (single chrome.manifest).
Benjamin Smedberg <benjamin@smedbergs.us>
parents:
diff changeset
677 }