If you think a bug might affect users in the 57 release, please set the correct tracking and status flags for Release Management.

Make talos warmup run wait until 5s after delayedStartup

NEW
Unassigned

Status

Testing
Talos
3 years ago
2 years ago

People

(Reporter: Gijs, Unassigned)

Tracking

(Blocks: 1 bug)

Trunk
Points:
---

Firefox Tracking Flags

(firefox40 affected)

Details

(Whiteboard: [talos_wishlist])

(Reporter)

Description

3 years ago
Moving to a new bug for clarity of discussion.

(In reply to Joel Maher (:jmaher) from bug 1124217 comment #17)
> I am fine changing the warmup run to wait a bit longer, right now it loads
> up and executes some javascript, then quites- this is all in the 'onload'
> handler.
> 
> All of this was designed before we pulled things out of the initialization
> path.  how much longer should we wait?

Well, the browser will do async stuff in the delayedStartup handler in browser.js. And even that will then trigger more async stuff.

I would listen for the delayedStartup observer notification, then wait 5 seconds, then run code and quit. That should leave sufficient time for all the browser's "normal" tasks to complete correctly. CC'ing some folks who may have $opinions. :-)
I have tried a variety of things to get an observer:
Services.obs.addObserver(warmup, "browser-delayed-startup-finished", false);

to work, all attempts are unsuccessful.  Maybe this needs to be in an addon or something?  the warmup (getinfo.html) is a raw html page, should I create an addon for this?

Any other guidance would be appreciated.
(Reporter)

Comment 2

3 years ago
(In reply to Joel Maher (:jmaher) from comment #1)
> I have tried a variety of things to get an observer:
> Services.obs.addObserver(warmup, "browser-delayed-startup-finished", false);
> 
> to work, all attempts are unsuccessful.  Maybe this needs to be in an addon
> or something?  the warmup (getinfo.html) is a raw html page, should I create
> an addon for this?
> 
> Any other guidance would be appreciated.

Delayed startup would require chrome privileges to wait for. Are you able to access Services.jsm from the html page at all? That would somewhat surprise me, but I don't know where to find getinfo.html...

I'm a little worried that adding an add-on would alter startup timings etc. Do we already have an add-on in profiles used for tpaint/ts_paint and friends? I kind of assumed so, seeing as other things like sessionstore and chrome-level paint events would already require chrome privileges...
Flags: needinfo?(jmaher)
here is the code for getinfo:
http://hg.mozilla.org/build/talos/file/tip/talos/getInfo.html

we set some preferences to help out, specifically:
http://hg.mozilla.org/build/talos/file/tip/talos/PerfConfigurator.py#l286

This allows us to log and quit:
log: http://hg.mozilla.org/build/talos/file/85d4f8ef4810/talos/scripts/MozillaFileLogger.js
quit: http://hg.mozilla.org/build/talos/file/85d4f8ef4810/talos/page_load_test/quit.js (uses observers)

quite possibly we can make it work.  Regarding an addon- this could affect times.  I had experimented with adding special powers, but the numbers were too noisy after adding it.  I suspect a real simple addon might do the trick though.  

If you have other thoughts, let me know!
Flags: needinfo?(jmaher)
(Reporter)

Comment 4

3 years ago
Ah, those files have UniversalXPConnect privileges... that should do the trick, though |Services| won't exist without you importing it (Components.utils.import("resource://gre/modules/Services.jsm")) - alternatively, use CC and Ci directly to just grab a hold of the observer service.
despite all my hacking I am not able to figure this out.  I verified that Services.obs.addObserver is a native code function and accessible, but my observer never gets called.

I am thinking of marking this as wontfix, but would gladly accept a patch.
Blocks: 1088251
Whiteboard: [talos_wishlist]
You need to log in before you can comment on or make changes to this bug.