Closed
Bug 627851
Opened 13 years ago
Closed 13 years ago
PreferencesView._delayedInit is not delayed enough
Categories
(Firefox for Android Graveyard :: General, defect)
Firefox for Android Graveyard
General
Tracking
(Not tracked)
VERIFIED
FIXED
People
(Reporter: mbrubeck, Assigned: mbrubeck)
References
Details
(Keywords: perf, Whiteboard: [fennec-checkin-postb4])
Attachments
(1 file)
2.08 KB,
patch
|
mfinkle
:
review+
|
Details | Diff | Splinter Review |
We wait for a "select" event on the preference panel to initialize some of the prefs UI. However, during browser startup, a getBoundingClientRect call causes the panel's XBL constructors to run, and the <menulist> constructors cause "select" events that bubble up to the panel, causing the initialization to run early. Because the prefs panel is initially selected, it doesn't actually fire any event when you first open the panel. So we can't just filter the events; we'll need to add a new "panel open" event instead.
Comment 1•13 years ago
|
||
I assume the getBoundingClientRect call happens after we make the browser tools panels hidden=false (id="panel-container"). Looking at PreferencesView._delayedInit, we don't seem to be doing too much work in there. It could be worse. I am concerned that the XBL constructors are firing while the panel container is still supposed to be hidden. That would be much worse since the <setting>s are slow to init and do hurt Ts. Which is why we made them hidden before. One simple idea could be to make the <richlistbox id="prefs-list"> hidden by default too. Then in PreferencesView._delayedInit, we could make it hidden=false Hopefully, the hidden list would not get any XBL initialized.
Assignee | ||
Comment 2•13 years ago
|
||
I verified that the other panel controllers don't suffer from this bug (they're protected from it because their panels aren't selected during startup). (In reply to comment #1) > I assume the getBoundingClientRect call happens after we make the browser tools > panels hidden=false (id="panel-container"). Looks like that's correct. _delayedInit is not called until after UIReadyDelayed is fired, so this is out of the path of the first page load (but still earlier than it could be). > Looking at PreferencesView._delayedInit, we don't seem to be doing too much > work in there. It could be worse. Yeah, _delayedInit takes only 7ms on my Galaxy Tab so the impact is pretty small. (I could imagine us doing more work there in the future, though.) > I am concerned that the XBL constructors are > firing while the panel container is still supposed to be hidden. That would be > much worse since the <setting>s are slow to init and do hurt Ts. Fortunately, this does not seem to be the case.
Attachment #505946 -
Flags: review?(mark.finkle)
Comment 3•13 years ago
|
||
Comment on attachment 505946 [details] [diff] [review] patch nice
Attachment #505946 -
Flags: review?(mark.finkle) → review+
Updated•13 years ago
|
Whiteboard: [fennec-checkin-postb4]
Assignee | ||
Comment 4•13 years ago
|
||
http://hg.mozilla.org/mobile-browser/rev/090018acbd6f
Status: ASSIGNED → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Comment 5•13 years ago
|
||
Is this verified?
Mozilla/5.0 (Android; Linux armv71; rv6.0a1) Gecko/20110506 Firefox/6.0a1 Fennec/6.0a1 Device: Droid 2 OS: Android 2.2 Mozilla/5.0 (Android; Linux armv71; rv6.0a1) Gecko/20110506 Firefox/6.0a1 Fennec/6.0a1 Device: Thunderbolt OS: Android 2.2
Status: RESOLVED → VERIFIED
You need to log in
before you can comment on or make changes to this bug.
Description
•