Open Bug 63258 Opened 24 years ago Updated 2 years ago

Over 100k of XUL code was not accessed after loading 60 of the top 100 using viewer

Categories

(Core :: XUL, defect, P5)

defect

Tracking

()

Future

People

(Reporter: kmcclusk, Unassigned)

Details

(Keywords: memory-footprint)

In an embedded application only a subset of the XUL code is needed. We need to add #ifdef's to eliminate the non-accessed XUL code from embed builds. The following files in layout\xul\base\src were not accessed after loading 60 of the top 100 websites using viewer. file lines nsBoxLayout.h 1 nsBoxObject.cpp 198 nsBrowserBoxObject.cpp 34 nsBulletinBoardLayout.cpp 138 nsDeckFrame.cpp 173 nsDeckFrame.h 4 nsEditorBoxObject.cpp 39 nsFontPickerFrame.cpp 34 nsFontPickerFrame.h 3 nsFrameNavigator.cpp 60 nsGridLayout.cpp 96 nsGrippyFrame.cpp 79 nsIFrameBoxObject.cpp 33 nsIMenuParent.h 1 nsIMonument.h 2 nsIXULTreeSlice.h 1 nsLeafBoxFrame.h 1 nsMenuBarFrame.cpp 361 nsMenuBarFrame.h 9 nsMenuBarListener.cpp 147 nsMenuBoxObject.cpp 50 nsMenuDismissalListener.cpp 79 nsMenuDismissalListener.h 6 nsMenuFrame.cpp 904 nsMenuFrame.h 15 nsMenuListener.cpp 113 nsMenuPopupFrame.cpp 752 nsMenuPopupFrame.h 9 nsMonumentLayout.cpp 396 nsMonumentLayout.h 18 nsObeliskLayout.cpp 227 nsPopupSetBoxObject.cpp 82 nsPopupSetFrame.cpp 390 nsPopupSetFrame.h 4 nsProgressMeterFrame.cpp 47 nsResizerFrame.cpp 142 nsRootBoxFrame.cpp 73 nsScrollBoxObject.cpp 130 nsSpinnerFrame.cpp 34 nsSpinnerFrame.h 3 nsSplitterFrame.cpp 579 nsSplitterFrame.h 6 nsStackFrame.h 4 nsTempleLayout.cpp 122 nsTextBoxFrame.cpp 308 nsTitleBarFrame.cpp 88 nsTitleFrame.cpp 15 nsTitleFrame.h 3 nsTitledBoxFrame.cpp 98 nsTreeBoxObject.cpp 103 nsTreeIndentationFrame.cpp 56 nsTreeItemDragCapturer.cpp 160 nsTreeLayout.cpp 185 nsXULTreeCellFrame.cpp 84 nsXULTreeFrame.cpp 181 nsXULTreeGroupFrame.cpp 493 nsXULTreeGroupFrame.h 6 nsXULTreeOuterGroupFrame.cpp 753 nsXULTreeOuterGroupFrame.h 33 nsXULTreeSliceFrame.cpp 28 nsXULTreeSliceFrame.h 4
Added footprint keyword
Keywords: footprint
rather than ifdeffing code, from a build configurability standpoint, it would be better to factor the unused stuff into files that could be optionally built.
Lots of issues on this one. Do we do conditional compile? What if you have XUL form controls? What if the skin that defines the scrollbar used a control that we took out? Perhaps we could conditionally compile the frame constructor to support only a subsed of xul that is documented. Or even better we can make frames work across DLLs and put XUL or parts of it in another DLL.
Status: NEW → ASSIGNED
Target Milestone: --- → mozilla0.8
->moz0.9, should consider reassigning to someone who could get to this sooner.
Target Milestone: mozilla0.8 → mozilla0.9
Sorry about the spam. An unset priority should be less than P5.
Priority: -- → P5
->hyatt. Is Waterson still going to migrate XUL content model features into XML? If so, is the rest of this high priority? Also, Eric sez doing this right would require a separate build process, which is not planned for embedding.
Assignee: evaughan → hyatt
Status: ASSIGNED → NEW
Target Milestone: mozilla0.9 → ---
->mozilla1.1
Target Milestone: --- → mozilla1.1
retargeting
Target Milestone: mozilla1.1alpha → Future
Component: XP Toolkit/Widgets: XUL → XUL
QA Contact: jrgmorrison → xptoolkit.widgets
Assignee: hyatt → nobody
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.