Closed
Bug 53091
Opened 24 years ago
Closed 24 years ago
Tree selection performance is horrible
Categories
(Core :: XUL, defect, P2)
Tracking
()
RESOLVED
WORKSFORME
M18
People
(Reporter: hyatt, Assigned: hyatt)
Details
(Whiteboard: [need info])
The following rule pattern in CSS: tree:focus blah blah blah treerow { } is extremely inefficient and (in our implementation of CSS) results in a style-re-resolve on all descendants of the focused tree. Given that this is not easy to fix for 6.0, I would argue that these rules should be backed out of all skins for now. Note that the focus ring rule is ok, since it operates directly on the tree (and not on descendants of the tree), so it can stay. We would lose: (1) The dotted border around the current item when focused (2) The color change on selected items when trees are focused
Assignee | ||
Comment 1•24 years ago
|
||
Re-assigning to hangas and nominating for nsbeta3.
Assignee: hyatt → hangas
Keywords: nsbeta3
Comment 2•24 years ago
|
||
Point well taken. Just to note, there is only one descendant combinator in the tree focus selection rules, e.g. tree:focus > treechildren treeitem[selected="true"] > treerow ... not three as in the example you gave. By the way, I've changed the rules of focus rings quit a bit. No descendant combinators, but plenty of long series of child combinators, e.g. #folderTree > treehead > treerow > .treecell-header ... are these reasonably efficient?
Comment 3•24 years ago
|
||
cc'ing andreww
Assignee | ||
Comment 4•24 years ago
|
||
Nope. Anything of the form tree:focus with anything after it, be it a child or descendant is going to be too slow.
Assignee | ||
Comment 5•24 years ago
|
||
Actually, let me study the CSS implementation so that I can try to answer this extremely accurately. For now the row rules should definitely go.
Assignee | ||
Comment 6•24 years ago
|
||
Ok, hold up. I think something is going wrong with focus here that's making this worse. Stay tuned.
Assignee | ||
Comment 7•24 years ago
|
||
Yay, I'm glad i kept looking at this! The rules can stay. This is actually a problem with :focus and :active in nsEventStateManager.cpp. I have a fix. Part of the slowdown was also a problem with :active being incorrectly applied (and slowing down the tree for :focus cases). A happy side-effect of this fix is that it also makes twisties and scrollbars in tree views properly go into :active now.
Assignee: hangas → hyatt
Comment 8•24 years ago
|
||
Dave, will this affect the :active state on treecells as well? Ben and I have attempted to make treecells appear pressed when clicked, but they have never matched any CSS rules like treecell:active.
Comment 9•24 years ago
|
||
nsbeta3+, This is one of the smoking gun dependencies for tree performance, which seems to be a dogfood issue for several engineers, and probably should be nsbeta3+ in its own right.
Priority: P3 → P2
Whiteboard: [nsbeta3+]
Target Milestone: --- → M18
Assignee | ||
Updated•24 years ago
|
Status: NEW → ASSIGNED
Priority: P2 → P3
Summary: Back out all tree:focus rules with descendants from skins → Tree selection performance is horrible
Whiteboard: [nsbeta3+]
Assignee | ||
Comment 10•24 years ago
|
||
Oops. Blew away trudelle's nsbeta3+ of the bug. Putting it back.
Whiteboard: [nsbeta3+]
Assignee | ||
Updated•24 years ago
|
Priority: P3 → P2
Comment 11•24 years ago
|
||
So should I, or should I not, remove the accused selectors from the modern and classic themes?
Assignee | ||
Comment 12•24 years ago
|
||
They're ok. Keep 'em.
Assignee | ||
Comment 13•24 years ago
|
||
Keep 'em. I have the fix in hand for the nsEventStateManager.cpp.
Assignee | ||
Comment 14•24 years ago
|
||
fixed.
Status: ASSIGNED → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
Comment 15•24 years ago
|
||
Great! tree:focus elements are very useful.
Comment 16•24 years ago
|
||
verified fixed win32 092005, linux 092013, mac 091920
Status: RESOLVED → VERIFIED
Comment 17•24 years ago
|
||
reopening and changing OS to linux. linux mail/news is not usable because of this problem.
Status: VERIFIED → REOPENED
OS: Windows NT → Linux
Resolution: FIXED → ---
Whiteboard: [nsbeta3+]
Assignee | ||
Comment 18•24 years ago
|
||
jud, are you using a debug or an optimized build?
Assignee | ||
Comment 19•24 years ago
|
||
I suspect joki's hover changes as being the culprit here.
Comment 20•24 years ago
|
||
nominating for rtm, but need info on exactly how to reproduce.
Keywords: rtm
Whiteboard: [need info]
Comment 21•24 years ago
|
||
resolving as wfm
Status: REOPENED → RESOLVED
Closed: 24 years ago → 24 years ago
Resolution: --- → WORKSFORME
Component: XP Toolkit/Widgets: Trees → XUL
QA Contact: jrgmorrison → xptoolkit.widgets
You need to log in
before you can comment on or make changes to this bug.
Description
•