-
hyatt@apple.com authored
https://bugs.webkit.org/show_bug.cgi?id=120777 Reviewed by Simon Fraser. 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. The only real change here is that isBlockFlow() has been renamed to isRenderBlockFlow() and is now checking if the object is a RenderBlockFlow. All of the block subclasses have been patched to be a RenderBlock or RenderBlockFlow. * 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/shadow/SliderThumbElement.cpp: (WebCore::RenderSliderThumb::RenderSliderThumb): * html/shadow/SliderThumbElement.h: * rendering/LayoutState.cpp: (WebCore::LayoutState::LayoutState): * rendering/RenderBlock.cpp: (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/RenderBlockFlow.cpp: Added. (WebCore::RenderBlockFlow::RenderBlockFlow): (WebCore::RenderBlockFlow::~RenderBlockFlow): * rendering/RenderBlockFlow.h: Added. (WebCore::toRenderBlockFlow): * 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/RenderMeter.cpp: (WebCore::RenderMeter::RenderMeter): * rendering/RenderMeter.h: * rendering/RenderMultiColumnBlock.cpp: (WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock): * rendering/RenderMultiColumnBlock.h: * rendering/RenderObject.cpp: (WebCore::RenderObject::computeRectForRepaint): (WebCore::RenderObject::styleWillChange): (WebCore::firstLineStyleForCachedUncachedType): * rendering/RenderObject.h: (WebCore::RenderObject::isBR): (WebCore::RenderObject::isRenderBlockFlow): * 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/svg/RenderSVGBlock.cpp: (WebCore::RenderSVGBlock::RenderSVGBlock): * rendering/svg/RenderSVGBlock.h: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@155139 268f45cc-cd09-0410-ab3c-d52691b4dbfc
620bb2ee