Closed
Bug 386380
Opened 18 years ago
Closed 18 years ago
Txul regresssion after XUL popup rewrite landed
Categories
(Core :: XUL, defect)
Core
XUL
Tracking
()
RESOLVED
FIXED
People
(Reporter: RyanVM, Assigned: enndeakin)
References
Details
(Keywords: perf, regression)
Attachments
(2 files)
10.72 KB,
patch
|
roc
:
review+
roc
:
superreview+
|
Details | Diff | Splinter Review |
1.50 KB,
patch
|
roc
:
review+
roc
:
superreview+
|
Details | Diff | Splinter Review |
Since the landing of Neil's XUL popup rewrite, Txul regressed by 3-7% across the board.
Flags: blocking1.9?
Assignee | ||
Comment 1•18 years ago
|
||
Likely caused by the creation of the popup frames (and more likely the views/widgets) right away rather than when they are opened. Might be possible to delay the widget creation until later though.
Assignee: nobody → enndeakin
Comment 2•18 years ago
|
||
Yeah, the widgets are what I'd guess to be the most likely problem...
Assignee | ||
Comment 3•18 years ago
|
||
This patch is the differences from the patch in bug 279703.
It cleans up the view creation code so that it creates a hidden view at the right position rather than creating one and fiddling with it, and moves the widget code so that widgets are created just before the popup opens.
This change improves the performance regression on my two machines, although I can't tell whether it fixes the regression completely and the results I'm getting are just noise, or whether there is still some work to be done.
I guess roc would be a suitable reviewer if bz is away, would be good to get this reviewed soon.
Attachment #270664 -
Flags: superreview?(roc)
Attachment #270664 -
Flags: review?(roc)
Comment on attachment 270664 [details] [diff] [review]
create widgets later
++ nsIView* ourView = GetView();
++ if (!ourView->HasWidget()) {
++ CreateWidgetForView(ourView);
++ }
Share this in an EnsureWidget helper function? That function should assert that the frame has no child frames, since trying to do this when the frame might have children with their own widgets would be disastrous.
Attachment #270664 -
Flags: superreview?(roc)
Attachment #270664 -
Flags: superreview+
Attachment #270664 -
Flags: review?(roc)
Attachment #270664 -
Flags: review+
Assignee | ||
Comment 5•18 years ago
|
||
An issue with the patch above is that submenus don't open properly. As they haven't had widgets created yet, the code in nsContainerFrame::SyncFrameViewProperties defaults to thinking that the view is visible, thus, not adjusting it properly when the view really is visible.
Not sure if the check for (windowType == eWindowType_popup) can just be an assertion.
Attachment #270731 -
Flags: superreview?(roc)
Attachment #270731 -
Flags: review?(roc)
Comment on attachment 270731 [details] [diff] [review]
Found an issue with the above patch
Yeah, I think the eWindowType_popup check can just be an assertion
Attachment #270731 -
Flags: superreview?(roc)
Attachment #270731 -
Flags: superreview+
Attachment #270731 -
Flags: review?(roc)
Attachment #270731 -
Flags: review+
Assignee | ||
Comment 7•18 years ago
|
||
These patches look to have fixed the txul regression, so marking this fixed.
Status: NEW → RESOLVED
Closed: 18 years ago
Resolution: --- → FIXED
Flags: blocking1.9? → blocking1.9+
Assignee | ||
Updated•18 years ago
|
Flags: in-testsuite-
Component: XP Toolkit/Widgets: Menus → XUL
QA Contact: xptoolkit.menus → xptoolkit.widgets
You need to log in
before you can comment on or make changes to this bug.
Description
•