It looks like bug 769960 regressed Ts Paint and Ts MAX/MED Dirty Profile benchmarks by 3% to 6% on all desktop platforms, and also made the results noisier, e.g.:
Did we accidentally move some code to run before startup that used to run after startup?
Hmm, yeah, this did move some code to run earlier than it did before.
The pre-refactoring code (take a deep breath) used a <script> in browser.xul, which added a |load| event listener, which in turn added a 2 second setTimeout, which in turn finally did the actual init. See (now deleted) sb-loader.js.
The refactored code simply init()s in gBrowserInit._delayedStartup(). Which instead of 2 seconds after |onload|, is 1 event-loop spin. Some of this regression / noise may be due to us writing to a DB to add the Mozilla test entries:
Lots of (existing) clownshoes in this code. Sigh.
Let me look at removing addMozEntries(). Failing that, we can go back to cheating by initializing after another 2 seconds.
Assuming that dolske meant to take this!
Filed bug 779008 for the DB clownshoes. It's existing, needs a bit of thought, and it just one of many undesirable things with Safe Browsing.
So I'm just going to fix this regression by bumping the init() to occur later, as the original code did.
Created attachment 647375 [details] [diff] [review]
This restores init timing to what it was pre-refactor.
Comment on attachment 647375 [details] [diff] [review]
We'll probably want to watch numbers for a bit after landing to verify that it's indeed fixed.
Looks like this fixed it. Noise is gone, and Ts is actually a little lower than it was before!