176532版本webkit中RenderObject类结构

来源:互联网 发布:一千左右机械键盘 知乎 编辑:程序博客网 时间:2024/05/01 22:23

好久没看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

0 0