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.