Open Bug 104406 Opened 23 years ago Updated 6 years ago

stop using |id| attribute to identify elements for XUL template builder

Categories

(Core Graveyard :: RDF, defect, P3)

defect

Tracking

(Not tracked)

Future

People

(Reporter: waterson, Unassigned)

References

(Blocks 2 open bugs)

Details

(Keywords: memory-footprint, Whiteboard: [2012 Fall Equinox])

The XUL template builder is using the |id| attribute in the content model to keep track of elements in the content model. This is extremely expensive, because it involves setting the |id| attribute to the fully-qualified URI of the RDF resource to which the element corresponds. Instead, the content builder should maintain a map of RDF resources to content nodes (just a pointer-to-pointer dhash). When this is done, we should be able to simplify nsElementMap so that it maintains a mapping from |id| string to a _single_ content node (instead of the string-to-multiple node mapping we do now).
Blocks: 104400
Status: NEW → ASSIGNED
Keywords: footprint
Target Milestone: --- → mozilla0.9.7
Target Milestone: mozilla0.9.7 → mozilla0.9.8
Target Milestone: mozilla0.9.8 → mozilla0.9.9
Fixing this is harder than I thought at first: we'd need to revisit XUL that uses the `id' attribute for identification (e.g., the bookmarks menu), and provide similar functionality by adding a method to the `builder'; e.g., `getResourceForElement'. I'm going to FUTURE this bug because I'd rather not uproot everything right before leaving for two months. In the Mozilla product, the only place where this is likely to have an impact is for extremely large bookmarks menus (bug 85851), and I'm certain how significant that impact would be.
Blocks: 85851
Priority: -- → P3
Target Milestone: mozilla0.9.9 → Future
Blocks: 62907
tever is not RDF QA anymore
QA Contact: tever → nobody
waterson left the building
Assignee: waterson → nobody
Status: ASSIGNED → NEW
QA Contact: nobody → core.rdf
Is this still actual?
Whiteboard: [2012 Fall Equinox]
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.