好久没看WebCore/rendering目录了,最近要做WebKit的渲染优化,于是下载了最新的源码看了看,发现变化太大了,好些新的类加入了。因此预备重新分析一下,而静态分析一般都是从类结构开始的,分析Render*类如下:
RenderObject : public CachedImageClient //这是否意味着所有Render元素都可以显示图片呢?
|RenderElement
| |RenderLayerModelObject
| | |RenderBoxModelObject //这是css box module的基类
| | | |RenderBox
| | | | |RenderBlock
| | | | | |RenderBlockFlow
| | | | | | |RenderDetailsMarker
| | | | | | |RenderFieldset
| | | | | | |RenderFileUploadControl
| | | | | | |RenderListBox //also public ScrollableArea
| | | | | | |RenderListItem
| | | | | | |RenderMediaVolumeSliderContainer
| | | | | | |RenderTextTrackContainerElement
| | | | | | |RenderMeter
| | | | | | |RenderProgress
| | | | | | |RenderRegion
| | | | | | | |RenderNamedFlowFragment
| | | | | | | |RenderRegionSet
| | | | | | | | |RenderMultiColumnSet
| | | | | | |RenderRubyBase
| | | | | | |RenderRubyAsBlock
| | | | | | |RenderRubyRun
| | | | | | |RenderRubyText
| | | | | | |RenderTableCaption
| | | | | | |RenderTableCell
| | | | | | |RenderTextControl
| | | | | | | |RenderTextControlMultiLine
| | | | | | | |RenderTextControlSingleLine
| | | | | | | | |RenderSearchField //also public PopupMenuClient
| | | | | | |RenderTextControlInnerBlock
| | | | | | |RenderView //also public SelectionSubtreeRoot,这是document对应类,RenderTree根节点
| | | | | | |RenderVTTCue
| | | | | |RenderDeprecatedFlexibleBox
| | | | | |RenderFlexibleBox
| | | | | | |RenderButton
| | | | | | |RenderFullScreen
| | | | | | |RenderMediaControlTimelineContainer
| | | | | | |RenderMenuList //also public PopupMenuClient
| | | | | | |RenderSlider
| | | | | | |RenderTextControlInnerContainer
| | | | | |RenderGrid
| | | | | |RenderScrollbarPart
| | | | | |RenderTable
| | | | |RenderFrameSet
| | | | |RenderListMarker
| | | | |RenderMultiColumnSpannerPlaceholder
| | | | |RenderReplaced
| | | | | |RenderHTMLCanvas
| | | | | |RenderImage
| | | | | | |RenderMedia
| | | | | |RenderWidget //also private OverlapTestRequestClient
| | | | | | |RenderEmbeddedObject
| | | | | | | |RenderSnapshottedPlugIn
| | | | | | |RenderFrameBase
| | | | | | | |RenderFrame
| | | | | | | |RenderIFrame
| | | | |RenderReplica
| | | | |RenderTableCol
| | | | |RenderTableRow
| | | | |RenderTableSection
| | | |RenderInline
| | | | |RenderQuote
| | | | |RenderRubyAsInline
| | | |RenderLineBreak
|RenderText
| |RenderCombineText
| |RenderCounter
| |RenderTextFragment