Closed Bug 85602 Opened 23 years ago Closed 23 years ago

FindContentForDocShell walks entire content tree

Categories

(Core :: DOM: UI Events & Focus Handling, defect, P3)

x86
Windows 2000
defect

Tracking

()

VERIFIED FIXED
mozilla0.9.6

People

(Reporter: bryner, Assigned: bryner)

References

Details

(Keywords: access, perf)

nsEventStateManager::FindContentForDocShell walks the entire content tree to find the content mapped to the given docshell. I propose that a much faster way to do this would be to walk the list of content nodes that have mapped subshells, since this will generally be a much smaller list. This functionality should be done in the PresShell so we don't have to make mSubShellMap public. Looking at the interface of the nsDST object used to hold this map, it provides an Iterate() method that we can use to look at all of the content nodes with subshells. This works by calling the nsDSTNodeFunctor object you pass to Enumerate repeatedly with each key in the table. I'd also propose, for efficiency, that we modify the nsDSTNodeFunctor so that we can return a boolean value of whether to continue iterating.
Keywords: perf
Tomorrow is my last day until Aug 13, I don't think you want to assign this bug to me, I probably won't get to it until the end of Aug, if then.
Status: NEW → ASSIGNED
Target Milestone: --- → Future
p.s. <jag> at #mozilla also saw this affect and I don't know exactly what build he is using.
Assignee: rods → bryner
Status: ASSIGNED → NEW
Priority: -- → P3
Target Milestone: Future → mozilla0.9.6
talked with jst about how we can fix this... taking for 0.9.6.
Status: NEW → ASSIGNED
Keywords: access
It's the "outer" content node that we're looking for here. For example, the <browser> or <iframe> content node from the parent docshell's document. Is there any reason the docshell can't keep track of this?
Depends on: 104977
fixed
Status: ASSIGNED → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
rs vrfy
Status: RESOLVED → VERIFIED
Component: Keyboard: Navigation → User events and focus handling
You need to log in before you can comment on or make changes to this bug.