@@ -230,69 +230,18 @@ function plInit() {
230
230
browserWindow . resizeTo ( winWidth , winHeight ) ;
231
231
browserWindow . moveTo ( 0 , 0 ) ;
232
232
browserWindow . focus ( ) ;
233
-
234
233
content = browserWindow . getBrowser ( ) ;
234
+ content . selectedBrowser . messageManager . loadFrameScript ( "chrome://pageloader/content/utils.js" , false , true ) ;
235
235
236
- // Load the frame script for e10s / IPC message support
237
- let contentScript = "data:,function _contentLoadHandler(e) { " +
238
- " if (e.originalTarget.defaultView == content) { " +
239
- " content.wrappedJSObject.tpRecordTime = function(t, s, n) { sendAsyncMessage('PageLoader:RecordTime', { time: t, startTime: s, testName: n }); }; " ;
240
- // setup idle-callback
241
- contentScript += "" +
242
- "var idleCallbackHandle; " +
243
- "function _idleCallbackHandler() { " +
244
- " content.window.cancelIdleCallback(idleCallbackHandle); " +
245
- " sendAsyncMessage('PageLoader:IdleCallbackReceived', {}); " +
246
- "}; " +
247
- "function _setIdleCallback() { " +
248
- " idleCallbackHandle = content.window.requestIdleCallback(_idleCallbackHandler); " +
249
- " sendAsyncMessage('PageLoader:IdleCallbackSet', {}); " +
250
- "}; " ;
236
+ // pick the right load handler
251
237
if ( useFNBPaint ) {
252
- contentScript += "" +
253
- "var gRetryCounter = 0; " +
254
- "function _contentFNBPaintHandler() { " +
255
- " x = content.window.performance.timing.timeToNonBlankPaint; " +
256
- " if (typeof x == 'undefined') { " +
257
- " sendAsyncMessage('PageLoader:FNBPaintError', {}); " +
258
- " } " +
259
- " if (x > 0) { " +
260
- " sendAsyncMessage('PageLoader:LoadEvent', { 'fnbpaint': x }); " +
261
- " } else { " +
262
- " gRetryCounter += 1; " +
263
- " if (gRetryCounter <= 10) { " +
264
- " dump('fnbpaint is not yet available (0), retry number ' + gRetryCounter + '...\\n'); " +
265
- " content.setTimeout(_contentFNBPaintHandler, 100); " +
266
- " } else { " +
267
- " dump('unable to get a value for fnbpaint after ' + gRetryCounter + ' retries\\n'); " +
268
- " sendAsyncMessage('PageLoader:FNBPaintError', {}); " +
269
- " } " +
270
- " } " +
271
- "}; " +
272
- "content.setTimeout(_contentFNBPaintHandler, 0); " ;
238
+ content . selectedBrowser . messageManager . loadFrameScript ( "chrome://pageloader/content/lh_fnbpaint.js" , false , true ) ;
273
239
} else if ( useMozAfterPaint ) {
274
- contentScript += "" +
275
- "function _contentPaintHandler() { " +
276
- " var utils = content.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIDOMWindowUtils); " +
277
- " if (utils.isMozAfterPaintPending) { " +
278
- " addEventListener('MozAfterPaint', function(e) { " +
279
- " removeEventListener('MozAfterPaint', arguments.callee, true); " +
280
- " sendAsyncMessage('PageLoader:LoadEvent', {}); " +
281
- " }, true); " +
282
- " } else { " +
283
- " sendAsyncMessage('PageLoader:LoadEvent', {}); " +
284
- " } " +
285
- "}; " +
286
- "content.setTimeout(_contentPaintHandler, 0); " ;
240
+ content . selectedBrowser . messageManager . loadFrameScript ( "chrome://pageloader/content/lh_moz.js" , false , true ) ;
287
241
} else {
288
- contentScript += " sendAsyncMessage('PageLoader:LoadEvent', {}); " ;
242
+ content . selectedBrowser . messageManager . loadFrameScript ( "chrome://pageloader/content/lh_dummy.js" , false , true ) ;
243
+
289
244
}
290
- contentScript += "" +
291
- " content.setTimeout(_setIdleCallback, 0); " +
292
- " }" +
293
- "} " +
294
- "addEventListener('load', _contentLoadHandler, true); " ;
295
- content . selectedBrowser . messageManager . loadFrameScript ( contentScript , false , true ) ;
296
245
content . selectedBrowser . messageManager . loadFrameScript ( "chrome://pageloader/content/talos-content.js" , false ) ;
297
246
content . selectedBrowser . messageManager . loadFrameScript ( "chrome://pageloader/content/tscroll.js" , false , true ) ;
298
247
content . selectedBrowser . messageManager . loadFrameScript ( "chrome://pageloader/content/Profiler.js" , false , true ) ;
@@ -675,7 +624,6 @@ function _loadHandler(fnbpaint = 0) {
675
624
}
676
625
677
626
var duration = ( end_time - start_time ) ;
678
-
679
627
TalosParentProfiler . pause ( "Bubbling load handler fired." ) ;
680
628
681
629
// does this page want to do its own timing?
0 commit comments