1# This Source Code Form is subject to the terms of the Mozilla Public
2# License, v. 2.0. If a copy of the MPL was not distributed with this
3# file, You can obtain one at http://mozilla.org/MPL/2.0/.
4# Frame class definitions, used to generate FrameIdList.h and FrameTypeList.h
5
6from FrameClass import Frame, AbstractFrame, LEAF, NOT_LEAF, DYNAMIC_LEAF
7
8FRAME_CLASSES = [
9    Frame("BRFrame", "Br", LEAF),
10    Frame("DetailsFrame", "Details", NOT_LEAF),
11    Frame("nsBCTableCellFrame", "TableCell", NOT_LEAF),
12    Frame("nsBackdropFrame", "Backdrop", LEAF),
13    Frame("nsBlockFrame", "Block", NOT_LEAF),
14    Frame("nsBox", "None", NOT_LEAF),
15    Frame("nsBoxFrame", "Box", NOT_LEAF),
16    Frame("nsBulletFrame", "Bullet", LEAF),
17    Frame("nsButtonBoxFrame", "Box", NOT_LEAF),
18    Frame("nsCanvasFrame", "Canvas", NOT_LEAF),
19    Frame("nsCheckboxRadioFrame", "CheckboxRadio", LEAF),
20    Frame("nsColorControlFrame", "ColorControl", LEAF),
21    Frame("nsColumnSetFrame", "ColumnSet", NOT_LEAF),
22    Frame("ColumnSetWrapperFrame", "ColumnSetWrapper", NOT_LEAF),
23    Frame("nsComboboxControlFrame", "ComboboxControl", NOT_LEAF),
24    Frame("nsComboboxDisplayFrame", "ComboboxDisplay", NOT_LEAF),
25    Frame("nsContinuingTextFrame", "Text", LEAF),
26    Frame("nsDateTimeControlFrame", "DateTimeControl", NOT_LEAF),
27    Frame("nsDeckFrame", "Deck", NOT_LEAF),
28    Frame("nsDocElementBoxFrame", "DocElementBox", NOT_LEAF),
29    Frame("nsFieldSetFrame", "FieldSet", NOT_LEAF),
30    Frame("nsFileControlFrame", "Block", LEAF),
31    Frame("nsFirstLetterFrame", "Letter", NOT_LEAF),
32    Frame("nsFirstLineFrame", "Line", NOT_LEAF),
33    Frame("nsFlexContainerFrame", "FlexContainer", NOT_LEAF),
34    Frame("nsFrame", "None", NOT_LEAF),
35    Frame("nsGfxButtonControlFrame", "GfxButtonControl", LEAF),
36    Frame("nsGridContainerFrame", "GridContainer", NOT_LEAF),
37    Frame("nsGridRowGroupFrame", "Box", NOT_LEAF),
38    Frame("nsGridRowLeafFrame", "Box", NOT_LEAF),
39    Frame("nsHTMLButtonControlFrame", "HTMLButtonControl", NOT_LEAF),
40    Frame("nsHTMLCanvasFrame", "HTMLCanvas", NOT_LEAF),
41    Frame("nsHTMLFramesetBlankFrame", "None", LEAF),
42    Frame("nsHTMLFramesetBorderFrame", "None", LEAF),
43    Frame("nsHTMLFramesetFrame", "FrameSet", LEAF),
44    Frame("nsHTMLScrollFrame", "Scroll", NOT_LEAF),
45    Frame("nsImageBoxFrame", "ImageBox", LEAF),
46    Frame("nsImageControlFrame", "ImageControl", LEAF),
47    Frame("nsImageFrame", "Image", LEAF),
48    Frame("nsInlineFrame", "Inline", NOT_LEAF),
49    Frame("nsLeafBoxFrame", "LeafBox", LEAF),
50    Frame("nsLegendFrame", "Legend", NOT_LEAF),
51    Frame("nsListControlFrame", "ListControl", NOT_LEAF),
52    Frame("nsMathMLFrame", "None", NOT_LEAF),
53    Frame("nsMathMLmactionFrame", "None", NOT_LEAF),
54    Frame("nsMathMLmathBlockFrame", "Block", NOT_LEAF),
55    Frame("nsMathMLmathInlineFrame", "Inline", NOT_LEAF),
56    Frame("nsMathMLmencloseFrame", "None", NOT_LEAF),
57    Frame("nsMathMLmfencedFrame", "None", NOT_LEAF),
58    Frame("nsMathMLmfracFrame", "None", NOT_LEAF),
59    Frame("nsMathMLmmultiscriptsFrame", "None", NOT_LEAF),
60    Frame("nsMathMLmoFrame", "None", NOT_LEAF),
61    Frame("nsMathMLmpaddedFrame", "None", NOT_LEAF),
62    Frame("nsMathMLmrootFrame", "None", NOT_LEAF),
63    Frame("nsMathMLmrowFrame", "None", NOT_LEAF),
64    Frame("nsMathMLmspaceFrame", "None", LEAF),
65    Frame("nsMathMLmsqrtFrame", "None", NOT_LEAF),
66    Frame("nsMathMLmtableFrame", "Table", NOT_LEAF),
67    Frame("nsMathMLmtableWrapperFrame", "TableWrapper", NOT_LEAF),
68    Frame("nsMathMLmtdFrame", "TableCell", NOT_LEAF),
69    Frame("nsMathMLmtdInnerFrame", "Block", NOT_LEAF),
70    Frame("nsMathMLmtrFrame", "TableRow", NOT_LEAF),
71    Frame("nsMathMLmunderoverFrame", "None", NOT_LEAF),
72    Frame("nsMathMLsemanticsFrame", "None", NOT_LEAF),
73    Frame("nsMathMLTokenFrame", "None", NOT_LEAF),
74    Frame("nsMenuBarFrame", "Box", NOT_LEAF),
75    Frame("nsMenuFrame", "Menu", NOT_LEAF),
76    Frame("nsMenuPopupFrame", "MenuPopup", DYNAMIC_LEAF),
77    Frame("nsMeterFrame", "Meter", LEAF),
78    Frame("nsNumberControlFrame", "TextInput", LEAF),
79    Frame("nsPluginFrame", "Object", LEAF),
80    Frame("nsPageBreakFrame", "PageBreak", LEAF),
81    Frame("nsPageContentFrame", "PageContent", NOT_LEAF),
82    Frame("nsPageFrame", "Page", NOT_LEAF),
83    Frame("nsPlaceholderFrame", "Placeholder", LEAF),
84    Frame("nsPopupSetFrame", "PopupSet", NOT_LEAF),
85    Frame("nsProgressFrame", "Progress", LEAF),
86    Frame("nsRangeFrame", "Range", LEAF),
87    Frame("nsResizerFrame", "Box", NOT_LEAF),
88    Frame("nsRootBoxFrame", "Root", NOT_LEAF),
89    Frame("nsRubyBaseContainerFrame", "RubyBaseContainer", NOT_LEAF),
90    Frame("nsRubyBaseFrame", "RubyBase", NOT_LEAF),
91    Frame("nsRubyFrame", "Ruby", NOT_LEAF),
92    Frame("nsRubyTextContainerFrame", "RubyTextContainer", NOT_LEAF),
93    Frame("nsRubyTextFrame", "RubyText", NOT_LEAF),
94    Frame("nsScrollbarButtonFrame", "Box", NOT_LEAF),
95    Frame("nsScrollbarFrame", "Scrollbar", NOT_LEAF),
96    Frame("nsSelectsAreaFrame", "Block", NOT_LEAF),
97    Frame("nsPageSequenceFrame", "PageSequence", NOT_LEAF),
98    Frame("nsSliderFrame", "Slider", NOT_LEAF),
99    Frame("nsSplitterFrame", "Box", NOT_LEAF),
100    Frame("nsStackFrame", "Box", NOT_LEAF),
101    Frame("nsSubDocumentFrame", "SubDocument", LEAF),
102    Frame("nsSVGAFrame", "SVGA", NOT_LEAF),
103    Frame("nsSVGClipPathFrame", "SVGClipPath", NOT_LEAF),
104    Frame("nsSVGContainerFrame", "None", NOT_LEAF),
105    Frame("SVGFEContainerFrame", "SVGFEContainer", NOT_LEAF),
106    Frame("SVGFEImageFrame", "SVGFEImage", LEAF),
107    Frame("SVGFELeafFrame", "SVGFELeaf", LEAF),
108    Frame("SVGFEUnstyledLeafFrame", "SVGFEUnstyledLeaf", LEAF),
109    Frame("nsSVGFilterFrame", "SVGFilter", NOT_LEAF),
110    Frame("nsSVGForeignObjectFrame", "SVGForeignObject", NOT_LEAF),
111    Frame("nsSVGGenericContainerFrame", "SVGGenericContainer", NOT_LEAF),
112    Frame("nsSVGGFrame", "SVGG", NOT_LEAF),
113    Frame("nsSVGImageFrame", "SVGImage", LEAF),
114    Frame("nsSVGInnerSVGFrame", "SVGInnerSVG", NOT_LEAF),
115    Frame("nsSVGLinearGradientFrame", "SVGLinearGradient", NOT_LEAF),
116    Frame("nsSVGMarkerFrame", "SVGMarker", NOT_LEAF),
117    Frame("nsSVGMarkerAnonChildFrame", "SVGMarkerAnonChild", NOT_LEAF),
118    Frame("nsSVGMaskFrame", "SVGMask", NOT_LEAF),
119    Frame("nsSVGOuterSVGFrame", "SVGOuterSVG", NOT_LEAF),
120    Frame("nsSVGOuterSVGAnonChildFrame", "SVGOuterSVGAnonChild", NOT_LEAF),
121    Frame("SVGGeometryFrame", "SVGGeometry", LEAF),
122    Frame("nsSVGPatternFrame", "SVGPattern", NOT_LEAF),
123    Frame("nsSVGRadialGradientFrame", "SVGRadialGradient", NOT_LEAF),
124    Frame("nsSVGStopFrame", "SVGStop", LEAF),
125    Frame("nsSVGSwitchFrame", "SVGSwitch", NOT_LEAF),
126    Frame("nsSVGSymbolFrame", "SVGSymbol", NOT_LEAF),
127    Frame("SVGTextFrame", "SVGText", NOT_LEAF),
128    # Not a leaf, though it always has a ShadowRoot, so in practice light DOM
129    # children never render.
130    Frame("nsSVGUseFrame", "SVGUse", NOT_LEAF),
131    Frame("SVGViewFrame", "SVGView", LEAF),
132    Frame("nsTableCellFrame", "TableCell", NOT_LEAF),
133    Frame("nsTableColFrame", "TableCol", LEAF),
134    Frame("nsTableColGroupFrame", "TableColGroup", NOT_LEAF),
135    Frame("nsTableFrame", "Table", NOT_LEAF),
136    Frame("nsTableWrapperFrame", "TableWrapper", NOT_LEAF),
137    Frame("nsTableRowFrame", "TableRow", NOT_LEAF),
138    Frame("nsTableRowGroupFrame", "TableRowGroup", NOT_LEAF),
139    Frame("nsTextBoxFrame", "LeafBox", LEAF),
140    Frame("nsTextControlFrame", "TextInput", LEAF),
141    Frame("nsTextFrame", "Text", LEAF),
142    Frame("nsTitleBarFrame", "Box", NOT_LEAF),
143    Frame("nsTreeBodyFrame", "LeafBox", LEAF),
144    Frame("nsTreeColFrame", "Box", NOT_LEAF),
145    Frame("nsVideoFrame", "HTMLVideo", NOT_LEAF),
146    Frame("nsXULLabelFrame", "XULLabel", NOT_LEAF),
147    Frame("nsXULScrollFrame", "Scroll", NOT_LEAF),
148    Frame("ViewportFrame", "Viewport", NOT_LEAF),
149    Frame("WBRFrame", "Wbr", LEAF),
150
151    # Non-concrete classes (for FrameIID use)
152    AbstractFrame("nsContainerFrame"),
153    AbstractFrame("nsIFrame"),
154    AbstractFrame("nsLeafFrame"),
155    AbstractFrame("nsMathMLContainerFrame"),
156    AbstractFrame("nsRubyContentFrame"),
157    AbstractFrame("nsSplittableFrame"),
158    AbstractFrame("nsSVGDisplayContainerFrame"),
159    AbstractFrame("nsSVGGradientFrame"),
160    AbstractFrame("nsSVGPaintServerFrame"),
161
162    # Interfaces (for FrameIID use)
163    AbstractFrame("nsIAnonymousContentCreator"),
164    AbstractFrame("nsIComboboxControlFrame"),
165    AbstractFrame("nsIFormControlFrame"),
166    AbstractFrame("nsIFrameFrame"),
167    AbstractFrame("nsIListControlFrame"),
168    AbstractFrame("nsIMathMLFrame"),
169    AbstractFrame("nsIMenuFrame"),
170    AbstractFrame("nsIObjectFrame"),
171    AbstractFrame("nsIPercentBSizeObserver"),
172    AbstractFrame("nsIPopupContainer"),
173    AbstractFrame("nsIScrollableFrame"),
174    AbstractFrame("nsIScrollbarMediator"),
175    AbstractFrame("nsISelectControlFrame"),
176    AbstractFrame("nsISVGSVGFrame"),
177    AbstractFrame("nsIStatefulFrame"),
178    AbstractFrame("nsITableCellLayout"),
179    AbstractFrame("nsITableLayout"),
180    AbstractFrame("nsITextControlFrame"),
181    AbstractFrame("nsSVGDisplayableFrame"),
182]
183