Changeset 155211 in webkit


Ignore:
Timestamp:
Sep 6, 2013 1:54:47 PM (11 years ago)
Author:
hyatt@apple.com
Message:

Add new RenderBlockFlow class.
https://bugs.webkit.org/show_bug.cgi?id=120777

Reviewed by Beth Dakin.

This patch adds a new RenderBlockFlow class. The idea is to get all of the line/float/margin
code out of RenderBlock and into the subclass, and then we can make RenderBlock an abstract
base. This will save memory for all of the classes that derive from RenderBlock but have
their own layout systems (e.g., flexbox, grid, table), and it will let us tighten up
types to make it more clear when we're talking about block layout code vs. a more generic
block-level object that can have any kind of layout.

This patch adds the new class and it makes sure all the objects that should be block flows
inherit from the new class.

isBlockFlow() proved to be a problematic method (and was the source of regressions when I
landed this patch the first time). When the method was first implemented, it was added as
"I'm a block but not a table." and at the time table was the only subclass of block. However
when new subclasses were added, this function was never patched to account for them. This
means, for example, that flexible boxes and grids claim to be block flows in the codebase
and have for years. This is obviously wrong, since flexible boxes are not in fact block
flows, but because of this mistake, code has started relying on the incorrect behavior of
isBlockFlow() (form controls mostly).

What I've done to deal with this problem is renamed isBlockFlow() to be
isBlockFlowFlexBoxOrGrid() in order to make it obvious that this method is returning true
for pretty much all blocks other than tables. This makes a lot of call sites look pretty
stupid, since they obviously never intended to include flexible boxes or grids, but at least
it is clear what the method is doing now.

The plan is to land this patch and then start converting call sites from
isBlockFlowFlexBoxOrGrid() to isRenderBlockFlow() one by one, and that way we can figure
out which code is making bad assumptions and change those callers to be isRenderBlock()
instead. Ultimately this isBlockFlowFlexBoxOrGrid() method will go away with callers either
changing to use isRenderBlock() or isRenderBlockFlow().

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • Target.pri:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.xcodeproj/project.pbxproj:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):

  • dom/Position.cpp:

(WebCore::Position::isCandidate):
(WebCore::Position::getInlineBoxAndOffset):
(WebCore::Position::primaryDirection):

  • dom/PositionIterator.cpp:

(WebCore::PositionIterator::isCandidate):

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::applyInlineStyleToPushDown):

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::addBlockPlaceholderIfNeeded):

  • editing/Editor.cpp:

(WebCore::Editor::baseWritingDirectionForSelectionStart):

  • editing/FrameSelection.cpp:

(WebCore::caretRenderer):

  • editing/TextIterator.cpp:

(WebCore::TextIterator::shouldRepresentNodeOffsetZero):

  • editing/TypingCommand.cpp:

(WebCore::TypingCommand::makeEditableRootEmpty):

  • editing/htmlediting.cpp:

(WebCore::isBlockFlowElement):

  • html/HTMLDetailsElement.cpp:

(WebCore::HTMLDetailsElement::createRenderer):

  • html/HTMLSummaryElement.cpp:

(WebCore::HTMLSummaryElement::createRenderer):

  • html/shadow/SliderThumbElement.cpp:

(WebCore::RenderSliderThumb::RenderSliderThumb):

  • html/shadow/SliderThumbElement.h:
  • rendering/LayoutState.cpp:

(WebCore::LayoutState::LayoutState):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::createAnonymous):
(WebCore::RenderBlock::layoutBlock):
(WebCore::RenderBlock::collapseMargins):
(WebCore::RenderBlock::selectionGaps):
(WebCore::RenderBlock::firstLineBoxBaseline):
(WebCore::RenderBlock::lastLineBoxBaseline):
(WebCore::RenderBlock::firstLineBlock):
(WebCore::findFirstLetterBlock):
(WebCore::shouldCheckLines):
(WebCore::RenderBlock::adjustForBorderFit):

  • rendering/RenderBlock.h:
  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeRectForRepaint):
(WebCore::RenderBox::positionForPoint):

  • rendering/RenderBoxModelObject.h:

(WebCore::RenderBoxModelObject::canHaveBoxInfoInRegion):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
(WebCore::RenderDeprecatedFlexibleBox::clearLineClamp):

  • rendering/RenderDetailsMarker.cpp:

(WebCore::RenderDetailsMarker::RenderDetailsMarker):

  • rendering/RenderDetailsMarker.h:
  • rendering/RenderFieldset.cpp:

(WebCore::RenderFieldset::RenderFieldset):

  • rendering/RenderFieldset.h:
  • rendering/RenderFileUploadControl.cpp:

(WebCore::RenderFileUploadControl::RenderFileUploadControl):

  • rendering/RenderFileUploadControl.h:
  • rendering/RenderFlowThread.cpp:

(WebCore::RenderFlowThread::RenderFlowThread):

  • rendering/RenderFlowThread.h:
  • rendering/RenderFullScreen.cpp:
  • rendering/RenderInline.cpp:

(WebCore::RenderInline::computeRectForRepaint):

  • rendering/RenderLineBoxList.cpp:

(WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):

  • rendering/RenderListItem.cpp:

(WebCore::RenderListItem::RenderListItem):
(WebCore::RenderListItem::willBeDestroyed):
(WebCore::RenderListItem::willBeRemovedFromTree):
(WebCore::RenderListItem::layout):
(WebCore::RenderListItem::addOverflowFromChildren):
(WebCore::RenderListItem::computePreferredLogicalWidths):
(WebCore::RenderListItem::paint):

  • rendering/RenderListItem.h:
  • rendering/RenderMeter.cpp:

(WebCore::RenderMeter::RenderMeter):

  • rendering/RenderMeter.h:
  • rendering/RenderMultiColumnBlock.cpp:

(WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):

  • rendering/RenderMultiColumnBlock.h:
  • rendering/RenderObject.cpp:

(WebCore::RenderObject::createObject):
(WebCore::RenderObject::computeRectForRepaint):
(WebCore::RenderObject::styleWillChange):
(WebCore::firstLineStyleForCachedUncachedType):

  • rendering/RenderObject.h:

(WebCore::RenderObject::isBR):
(WebCore::RenderObject::isRenderBlockFlow):
(WebCore::RenderObject::isBlockFlowFlexBoxOrGrid):

  • rendering/RenderObjectChildList.cpp:

(WebCore::RenderObjectChildList::insertChildNode):

  • rendering/RenderProgress.cpp:

(WebCore::RenderProgress::RenderProgress):

  • rendering/RenderProgress.h:
  • rendering/RenderRegion.cpp:

(WebCore::RenderRegion::RenderRegion):

  • rendering/RenderRegion.h:
  • rendering/RenderRuby.cpp:

(WebCore::RenderRubyAsBlock::RenderRubyAsBlock):

  • rendering/RenderRuby.h:
  • rendering/RenderRubyBase.cpp:

(WebCore::RenderRubyBase::RenderRubyBase):

  • rendering/RenderRubyBase.h:
  • rendering/RenderRubyRun.cpp:

(WebCore::RenderRubyRun::RenderRubyRun):

  • rendering/RenderRubyRun.h:
  • rendering/RenderRubyText.cpp:

(WebCore::RenderRubyText::RenderRubyText):

  • rendering/RenderRubyText.h:
  • rendering/RenderTableCaption.cpp:

(WebCore::RenderTableCaption::RenderTableCaption):

  • rendering/RenderTableCaption.h:
  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::RenderTableCell):

  • rendering/RenderTableCell.h:
  • rendering/RenderTextControl.cpp:

(WebCore::RenderTextControl::RenderTextControl):

  • rendering/RenderTextControl.h:
  • rendering/RenderTextControlSingleLine.h:

(WebCore::RenderTextControlInnerBlock::RenderTextControlInnerBlock):

  • rendering/RenderTextTrackCue.cpp:

(WebCore::RenderTextTrackCue::RenderTextTrackCue):

  • rendering/RenderTextTrackCue.h:
  • rendering/RenderView.cpp:

(WebCore::RenderView::RenderView):

  • rendering/RenderView.h:
  • rendering/RenderingAllInOne.cpp:
  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::createGlyph):

  • rendering/svg/RenderSVGBlock.cpp:

(WebCore::RenderSVGBlock::RenderSVGBlock):

  • rendering/svg/RenderSVGBlock.h:
Location:
trunk/Source/WebCore
Files:
2 added
73 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/CMakeLists.txt

    r155162 r155211  
    21122112    rendering/RenderBR.cpp
    21132113    rendering/RenderBlock.cpp
     2114    rendering/RenderBlockFlow.cpp
    21142115    rendering/RenderBlockLineLayout.cpp
    21152116    rendering/RenderBox.cpp
  • trunk/Source/WebCore/ChangeLog

    r155207 r155211  
     12013-09-06  David Hyatt  <hyatt@apple.com>
     2
     3        Add new RenderBlockFlow class.
     4        https://bugs.webkit.org/show_bug.cgi?id=120777
     5
     6        Reviewed by Beth Dakin.
     7
     8        This patch adds a new RenderBlockFlow class. The idea is to get all of the line/float/margin
     9        code out of RenderBlock and into the subclass, and then we can make RenderBlock an abstract
     10        base. This will save memory for all of the classes that derive from RenderBlock but have
     11        their own layout systems (e.g., flexbox, grid, table), and it will let us tighten up
     12        types to make it more clear when we're talking about block layout code vs. a more generic
     13        block-level object that can have any kind of layout.
     14
     15        This patch adds the new class and it makes sure all the objects that should be block flows
     16        inherit from the new class.
     17       
     18        isBlockFlow() proved to be a problematic method (and was the source of regressions when I
     19        landed this patch the first time). When the method was first implemented, it was added as
     20        "I'm a block but not a table." and at the time table was the only subclass of block. However
     21        when new subclasses were added, this function was never patched to account for them. This
     22        means, for example, that flexible boxes and grids claim to be block flows in the codebase
     23        and have for years. This is obviously wrong, since flexible boxes are not in fact block
     24        flows, but because of this mistake, code has started relying on the incorrect behavior of
     25        isBlockFlow() (form controls mostly).
     26       
     27        What I've done to deal with this problem is renamed isBlockFlow() to be
     28        isBlockFlowFlexBoxOrGrid() in order to make it obvious that this method is returning true
     29        for pretty much all blocks other than tables. This makes a lot of call sites look pretty
     30        stupid, since they obviously never intended to include flexible boxes or grids, but at least
     31        it is clear what the method is doing now.
     32       
     33        The plan is to land this patch and then start converting call sites from
     34        isBlockFlowFlexBoxOrGrid() to isRenderBlockFlow() one by one, and that way we can figure
     35        out which code is making bad assumptions and change those callers to be isRenderBlock()
     36        instead. Ultimately this isBlockFlowFlexBoxOrGrid() method will go away with callers either
     37        changing to use isRenderBlock() or isRenderBlockFlow().
     38
     39        * CMakeLists.txt:
     40        * GNUmakefile.list.am:
     41        * Target.pri:
     42        * WebCore.vcxproj/WebCore.vcxproj:
     43        * WebCore.xcodeproj/project.pbxproj:
     44        * accessibility/AccessibilityRenderObject.cpp:
     45        (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
     46        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
     47        * dom/Position.cpp:
     48        (WebCore::Position::isCandidate):
     49        (WebCore::Position::getInlineBoxAndOffset):
     50        (WebCore::Position::primaryDirection):
     51        * dom/PositionIterator.cpp:
     52        (WebCore::PositionIterator::isCandidate):
     53        * editing/ApplyStyleCommand.cpp:
     54        (WebCore::ApplyStyleCommand::applyInlineStyleToPushDown):
     55        * editing/CompositeEditCommand.cpp:
     56        (WebCore::CompositeEditCommand::addBlockPlaceholderIfNeeded):
     57        * editing/Editor.cpp:
     58        (WebCore::Editor::baseWritingDirectionForSelectionStart):
     59        * editing/FrameSelection.cpp:
     60        (WebCore::caretRenderer):
     61        * editing/TextIterator.cpp:
     62        (WebCore::TextIterator::shouldRepresentNodeOffsetZero):
     63        * editing/TypingCommand.cpp:
     64        (WebCore::TypingCommand::makeEditableRootEmpty):
     65        * editing/htmlediting.cpp:
     66        (WebCore::isBlockFlowElement):
     67        * html/HTMLDetailsElement.cpp:
     68        (WebCore::HTMLDetailsElement::createRenderer):
     69        * html/HTMLSummaryElement.cpp:
     70        (WebCore::HTMLSummaryElement::createRenderer):
     71        * html/shadow/SliderThumbElement.cpp:
     72        (WebCore::RenderSliderThumb::RenderSliderThumb):
     73        * html/shadow/SliderThumbElement.h:
     74        * rendering/LayoutState.cpp:
     75        (WebCore::LayoutState::LayoutState):
     76        * rendering/RenderBlock.cpp:
     77        (WebCore::RenderBlock::createAnonymous):
     78        (WebCore::RenderBlock::layoutBlock):
     79        (WebCore::RenderBlock::collapseMargins):
     80        (WebCore::RenderBlock::selectionGaps):
     81        (WebCore::RenderBlock::firstLineBoxBaseline):
     82        (WebCore::RenderBlock::lastLineBoxBaseline):
     83        (WebCore::RenderBlock::firstLineBlock):
     84        (WebCore::findFirstLetterBlock):
     85        (WebCore::shouldCheckLines):
     86        (WebCore::RenderBlock::adjustForBorderFit):
     87        * rendering/RenderBlock.h:
     88        * rendering/RenderBox.cpp:
     89        (WebCore::RenderBox::computeRectForRepaint):
     90        (WebCore::RenderBox::positionForPoint):
     91        * rendering/RenderBoxModelObject.h:
     92        (WebCore::RenderBoxModelObject::canHaveBoxInfoInRegion):
     93        * rendering/RenderDeprecatedFlexibleBox.cpp:
     94        (WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
     95        (WebCore::RenderDeprecatedFlexibleBox::clearLineClamp):
     96        * rendering/RenderDetailsMarker.cpp:
     97        (WebCore::RenderDetailsMarker::RenderDetailsMarker):
     98        * rendering/RenderDetailsMarker.h:
     99        * rendering/RenderFieldset.cpp:
     100        (WebCore::RenderFieldset::RenderFieldset):
     101        * rendering/RenderFieldset.h:
     102        * rendering/RenderFileUploadControl.cpp:
     103        (WebCore::RenderFileUploadControl::RenderFileUploadControl):
     104        * rendering/RenderFileUploadControl.h:
     105        * rendering/RenderFlowThread.cpp:
     106        (WebCore::RenderFlowThread::RenderFlowThread):
     107        * rendering/RenderFlowThread.h:
     108        * rendering/RenderFullScreen.cpp:
     109        * rendering/RenderInline.cpp:
     110        (WebCore::RenderInline::computeRectForRepaint):
     111        * rendering/RenderLineBoxList.cpp:
     112        (WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):
     113        * rendering/RenderListItem.cpp:
     114        (WebCore::RenderListItem::RenderListItem):
     115        (WebCore::RenderListItem::willBeDestroyed):
     116        (WebCore::RenderListItem::willBeRemovedFromTree):
     117        (WebCore::RenderListItem::layout):
     118        (WebCore::RenderListItem::addOverflowFromChildren):
     119        (WebCore::RenderListItem::computePreferredLogicalWidths):
     120        (WebCore::RenderListItem::paint):
     121        * rendering/RenderListItem.h:
     122        * rendering/RenderMeter.cpp:
     123        (WebCore::RenderMeter::RenderMeter):
     124        * rendering/RenderMeter.h:
     125        * rendering/RenderMultiColumnBlock.cpp:
     126        (WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
     127        * rendering/RenderMultiColumnBlock.h:
     128        * rendering/RenderObject.cpp:
     129        (WebCore::RenderObject::createObject):
     130        (WebCore::RenderObject::computeRectForRepaint):
     131        (WebCore::RenderObject::styleWillChange):
     132        (WebCore::firstLineStyleForCachedUncachedType):
     133        * rendering/RenderObject.h:
     134        (WebCore::RenderObject::isBR):
     135        (WebCore::RenderObject::isRenderBlockFlow):
     136        (WebCore::RenderObject::isBlockFlowFlexBoxOrGrid):
     137        * rendering/RenderObjectChildList.cpp:
     138        (WebCore::RenderObjectChildList::insertChildNode):
     139        * rendering/RenderProgress.cpp:
     140        (WebCore::RenderProgress::RenderProgress):
     141        * rendering/RenderProgress.h:
     142        * rendering/RenderRegion.cpp:
     143        (WebCore::RenderRegion::RenderRegion):
     144        * rendering/RenderRegion.h:
     145        * rendering/RenderRuby.cpp:
     146        (WebCore::RenderRubyAsBlock::RenderRubyAsBlock):
     147        * rendering/RenderRuby.h:
     148        * rendering/RenderRubyBase.cpp:
     149        (WebCore::RenderRubyBase::RenderRubyBase):
     150        * rendering/RenderRubyBase.h:
     151        * rendering/RenderRubyRun.cpp:
     152        (WebCore::RenderRubyRun::RenderRubyRun):
     153        * rendering/RenderRubyRun.h:
     154        * rendering/RenderRubyText.cpp:
     155        (WebCore::RenderRubyText::RenderRubyText):
     156        * rendering/RenderRubyText.h:
     157        * rendering/RenderTableCaption.cpp:
     158        (WebCore::RenderTableCaption::RenderTableCaption):
     159        * rendering/RenderTableCaption.h:
     160        * rendering/RenderTableCell.cpp:
     161        (WebCore::RenderTableCell::RenderTableCell):
     162        * rendering/RenderTableCell.h:
     163        * rendering/RenderTextControl.cpp:
     164        (WebCore::RenderTextControl::RenderTextControl):
     165        * rendering/RenderTextControl.h:
     166        * rendering/RenderTextControlSingleLine.h:
     167        (WebCore::RenderTextControlInnerBlock::RenderTextControlInnerBlock):
     168        * rendering/RenderTextTrackCue.cpp:
     169        (WebCore::RenderTextTrackCue::RenderTextTrackCue):
     170        * rendering/RenderTextTrackCue.h:
     171        * rendering/RenderView.cpp:
     172        (WebCore::RenderView::RenderView):
     173        * rendering/RenderView.h:
     174        * rendering/RenderingAllInOne.cpp:
     175        * rendering/mathml/RenderMathMLOperator.cpp:
     176        (WebCore::RenderMathMLOperator::createGlyph):
     177        * rendering/svg/RenderSVGBlock.cpp:
     178        (WebCore::RenderSVGBlock::RenderSVGBlock):
     179        * rendering/svg/RenderSVGBlock.h:
     180
    11812013-09-06  Vivek Galatage  <vivek.vg@samsung.com>
    2182
  • trunk/Source/WebCore/GNUmakefile.list.am

    r155162 r155211  
    43754375        Source/WebCore/rendering/RenderBlock.cpp \
    43764376        Source/WebCore/rendering/RenderBlock.h \
     4377    Source/WebCore/rendering/RenderBlockFlow.cpp \
     4378        Source/WebCore/rendering/RenderBlockFlow.h \
    43774379        Source/WebCore/rendering/RenderBlockLineLayout.cpp \
    43784380        Source/WebCore/rendering/RenderBox.cpp \
  • trunk/Source/WebCore/Target.pri

    r155175 r155211  
    11561156    rendering/RenderArena.cpp \
    11571157    rendering/RenderBlock.cpp \
     1158    rendering/RenderBlockFlow.cpp \
    11581159    rendering/RenderBlockLineLayout.cpp \
    11591160    rendering/RenderBox.cpp \
  • trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj

    r155162 r155211  
    96719671    </ClCompile>
    96729672    <ClCompile Include="..\rendering\RenderBlock.cpp">
     9673      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
     9674      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
     9675      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|Win32'">true</ExcludedFromBuild>
     9676      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|x64'">true</ExcludedFromBuild>
     9677      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|Win32'">true</ExcludedFromBuild>
     9678      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|x64'">true</ExcludedFromBuild>
     9679      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
     9680      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
     9681      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|Win32'">true</ExcludedFromBuild>
     9682      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|x64'">true</ExcludedFromBuild>
     9683      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
     9684      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
     9685    </ClCompile>
     9686    <ClCompile Include="..\rendering\RenderBlockFlow.cpp">
    96739687      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
    96749688      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r155162 r155211  
    47114711                BC0B36A40CD3C67C00AC7EB5 /* Console.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC0B36A10CD3C67C00AC7EB5 /* Console.cpp */; };
    47124712                BC0B36A50CD3C67C00AC7EB5 /* Console.h in Headers */ = {isa = PBXBuildFile; fileRef = BC0B36A20CD3C67C00AC7EB5 /* Console.h */; settings = {ATTRIBUTES = (Private, ); }; };
     4713                BC10D76717D8EE6E005E2626 /* RenderBlockFlow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCFB45F417D8E49400444446 /* RenderBlockFlow.cpp */; };
     4714                BC10D76817D8EE71005E2626 /* RenderBlockFlow.h in Headers */ = {isa = PBXBuildFile; fileRef = BCFB45F317D8E39200444446 /* RenderBlockFlow.h */; settings = {ATTRIBUTES = (Private, ); }; };
    47134715                BC124EE70C2641CD009E2349 /* BarProp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC124EE40C2641CD009E2349 /* BarProp.cpp */; };
    47144716                BC124EE80C2641CD009E2349 /* BarProp.h in Headers */ = {isa = PBXBuildFile; fileRef = BC124EE50C2641CD009E2349 /* BarProp.h */; };
     
    1202112023                BCFB2F74097A2E1A00BA703D /* Arena.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Arena.cpp; sourceTree = "<group>"; };
    1202212024                BCFB2F75097A2E1A00BA703D /* Arena.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Arena.h; sourceTree = "<group>"; };
     12025                BCFB45F317D8E39200444446 /* RenderBlockFlow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RenderBlockFlow.h; sourceTree = "<group>"; };
     12026                BCFB45F417D8E49400444446 /* RenderBlockFlow.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderBlockFlow.cpp; sourceTree = "<group>"; };
    1202312027                BCFE2F0F0C1B58370020235F /* JSRect.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSRect.cpp; sourceTree = "<group>"; };
    1202412028                BCFE2F100C1B58370020235F /* JSRect.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSRect.h; sourceTree = "<group>"; };
     
    2039520399                                BCEA4820097D93020094C9E4 /* RenderBlock.cpp */,
    2039620400                                BCEA4821097D93020094C9E4 /* RenderBlock.h */,
     20401                                BCFB45F417D8E49400444446 /* RenderBlockFlow.cpp */,
     20402                                BCFB45F317D8E39200444446 /* RenderBlockFlow.h */,
    2039720403                                BCEA4813097D93020094C9E4 /* RenderBlockLineLayout.cpp */,
    2039820404                                BCEA4822097D93020094C9E4 /* RenderBox.cpp */,
     
    2454924555                                BE16C59317CFE17200852C04 /* InbandGenericTextTrack.h in Headers */,
    2455024556                                BE16C59517CFE17200852C04 /* InbandWebVTTTextTrack.h in Headers */,
     24557                                BC10D76817D8EE71005E2626 /* RenderBlockFlow.h in Headers */,
    2455124558                        );
    2455224559                        runOnlyForDeploymentPostprocessing = 0;
     
    2757327580                                BE16C59217CFE17200852C04 /* InbandGenericTextTrack.cpp in Sources */,
    2757427581                                BE16C59417CFE17200852C04 /* InbandWebVTTTextTrack.cpp in Sources */,
     27582                                BC10D76717D8EE6E005E2626 /* RenderBlockFlow.cpp in Sources */,
    2757527583                        );
    2757627584                        runOnlyForDeploymentPostprocessing = 0;
  • trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp

    r155162 r155211  
    12261226        return true;
    12271227   
    1228     if (m_renderer->isBlockFlow() && m_renderer->childrenInline() && !canSetFocusAttribute())
     1228    if (m_renderer->isBlockFlowFlexBoxOrGrid() && m_renderer->childrenInline() && !canSetFocusAttribute())
    12291229        return !toRenderBlock(m_renderer)->firstLineBox() && !mouseButtonListener();
    12301230   
     
    25632563        return FooterRole;
    25642564
    2565     if (m_renderer->isBlockFlow())
     2565    if (m_renderer->isBlockFlowFlexBoxOrGrid())
    25662566        return GroupRole;
    25672567   
  • trunk/Source/WebCore/dom/Position.cpp

    r155162 r155211  
    926926        return false;
    927927       
    928     if (renderer->isBlockFlow()) {
     928    if (renderer->isBlockFlowFlexBoxOrGrid()) {
    929929        if (toRenderBlock(renderer)->logicalHeight() || m_anchorNode->hasTagName(bodyTag)) {
    930930            if (!Position::hasRenderedNonAnonymousDescendantsWithHeight(renderer))
     
    11861186    if (!renderer->isText()) {
    11871187        inlineBox = 0;
    1188         if (canHaveChildrenForEditing(deprecatedNode()) && renderer->isBlockFlow() && hasRenderedNonAnonymousDescendantsWithHeight(renderer)) {
     1188        if (canHaveChildrenForEditing(deprecatedNode()) && renderer->isBlockFlowFlexBoxOrGrid() && hasRenderedNonAnonymousDescendantsWithHeight(renderer)) {
    11891189            // Try a visually equivalent position with possibly opposite editability. This helps in case |this| is in
    11901190            // an editable block but surrounded by non-editable positions. It acts to negate the logic at the beginning
     
    13341334    TextDirection primaryDirection = LTR;
    13351335    for (const RenderObject* r = m_anchorNode->renderer(); r; r = r->parent()) {
    1336         if (r->isBlockFlow()) {
     1336        if (r->isBlockFlowFlexBoxOrGrid()) {
    13371337            primaryDirection = r->style()->direction();
    13381338            break;
  • trunk/Source/WebCore/dom/PositionIterator.cpp

    r155162 r155211  
    160160        return (atStartOfNode() || atEndOfNode()) && !Position::nodeIsUserSelectNone(m_anchorNode->parentNode());
    161161
    162     if (!m_anchorNode->hasTagName(htmlTag) && renderer->isBlockFlow()) {
     162    if (!m_anchorNode->hasTagName(htmlTag) && renderer->isBlockFlowFlexBoxOrGrid()) {
    163163        if (toRenderBlock(renderer)->logicalHeight() || m_anchorNode->hasTagName(bodyTag)) {
    164164            if (!Position::hasRenderedNonAnonymousDescendantsWithHeight(renderer))
  • trunk/Source/WebCore/editing/ApplyStyleCommand.cpp

    r155162 r155211  
    10141014    // Since addInlineStyleIfNeeded can't add styles to block-flow render objects, add style attribute instead.
    10151015    // FIXME: applyInlineStyleToRange should be used here instead.
    1016     if ((node->renderer()->isBlockFlow() || node->childNodeCount()) && node->isHTMLElement()) {
     1016    if ((node->renderer()->isRenderBlockFlow() || node->childNodeCount()) && node->isHTMLElement()) {
    10171017        setNodeAttribute(toHTMLElement(node), styleAttr, newInlineStyle->style()->asText());
    10181018        return;
  • trunk/Source/WebCore/editing/CompositeEditCommand.cpp

    r155162 r155211  
    875875
    876876    RenderObject* renderer = container->renderer();
    877     if (!renderer || !renderer->isBlockFlow())
     877    if (!renderer || !renderer->isBlockFlowFlexBoxOrGrid())
    878878        return 0;
    879879   
  • trunk/Source/WebCore/editing/Editor.cpp

    r155162 r155211  
    14301430        return result;
    14311431
    1432     if (!renderer->isBlockFlow()) {
     1432    if (!renderer->isBlockFlowFlexBoxOrGrid()) {
    14331433        renderer = renderer->containingBlock();
    14341434        if (!renderer)
  • trunk/Source/WebCore/editing/FrameSelection.cpp

    r155162 r155211  
    12721272
    12731273    // if caretNode is a block and caret is inside it then caret should be painted by that block
    1274     bool paintedByBlock = renderer->isBlockFlow() && caretRendersInsideNode(node);
     1274    bool paintedByBlock = renderer->isBlockFlowFlexBoxOrGrid() && caretRendersInsideNode(node);
    12751275    return paintedByBlock ? renderer : renderer->containingBlock();
    12761276}
  • trunk/Source/WebCore/editing/TextIterator.cpp

    r155162 r155211  
    919919    // we would create VisiblePositions on every call to this function without this check.
    920920    if (!m_node->renderer() || m_node->renderer()->style()->visibility() != VISIBLE
    921         || (m_node->renderer()->isBlockFlow() && !toRenderBlock(m_node->renderer())->height() && !m_node->hasTagName(bodyTag)))
     921        || (m_node->renderer()->isBlockFlowFlexBoxOrGrid() && !toRenderBlock(m_node->renderer())->height() && !m_node->hasTagName(bodyTag)))
    922922        return false;
    923923
  • trunk/Source/WebCore/editing/TypingCommand.cpp

    r155162 r155211  
    405405    if (root->firstChild() == root->lastChild() && root->firstElementChild() && root->firstElementChild()->hasTagName(brTag)) {
    406406        // If there is a single child and it could be a placeholder, leave it alone.
    407         if (root->renderer() && root->renderer()->isBlockFlow())
     407        if (root->renderer() && root->renderer()->isBlockFlowFlexBoxOrGrid())
    408408            return false;
    409409    }
  • trunk/Source/WebCore/editing/htmlediting.cpp

    r155162 r155211  
    12911291        return false;
    12921292    RenderObject* renderer = node->renderer();
    1293     return renderer && renderer->isBlockFlow();
     1293    return renderer && renderer->isBlockFlowFlexBoxOrGrid();
    12941294}
    12951295
  • trunk/Source/WebCore/html/HTMLDetailsElement.cpp

    r155162 r155211  
    2828#include "LocalizedStrings.h"
    2929#include "MouseEvent.h"
    30 #include "RenderBlock.h"
     30#include "RenderBlockFlow.h"
    3131#include "ShadowRoot.h"
    3232#include "Text.h"
     
    114114RenderObject* HTMLDetailsElement::createRenderer(RenderArena* arena, RenderStyle*)
    115115{
    116     return new (arena) RenderBlock(this);
     116    return new (arena) RenderBlockFlow(this);
    117117}
    118118
  • trunk/Source/WebCore/html/HTMLSummaryElement.cpp

    r155162 r155211  
    3131#include "NodeRenderingTraversal.h"
    3232#include "PlatformMouseEvent.h"
    33 #include "RenderBlock.h"
     33#include "RenderBlockFlow.h"
    3434#include "ShadowRoot.h"
    3535
     
    6969RenderObject* HTMLSummaryElement::createRenderer(RenderArena* arena, RenderStyle*)
    7070{
    71     return new (arena) RenderBlock(this);
     71    return new (arena) RenderBlockFlow(this);
    7272}
    7373
  • trunk/Source/WebCore/html/shadow/SliderThumbElement.cpp

    r155162 r155211  
    9696
    9797RenderSliderThumb::RenderSliderThumb(SliderThumbElement* element)
    98     : RenderBlock(element)
     98    : RenderBlockFlow(element)
    9999{
    100100}
  • trunk/Source/WebCore/html/shadow/SliderThumbElement.h

    r155162 r155211  
    3535#include "HTMLDivElement.h"
    3636#include "HTMLNames.h"
    37 #include "RenderBlock.h"
     37#include "RenderBlockFlow.h"
    3838#include <wtf/Forward.h>
    3939
     
    9797// --------------------------------
    9898
    99 class RenderSliderThumb FINAL : public RenderBlock {
     99class RenderSliderThumb FINAL : public RenderBlockFlow {
    100100public:
    101101    RenderSliderThumb(SliderThumbElement*);
  • trunk/Source/WebCore/rendering/LayoutState.cpp

    r155162 r155211  
    132132
    133133    // If we have a new grid to track, then add it to our set.
    134     if (renderer->style()->lineGrid() != RenderStyle::initialLineGrid() && renderer->isBlockFlow())
     134    if (renderer->style()->lineGrid() != RenderStyle::initialLineGrid() && renderer->isBlockFlowFlexBoxOrGrid())
    135135        establishLineGrid(toRenderBlock(renderer));
    136136
  • trunk/Source/WebCore/rendering/RenderBlock.cpp

    r155162 r155211  
    238238RenderBlock* RenderBlock::createAnonymous(Document* document)
    239239{
    240     RenderBlock* renderer = new (document->renderArena()) RenderBlock(0);
     240    RenderBlock* renderer = new (document->renderArena()) RenderBlockFlow(0);
    241241    renderer->setDocumentForAnonymous(document);
    242242    return renderer;
     
    17211721            // One of our children's floats may have become an overhanging float for us. We need to look for it.
    17221722            for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
    1723                 if (child->isBlockFlow() && !child->isFloatingOrOutOfFlowPositioned()) {
     1723                if (child->isBlockFlowFlexBoxOrGrid() && !child->isFloatingOrOutOfFlowPositioned()) {
    17241724                    RenderBlock* block = toRenderBlock(child);
    17251725                    if (block->lowestFloatLogicalBottom() + block->logicalTop() > newHeight)
     
    22592259    setLogicalHeight(logicalTop);
    22602260    RenderObject* prev = child->previousSibling();
    2261     if (prev && prev->isBlockFlow() && !prev->isFloatingOrOutOfFlowPositioned()) {
     2261    if (prev && prev->isBlockFlowFlexBoxOrGrid() && !prev->isFloatingOrOutOfFlowPositioned()) {
    22622262        RenderBlock* block = toRenderBlock(prev);
    22632263        if (block->containsFloats() && !block->avoidsFloats() && (block->logicalTop() + block->lowestFloatLogicalBottom()) > logicalTop)
     
    36843684    // fixed).
    36853685    GapRects result;
    3686     if (!isBlockFlow()) // FIXME: Make multi-column selection gap filling work someday.
     3686    if (!isBlockFlowFlexBoxOrGrid()) // FIXME: Make multi-column selection gap filling work someday.
    36873687        return result;
    36883688
     
    67636763int RenderBlock::firstLineBoxBaseline() const
    67646764{
    6765     if (!isBlockFlow() || (isWritingModeRoot() && !isRubyRun()))
     6765    if (!isBlockFlowFlexBoxOrGrid() || (isWritingModeRoot() && !isRubyRun()))
    67666766        return -1;
    67676767
     
    67926792int RenderBlock::lastLineBoxBaseline(LineDirectionMode lineDirection) const
    67936793{
    6794     if (!isBlockFlow() || (isWritingModeRoot() && !isRubyRun()))
     6794    if (!isBlockFlowFlexBoxOrGrid() || (isWritingModeRoot() && !isRubyRun()))
    67956795        return -1;
    67966796
     
    68536853        // of flexbox.
    68546854        if (firstLineBlock->isReplaced() || firstLineBlock->isFloating()
    6855             || !parentBlock || parentBlock->firstChild() != firstLineBlock || !parentBlock->isBlockFlow()
     6855            || !parentBlock || parentBlock->firstChild() != firstLineBlock || !parentBlock->isBlockFlowFlexBoxOrGrid()
    68566856            || (parentBlock->isFlexibleBox() && !parentBlock->isRenderButton()))
    68576857            break;
     
    69126912        RenderObject* parentBlock = firstLetterBlock->parent();
    69136913        if (firstLetterBlock->isReplaced() || !parentBlock || parentBlock->firstChild() != firstLetterBlock ||
    6914             !parentBlock->isBlockFlow() || (parentBlock->isFlexibleBox() && !parentBlock->isRenderButton()))
     6914            !parentBlock->isBlockFlowFlexBoxOrGrid() || (parentBlock->isFlexibleBox() && !parentBlock->isRenderButton()))
    69156915            return 0;
    69166916        firstLetterBlock = parentBlock;
     
    70947094{
    70957095    return !obj->isFloatingOrOutOfFlowPositioned() && !obj->isRunIn()
    7096             && obj->isBlockFlow() && obj->style()->height().isAuto()
     7096            && obj->isBlockFlowFlexBoxOrGrid() && obj->style()->height().isAuto()
    70977097            && (!obj->isDeprecatedFlexibleBox() || obj->style()->boxOrient() == VERTICAL);
    70987098}
     
    71997199            for (RenderBox* obj = firstChildBox(); obj; obj = obj->nextSiblingBox()) {
    72007200                if (!obj->isFloatingOrOutOfFlowPositioned()) {
    7201                     if (obj->isBlockFlow() && !obj->hasOverflowClip())
     7201                    if (obj->isBlockFlowFlexBoxOrGrid() && !obj->hasOverflowClip())
    72027202                        toRenderBlock(obj)->adjustForBorderFit(x + obj->x(), left, right);
    72037203                    else if (obj->style()->visibility() == VISIBLE) {
  • trunk/Source/WebCore/rendering/RenderBlock.h

    r155162 r155211  
    9090#endif
    9191
     92protected:
    9293    explicit RenderBlock(ContainerNode*);
    9394    virtual ~RenderBlock();
    9495
     96public:
    9597    static RenderBlock* createAnonymous(Document*);
    9698
     
    628630
    629631    virtual bool isRenderBlock() const OVERRIDE FINAL { return true; }
    630     virtual bool isBlockFlow() const OVERRIDE FINAL { return (!isInline() || isReplaced()) && !isTable(); }
    631632    virtual bool isInlineBlockOrInlineTable() const OVERRIDE FINAL { return isInline() && isReplaced(); }
    632633
  • trunk/Source/WebCore/rendering/RenderBox.cpp

    r155162 r155211  
    21042104    }
    21052105   
    2106     if (position != AbsolutePosition && position != FixedPosition && o->hasColumns() && o->isBlockFlow()) {
     2106    if (position != AbsolutePosition && position != FixedPosition && o->hasColumns() && o->isBlockFlowFlexBoxOrGrid()) {
    21072107        LayoutRect repaintRect(topLeft, rect.size());
    21082108        toRenderBlock(o)->adjustRectForColumns(repaintRect);
     
    40944094
    40954095    for (RenderObject* renderObject = firstChild(); renderObject; renderObject = renderObject->nextSibling()) {
    4096         if ((!renderObject->firstChild() && !renderObject->isInline() && !renderObject->isBlockFlow() )
     4096        if ((!renderObject->firstChild() && !renderObject->isInline() && !renderObject->isBlockFlowFlexBoxOrGrid() )
    40974097            || renderObject->style()->visibility() != VISIBLE)
    40984098            continue;
  • trunk/Source/WebCore/rendering/RenderBoxModelObject.h

    r155162 r155211  
    176176    virtual void setSelectionState(SelectionState s);
    177177
    178     bool canHaveBoxInfoInRegion() const { return !isFloating() && !isReplaced() && !isInline() && !hasColumns() && !isTableCell() && isBlockFlow() && !isRenderSVGBlock(); }
     178    bool canHaveBoxInfoInRegion() const { return !isFloating() && !isReplaced() && !isInline() && !hasColumns() && !isTableCell() && isBlockFlowFlexBoxOrGrid() && !isRenderSVGBlock(); }
    179179
    180180
  • trunk/Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp

    r155162 r155211  
    989989        child->clearOverrideSize();
    990990        if (relayoutChildren || (child->isReplaced() && (child->style()->width().isPercent() || child->style()->height().isPercent()))
    991             || (child->style()->height().isAuto() && child->isBlockFlow())) {
     991            || (child->style()->height().isAuto() && child->isRenderBlock())) {
    992992            child->setChildNeedsLayout(true, MarkOnlyThis);
    993993
     
    999999        }
    10001000        child->layoutIfNeeded();
    1001         if (child->style()->height().isAuto() && child->isBlockFlow())
     1001        if (child->style()->height().isAuto() && child->isRenderBlock())
    10021002            maxLineCount = max(maxLineCount, toRenderBlock(child)->lineCount());
    10031003    }
     
    10111011
    10121012    for (RenderBox* child = iterator.first(); child; child = iterator.next()) {
    1013         if (childDoesNotAffectWidthOrFlexing(child) || !child->style()->height().isAuto() || !child->isBlockFlow())
     1013        if (childDoesNotAffectWidthOrFlexing(child) || !child->style()->height().isAuto() || !child->isRenderBlock())
    10141014            continue;
    10151015
     
    10881088        child->clearOverrideSize();
    10891089        if ((child->isReplaced() && (child->style()->width().isPercent() || child->style()->height().isPercent()))
    1090             || (child->style()->height().isAuto() && child->isBlockFlow())) {
     1090            || (child->style()->height().isAuto() && child->isRenderBlock())) {
    10911091            child->setChildNeedsLayout(true);
    10921092
  • trunk/Source/WebCore/rendering/RenderDetailsMarker.cpp

    r155162 r155211  
    3434
    3535RenderDetailsMarker::RenderDetailsMarker(Element* element)
    36     : RenderBlock(element)
     36    : RenderBlockFlow(element)
    3737{
    3838}
  • trunk/Source/WebCore/rendering/RenderDetailsMarker.h

    r155162 r155211  
    2323
    2424#if ENABLE(DETAILS_ELEMENT)
    25 #include "RenderBlock.h"
     25#include "RenderBlockFlow.h"
    2626
    2727namespace WebCore {
    2828
    29 class RenderDetailsMarker FINAL : public RenderBlock {
     29class RenderDetailsMarker FINAL : public RenderBlockFlow {
    3030public:
    3131    RenderDetailsMarker(Element*);
  • trunk/Source/WebCore/rendering/RenderFieldset.cpp

    r155162 r155211  
    3838
    3939RenderFieldset::RenderFieldset(Element* element)
    40     : RenderBlock(element)
     40    : RenderBlockFlow(element)
    4141{
    4242}
  • trunk/Source/WebCore/rendering/RenderFieldset.h

    r155162 r155211  
    2525#define RenderFieldset_h
    2626
    27 #include "RenderBlock.h"
     27#include "RenderBlockFlow.h"
    2828
    2929namespace WebCore {
    3030
    31 class RenderFieldset FINAL : public RenderBlock {
     31class RenderFieldset FINAL : public RenderBlockFlow {
    3232public:
    3333    explicit RenderFieldset(Element*);
  • trunk/Source/WebCore/rendering/RenderFileUploadControl.cpp

    r155162 r155211  
    5252
    5353RenderFileUploadControl::RenderFileUploadControl(HTMLInputElement* input)
    54     : RenderBlock(input)
     54    : RenderBlockFlow(input)
    5555    , m_canReceiveDroppedFiles(input->canReceiveDroppedFiles())
    5656{
  • trunk/Source/WebCore/rendering/RenderFileUploadControl.h

    r155162 r155211  
    2222#define RenderFileUploadControl_h
    2323
    24 #include "RenderBlock.h"
     24#include "RenderBlockFlow.h"
    2525
    2626namespace WebCore {
     
    3232// associated with it to receive click/hover events.
    3333
    34 class RenderFileUploadControl FINAL : public RenderBlock {
     34class RenderFileUploadControl FINAL : public RenderBlockFlow {
    3535public:
    3636    RenderFileUploadControl(HTMLInputElement*);
  • trunk/Source/WebCore/rendering/RenderFlowThread.cpp

    r155162 r155211  
    5252
    5353RenderFlowThread::RenderFlowThread()
    54     : RenderBlock(0)
     54    : RenderBlockFlow(0)
    5555    , m_previousRegionCount(0)
    5656    , m_autoLogicalHeightRegionsCount(0)
  • trunk/Source/WebCore/rendering/RenderFlowThread.h

    r155162 r155211  
    3232
    3333
    34 #include "RenderBlock.h"
     34#include "RenderBlockFlow.h"
    3535#include <wtf/HashCountedSet.h>
    3636#include <wtf/ListHashSet.h>
     
    5656// of the RenderFlowThread.
    5757
    58 class RenderFlowThread: public RenderBlock {
     58class RenderFlowThread: public RenderBlockFlow {
    5959public:
    6060    RenderFlowThread();
  • trunk/Source/WebCore/rendering/RenderFullScreen.cpp

    r155162 r155211  
    2929#include "RenderFullScreen.h"
    3030
     31#include "RenderBlockFlow.h"
    3132#include "RenderLayer.h"
    3233
     
    3738using namespace WebCore;
    3839
    39 class RenderFullScreenPlaceholder FINAL : public RenderBlock {
     40class RenderFullScreenPlaceholder FINAL : public RenderBlockFlow {
    4041public:
    4142    RenderFullScreenPlaceholder(RenderFullScreen* owner)
    42         : RenderBlock(0)
     43        : RenderBlockFlow(0)
    4344        , m_owner(owner)
    4445    {
  • trunk/Source/WebCore/rendering/RenderInline.cpp

    r155162 r155211  
    10881088    LayoutPoint topLeft = rect.location();
    10891089
    1090     if (o->isBlockFlow() && !style()->hasOutOfFlowPosition()) {
     1090    if (o->isBlockFlowFlexBoxOrGrid() && !style()->hasOutOfFlowPosition()) {
    10911091        RenderBlock* cb = toRenderBlock(o);
    10921092        if (cb->hasColumns()) {
  • trunk/Source/WebCore/rendering/RenderLineBoxList.cpp

    r155162 r155211  
    312312void RenderLineBoxList::dirtyLinesFromChangedChild(RenderObject* container, RenderObject* child)
    313313{
    314     if (!container->parent() || (container->isRenderBlock() && (container->selfNeedsLayout() || !container->isBlockFlow())))
     314    if (!container->parent() || (container->isRenderBlock() && (container->selfNeedsLayout() || !container->isBlockFlowFlexBoxOrGrid())))
    315315        return;
    316316
  • trunk/Source/WebCore/rendering/RenderListItem.cpp

    r155162 r155211  
    4343
    4444RenderListItem::RenderListItem(Element* element)
    45     : RenderBlock(element)
     45    : RenderBlockFlow(element)
    4646    , m_marker(0)
    4747    , m_hasExplicitValue(false)
     
    7777        m_marker = 0;
    7878    }
    79     RenderBlock::willBeDestroyed();
     79    RenderBlockFlow::willBeDestroyed();
    8080}
    8181
     
    8989void RenderListItem::willBeRemovedFromTree()
    9090{
    91     RenderBlock::willBeRemovedFromTree();
     91    RenderBlockFlow::willBeRemovedFromTree();
    9292
    9393    updateListMarkerNumbers();
     
    307307
    308308    insertOrMoveMarkerRendererIfNeeded();
    309     RenderBlock::layout();
     309    RenderBlockFlow::layout();
    310310}
    311311
    312312void RenderListItem::addOverflowFromChildren()
    313313{
    314     RenderBlock::addOverflowFromChildren();
     314    RenderBlockFlow::addOverflowFromChildren();
    315315    positionListMarker();
    316316}
     
    326326#endif
    327327    insertOrMoveMarkerRendererIfNeeded();
    328     RenderBlock::computePreferredLogicalWidths();
     328    RenderBlockFlow::computePreferredLogicalWidths();
    329329}
    330330
     
    429429        return;
    430430
    431     RenderBlock::paint(paintInfo, paintOffset);
     431    RenderBlockFlow::paint(paintInfo, paintOffset);
    432432}
    433433
  • trunk/Source/WebCore/rendering/RenderListItem.h

    r155162 r155211  
    2424#define RenderListItem_h
    2525
    26 #include "RenderBlock.h"
     26#include "RenderBlockFlow.h"
    2727
    2828namespace WebCore {
     
    3131class RenderListMarker;
    3232
    33 class RenderListItem FINAL : public RenderBlock {
     33class RenderListItem FINAL : public RenderBlockFlow {
    3434public:
    3535    explicit RenderListItem(Element*);
  • trunk/Source/WebCore/rendering/RenderMeter.cpp

    r155162 r155211  
    3434
    3535RenderMeter::RenderMeter(HTMLElement* element)
    36     : RenderBlock(element)
     36    : RenderBlockFlow(element)
    3737{
    3838}
  • trunk/Source/WebCore/rendering/RenderMeter.h

    r155162 r155211  
    2323
    2424#if ENABLE(METER_ELEMENT)
    25 #include "RenderBlock.h"
     25#include "RenderBlockFlow.h"
    2626#include "RenderWidget.h"
    2727
     
    3131class HTMLMeterElement;
    3232
    33 class RenderMeter FINAL : public RenderBlock {
     33class RenderMeter FINAL : public RenderBlockFlow {
    3434public:
    3535    explicit RenderMeter(HTMLElement*);
  • trunk/Source/WebCore/rendering/RenderMultiColumnBlock.cpp

    r155162 r155211  
    3737
    3838RenderMultiColumnBlock::RenderMultiColumnBlock(Element* element)
    39     : RenderBlock(element)
     39    : RenderBlockFlow(element)
    4040    , m_flowThread(0)
    4141    , m_columnCount(1)
  • trunk/Source/WebCore/rendering/RenderMultiColumnBlock.h

    r155162 r155211  
    2828#define RenderMultiColumnBlock_h
    2929
    30 #include "RenderBlock.h"
     30#include "RenderBlockFlow.h"
    3131
    3232namespace WebCore {
     
    3434class RenderMultiColumnFlowThread;
    3535
    36 class RenderMultiColumnBlock FINAL : public RenderBlock {
     36class RenderMultiColumnBlock FINAL : public RenderBlockFlow {
    3737public:
    3838    RenderMultiColumnBlock(Element*);
  • trunk/Source/WebCore/rendering/RenderObject.cpp

    r155162 r155211  
    208208        if ((!style->hasAutoColumnCount() || !style->hasAutoColumnWidth()) && document.regionBasedColumnsEnabled())
    209209            return new (arena) RenderMultiColumnBlock(element);
    210         return new (arena) RenderBlock(element);
     210        return new (arena) RenderBlockFlow(element);
    211211    case LIST_ITEM:
    212212        return new (arena) RenderListItem(element);
     
    15581558
    15591559    if (RenderObject* o = parent()) {
    1560         if (o->isBlockFlow()) {
     1560        if (o->isBlockFlowFlexBoxOrGrid()) {
    15611561            RenderBlock* cb = toRenderBlock(o);
    15621562            if (cb->hasColumns())
     
    19651965        s_affectsParentBlock = isFloatingOrOutOfFlowPositioned()
    19661966            && (!newStyle->isFloating() && !newStyle->hasOutOfFlowPosition())
    1967             && parent() && (parent()->isBlockFlow() || parent()->isRenderInline());
     1967            && parent() && (parent()->isBlockFlowFlexBoxOrGrid() || parent()->isRenderInline());
    19681968
    19691969        s_noLongerAffectsParentBlock = ((!isFloating() && newStyle->isFloating()) || (!isOutOfFlowPositioned() && newStyle->hasOutOfFlowPosition()))
     
    27972797        rendererForFirstLineStyle = renderer->parent();
    27982798
    2799     if (rendererForFirstLineStyle->isBlockFlow()) {
     2799    if (rendererForFirstLineStyle->isBlockFlowFlexBoxOrGrid()) {
    28002800        if (RenderBlock* firstLineBlock = rendererForFirstLineStyle->firstLineBlock()) {
    28012801            if (type == Cached)
  • trunk/Source/WebCore/rendering/RenderObject.h

    r155162 r155211  
    322322
    323323    virtual bool isBR() const { return false; }
    324     virtual bool isBlockFlow() const { return false; }
    325324    virtual bool isBoxModelObject() const { return false; }
    326325    virtual bool isCounter() const { return false; }
     
    351350#endif
    352351    virtual bool isRenderBlock() const { return false; }
     352    virtual bool isRenderBlockFlow() const { return false; }
    353353    virtual bool isRenderSVGBlock() const { return false; };
    354354    virtual bool isRenderButton() const { return false; }
     
    406406
    407407    bool isTablePart() const { return isTableCell() || isRenderTableCol() || isTableCaption() || isTableRow() || isTableSection(); }
     408
     409    // FIXME: This is the renamed version of isBlockFlow() and it makes it more obvious that flexible boxes and grids are being included. Most
     410    // of the current callers did not in fact intend to include flexible boxes and grids (but have been for years), so we will want to
     411    // convert those callers over to isRenderBlockFlow() instead. We'll do this call site by call site in order to try to find the
     412    // code that is making bad assumptions and change it. Once that's finished, this method will just go away.
     413    bool isBlockFlowFlexBoxOrGrid() const { return isRenderBlockFlow() || isFlexibleBoxIncludingDeprecated() || isRenderGrid(); }
    408414
    409415    inline bool isBeforeContent() const;
  • trunk/Source/WebCore/rendering/RenderObjectChildList.cpp

    r155162 r155211  
    119119{
    120120    ASSERT(!newChild->parent());
    121     ASSERT(!owner->isBlockFlow() || (!newChild->isTableSection() && !newChild->isTableRow() && !newChild->isTableCell()));
     121    ASSERT(!owner->isBlockFlowFlexBoxOrGrid() || (!newChild->isTableSection() && !newChild->isTableRow() && !newChild->isTableCell()));
    122122
    123123    while (beforeChild && beforeChild->parent() && beforeChild->parent() != owner)
  • trunk/Source/WebCore/rendering/RenderProgress.cpp

    r155162 r155211  
    3535
    3636RenderProgress::RenderProgress(HTMLElement* element)
    37     : RenderBlock(element)
     37    : RenderBlockFlow(element)
    3838    , m_position(HTMLProgressElement::InvalidPosition)
    3939    , m_animationStartTime(0)
  • trunk/Source/WebCore/rendering/RenderProgress.h

    r155162 r155211  
    2323
    2424#if ENABLE(PROGRESS_ELEMENT)
    25 #include "RenderBlock.h"
     25#include "RenderBlockFlow.h"
    2626
    2727namespace WebCore {
     
    2929class HTMLProgressElement;
    3030
    31 class RenderProgress FINAL : public RenderBlock {
     31class RenderProgress FINAL : public RenderBlockFlow {
    3232public:
    3333    explicit RenderProgress(HTMLElement*);
  • trunk/Source/WebCore/rendering/RenderRegion.cpp

    r155162 r155211  
    5050
    5151RenderRegion::RenderRegion(Element* element, RenderFlowThread* flowThread)
    52     : RenderBlock(element)
     52    : RenderBlockFlow(element)
    5353    , m_flowThread(flowThread)
    5454    , m_parentNamedFlowThread(0)
  • trunk/Source/WebCore/rendering/RenderRegion.h

    r155162 r155211  
    3131#define RenderRegion_h
    3232
    33 #include "RenderBlock.h"
     33#include "RenderBlockFlow.h"
    3434#include "StyleInheritedData.h"
    3535
     
    4444class RenderNamedFlowThread;
    4545
    46 class RenderRegion : public RenderBlock {
     46class RenderRegion : public RenderBlockFlow {
    4747public:
    4848    explicit RenderRegion(Element*, RenderFlowThread*);
  • trunk/Source/WebCore/rendering/RenderRuby.cpp

    r155162 r155211  
    217217
    218218RenderRubyAsBlock::RenderRubyAsBlock(Element* element)
    219     : RenderBlock(element)
     219    : RenderBlockFlow(element)
    220220{
    221221}
  • trunk/Source/WebCore/rendering/RenderRuby.h

    r155162 r155211  
    3232#define RenderRuby_h
    3333
    34 #include "RenderBlock.h"
     34#include "RenderBlockFlow.h"
    3535#include "RenderInline.h"
    3636
     
    7171
    7272// <ruby> when used as 'display:block' or 'display:inline-block'
    73 class RenderRubyAsBlock FINAL : public RenderBlock {
     73class RenderRubyAsBlock FINAL : public RenderBlockFlow {
    7474public:
    7575    RenderRubyAsBlock(Element*);
  • trunk/Source/WebCore/rendering/RenderRubyBase.cpp

    r155162 r155211  
    4040
    4141RenderRubyBase::RenderRubyBase()
    42     : RenderBlock(0)
     42    : RenderBlockFlow(0)
    4343{
    4444    setInline(false);
  • trunk/Source/WebCore/rendering/RenderRubyBase.h

    r155162 r155211  
    3232#define RenderRubyBase_h
    3333
    34 #include "RenderBlock.h"
     34#include "RenderBlockFlow.h"
    3535
    3636namespace WebCore {
     
    3838class RenderRubyRun;
    3939
    40 class RenderRubyBase FINAL : public RenderBlock {
     40class RenderRubyBase FINAL : public RenderBlockFlow {
    4141public:
    4242    virtual ~RenderRubyBase();
  • trunk/Source/WebCore/rendering/RenderRubyRun.cpp

    r155162 r155211  
    4545
    4646RenderRubyRun::RenderRubyRun()
    47     : RenderBlock(0)
     47    : RenderBlockFlow(0)
    4848{
    4949    setReplaced(true);
  • trunk/Source/WebCore/rendering/RenderRubyRun.h

    r155162 r155211  
    3232#define RenderRubyRun_h
    3333
    34 #include "RenderBlock.h"
     34#include "RenderBlockFlow.h"
    3535
    3636namespace WebCore {
     
    4242// See RenderRuby.h for further comments on the structure
    4343
    44 class RenderRubyRun FINAL : public RenderBlock {
     44class RenderRubyRun FINAL : public RenderBlockFlow {
    4545public:
    4646    virtual ~RenderRubyRun();
  • trunk/Source/WebCore/rendering/RenderRubyText.cpp

    r155162 r155211  
    3939
    4040RenderRubyText::RenderRubyText(Element* element)
    41     : RenderBlock(element)
     41    : RenderBlockFlow(element)
    4242{
    4343}
  • trunk/Source/WebCore/rendering/RenderRubyText.h

    r155162 r155211  
    3232#define RenderRubyText_h
    3333
    34 #include "RenderBlock.h"
     34#include "RenderBlockFlow.h"
    3535
    3636namespace WebCore {
    3737
    38 class RenderRubyText FINAL : public RenderBlock {
     38class RenderRubyText FINAL : public RenderBlockFlow {
    3939public:
    4040    RenderRubyText(Element*);
  • trunk/Source/WebCore/rendering/RenderTableCaption.cpp

    r155162 r155211  
    2626
    2727RenderTableCaption::RenderTableCaption(Element* element)
    28     : RenderBlock(element)
     28    : RenderBlockFlow(element)
    2929{
    3030}
  • trunk/Source/WebCore/rendering/RenderTableCaption.h

    r155162 r155211  
    2121#define RenderTableCaption_h
    2222
    23 #include "RenderBlock.h"
     23#include "RenderBlockFlow.h"
    2424
    2525namespace WebCore {
     
    2727class RenderTable;
    2828
    29 class RenderTableCaption FINAL : public RenderBlock {
     29class RenderTableCaption FINAL : public RenderBlockFlow {
    3030public:
    3131    explicit RenderTableCaption(Element*);
  • trunk/Source/WebCore/rendering/RenderTableCell.cpp

    r155162 r155211  
    4949using namespace HTMLNames;
    5050
    51 struct SameSizeAsRenderTableCell : public RenderBlock {
     51struct SameSizeAsRenderTableCell : public RenderBlockFlow {
    5252    unsigned bitfields;
    5353    int paddings[2];
     
    5858
    5959RenderTableCell::RenderTableCell(Element* element)
    60     : RenderBlock(element)
     60    : RenderBlockFlow(element)
    6161    , m_column(unsetColumnIndex)
    6262    , m_cellWidthChanged(false)
  • trunk/Source/WebCore/rendering/RenderTableCell.h

    r155162 r155211  
    2626#define RenderTableCell_h
    2727
     28#include "RenderBlockFlow.h"
    2829#include "RenderTableRow.h"
    2930#include "RenderTableSection.h"
     
    3637enum IncludeBorderColorOrNot { DoNotIncludeBorderColor, IncludeBorderColor };
    3738
    38 class RenderTableCell FINAL : public RenderBlock {
     39class RenderTableCell FINAL : public RenderBlockFlow {
    3940public:
    4041    explicit RenderTableCell(Element*);
  • trunk/Source/WebCore/rendering/RenderTextControl.cpp

    r155162 r155211  
    3838
    3939RenderTextControl::RenderTextControl(Element* element)
    40     : RenderBlock(element)
     40    : RenderBlockFlow(element)
    4141{
    4242    ASSERT(isHTMLTextFormControlElement(element));
  • trunk/Source/WebCore/rendering/RenderTextControl.h

    r155162 r155211  
    2323#define RenderTextControl_h
    2424
    25 #include "RenderBlock.h"
     25#include "RenderBlockFlow.h"
    2626#include "RenderFlexibleBox.h"
    2727
     
    3030class HTMLTextFormControlElement;
    3131
    32 class RenderTextControl : public RenderBlock {
     32class RenderTextControl : public RenderBlockFlow {
    3333public:
    3434    virtual ~RenderTextControl();
  • trunk/Source/WebCore/rendering/RenderTextControlSingleLine.h

    r155162 r155211  
    109109// ----------------------------
    110110
    111 class RenderTextControlInnerBlock : public RenderBlock {
     111class RenderTextControlInnerBlock : public RenderBlockFlow {
    112112public:
    113     RenderTextControlInnerBlock(Element* element) : RenderBlock(element) { }
     113    RenderTextControlInnerBlock(Element* element) : RenderBlockFlow(element) { }
    114114
    115115private:
  • trunk/Source/WebCore/rendering/RenderTextTrackCue.cpp

    r155162 r155211  
    2929
    3030#include "RenderTextTrackCue.h"
     31#include "RenderView.h"
    3132
    3233#include "RenderView.h"
     
    3839
    3940RenderTextTrackCue::RenderTextTrackCue(TextTrackCueBox* element)
    40     : RenderBlock(element)
     41    : RenderBlockFlow(element)
    4142    , m_cue(element->getCue())
    4243{
  • trunk/Source/WebCore/rendering/RenderTextTrackCue.h

    r155162 r155211  
    3030
    3131#include "FloatPoint.h"
    32 #include "RenderBlock.h"
     32#include "RenderBlockFlow.h"
    3333#include "RenderInline.h"
    3434
     
    3838class TextTrackCueBox;
    3939
    40 class RenderTextTrackCue FINAL : public RenderBlock {
     40class RenderTextTrackCue FINAL : public RenderBlockFlow {
    4141public:
    4242    explicit RenderTextTrackCue(TextTrackCueBox*);
  • trunk/Source/WebCore/rendering/RenderView.cpp

    r155162 r155211  
    5858
    5959RenderView::RenderView(Document* document)
    60     : RenderBlock(document)
     60    : RenderBlockFlow(document)
    6161    , m_frameView(*document->view())
    6262    , m_selectionStart(0)
  • trunk/Source/WebCore/rendering/RenderView.h

    r155162 r155211  
    2626#include "LayoutState.h"
    2727#include "PODFreeListArena.h"
    28 #include "RenderBlock.h"
     28#include "RenderBlockFlow.h"
    2929#include <wtf/OwnPtr.h>
    3030
     
    4444#endif
    4545
    46 class RenderView FINAL : public RenderBlock {
     46class RenderView FINAL : public RenderBlockFlow {
    4747public:
    4848    explicit RenderView(Document*);
     
    254254        // We push LayoutState even if layoutState is disabled because it stores layoutDelta too.
    255255        if (!doingFullRepaint() || m_layoutState->isPaginated() || renderer->hasColumns() || renderer->flowThreadContainingBlock()
    256             || m_layoutState->lineGrid() || (renderer->style()->lineGrid() != RenderStyle::initialLineGrid() && renderer->isBlockFlow())
     256            || m_layoutState->lineGrid() || (renderer->style()->lineGrid() != RenderStyle::initialLineGrid() && renderer->isBlockFlowFlexBoxOrGrid())
    257257#if ENABLE(CSS_SHAPES)
    258258            || (renderer->isRenderBlock() && toRenderBlock(renderer)->shapeInsideInfo())
  • trunk/Source/WebCore/rendering/RenderingAllInOne.cpp

    r155162 r155211  
    4747#include "RenderBR.cpp"
    4848#include "RenderBlock.cpp"
     49#include "RenderBlockFlow.cpp"
    4950#include "RenderBlockLineLayout.cpp"
    5051#include "RenderBox.cpp"
  • trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp

    r155162 r155211  
    3434#include "FontSelector.h"
    3535#include "MathMLNames.h"
     36#include "RenderBlockFlow.h"
    3637#include "RenderText.h"
    3738
     
    308309    RenderBlock* parent = container;
    309310    if (charRelative) {
    310         RenderBlock* charBlock = new (renderArena()) RenderBlock(node());
     311        RenderBlock* charBlock = new (renderArena()) RenderBlockFlow(node());
    311312        RefPtr<RenderStyle> charStyle = RenderStyle::create();
    312313        charStyle->inheritFrom(container->style());
  • trunk/Source/WebCore/rendering/svg/RenderSVGBlock.cpp

    r155162 r155211  
    3333
    3434RenderSVGBlock::RenderSVGBlock(SVGElement* element)
    35     : RenderBlock(element)
     35    : RenderBlockFlow(element)
    3636{
    3737}
  • trunk/Source/WebCore/rendering/svg/RenderSVGBlock.h

    r155162 r155211  
    2222
    2323#if ENABLE(SVG)
    24 #include "RenderBlock.h"
     24#include "RenderBlockFlow.h"
    2525#include "SVGRenderSupport.h"
    2626
     
    2929class SVGElement;
    3030
    31 class RenderSVGBlock : public RenderBlock {
     31class RenderSVGBlock : public RenderBlockFlow {
    3232public:
    3333    explicit RenderSVGBlock(SVGElement*);
Note: See TracChangeset for help on using the changeset viewer.