Move m_floatingObjects to RenderBlockFlow from RenderBlock
https://bugs.webkit.org/show_bug.cgi?id=122512
Reviewed by David Hyatt.
Floats are part of block flow, not every RenderBlock can contain
floars. This change makes it so that RenderBlock no longer can contain
floats, only RenderBlockFlow can.
This also moves a bunch of line layout stuff over to RenderBlockFlow,
but makes no effort to move all of line layout, as all of that is
destined to move out of both RenderBlockFlow and RenderBlock into its
own class.
No new tests, no behavior change.
- rendering/InlineIterator.h:
(WebCore::InlineBidiResolver::appendRun):
(WebCore::LineWidth::LineWidth):
- rendering/LineWidth.h:
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::styleWillChange):
(WebCore::RenderBlock::styleDidChange):
(WebCore::RenderBlock::splitFlow):
(WebCore::RenderBlock::deleteLineBoxTree):
(WebCore::RenderBlock::removeChild):
(WebCore::RenderBlock::computeOverflow):
(WebCore::RenderBlock::selectionGaps):
(WebCore::RenderBlock::adjustForBorderFit):
(WebCore::RenderBlock::containsFloats):
(WebCore::RenderBlock::shouldSkipCreatingRunsForObject):
(WebCore::RenderBlock::addOverflowFromFloats):
(WebCore::RenderBlock::logicalRightFloatOffsetForLine):
(WebCore::RenderBlock::logicalLeftFloatOffsetForLine):
(WebCore::RenderBlock::moveAllChildrenOnRemovalTo):
(WebCore::RenderBlock::paintFloats):
(WebCore::RenderBlock::hitTestFloats):
(WebCore::RenderBlock::clipOutFloatingObjects):
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::clearFloats):
(WebCore::RenderBlockFlow::layoutBlock):
(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::collapseMargins):
(WebCore::RenderBlockFlow::clearFloatsIfNeeded):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::containsFloat):
(WebCore::RenderBlockFlow::styleDidChange):
(WebCore::RenderBlockFlow::styleWillChange):
(WebCore::RenderBlockFlow::deleteLineBoxTree):
(WebCore::RenderBlockFlow::moveAllChildrenOnRemovalTo):
(WebCore::RenderBlockFlow::addOverflowFromFloats):
(WebCore::RenderBlockFlow::computeOverflow):
(WebCore::RenderBlockFlow::repaintOverhangingFloats):
(WebCore::RenderBlockFlow::paintFloats):
(WebCore::RenderBlockFlow::clipOutFloatingObjects):
(WebCore::RenderBlockFlow::createFloatingObjects):
(WebCore::RenderBlockFlow::removeFloatingObjects):
(WebCore::RenderBlockFlow::insertFloatingObject):
(WebCore::RenderBlockFlow::removeFloatingObject):
(WebCore::RenderBlockFlow::removeFloatingObjectsBelow):
(WebCore::RenderBlockFlow::computeLogicalLocationForFloat):
(WebCore::RenderBlockFlow::positionNewFloats):
(WebCore::RenderBlockFlow::newLine):
(WebCore::RenderBlockFlow::logicalLeftFloatOffsetForLine):
(WebCore::RenderBlockFlow::logicalRightFloatOffsetForLine):
(WebCore::RenderBlockFlow::nextFloatLogicalBottomBelow):
(WebCore::RenderBlockFlow::lowestFloatLogicalBottom):
(WebCore::RenderBlockFlow::addOverhangingFloats):
(WebCore::RenderBlockFlow::hasOverhangingFloat):
(WebCore::RenderBlockFlow::addIntrudingFloats):
(WebCore::RenderBlockFlow::markAllDescendantsWithFloatsForLayout):
(WebCore::RenderBlockFlow::markSiblingsWithFloatsForLayout):
(WebCore::RenderBlockFlow::getClearDelta):
(WebCore::RenderBlockFlow::hitTestFloats):
(WebCore::RenderBlockFlow::adjustForBorderFit):
- rendering/RenderBlockFlow.h:
(WebCore::RenderBlockFlow::hasOverhangingFloats):
- rendering/RenderBlockLineLayout.cpp:
(WebCore::LineBreaker::LineBreaker):
(WebCore::RenderBlockFlow::appendRunsForObject):
(WebCore::RenderBlockFlow::createLineBoxes):
(WebCore::RenderBlockFlow::constructLine):
(WebCore::RenderBlockFlow::setMarginsForRubyRun):
(WebCore::updateLogicalInlinePositions):
(WebCore::RenderBlockFlow::computeInlineDirectionPositionsForLine):
(WebCore::RenderBlockFlow::computeInlineDirectionPositionsForSegment):
(WebCore::RenderBlockFlow::computeBlockDirectionPositionsForLine):
(WebCore::setStaticPositions):
(WebCore::RenderBlockFlow::handleTrailingSpaces):
(WebCore::RenderBlockFlow::appendFloatingObjectToLastLine):
(WebCore::constructBidiRunsForLine):
(WebCore::RenderBlockFlow::createLineBoxesFromBidiRuns):
(WebCore::RenderBlockFlow::layoutRunsAndFloats):
(WebCore::RenderBlockFlow::restartLayoutRunsAndFloatsInRange):
(WebCore::pushShapeContentOverflowBelowTheContentBox):
(WebCore::RenderBlockFlow::updateShapeAndSegmentsForCurrentLine):
(WebCore::RenderBlockFlow::updateShapeAndSegmentsForCurrentLineInFlowThread):
(WebCore::RenderBlockFlow::adjustLogicalLineTopAndLogicalHeightIfNeeded):
(WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):
(WebCore::RenderBlockFlow::linkToEndLineIfNeeded):
(WebCore::RenderBlockFlow::repaintDirtyFloats):
(WebCore::RenderBlockFlow::checkFloatsInCleanLine):
(WebCore::RenderBlockFlow::determineStartPosition):
(WebCore::RenderBlockFlow::determineEndPosition):
(WebCore::RenderBlockFlow::checkPaginationAndFloatsAtEndLine):
(WebCore::RenderBlockFlow::matchedEndLine):
(WebCore::shouldSkipWhitespaceAfterStartObject):
(WebCore::updateSegmentsForShapes):
(WebCore::RenderBlockFlow::deleteEllipsisLineBoxes):
(WebCore::RenderBlockFlow::checkLinesForTextOverflow):
(WebCore::RenderBlockFlow::positionNewFloatOnLine):
(WebCore::RenderBox::outermostBlockContainingFloatingObject):
(WebCore::RenderBox::removeFloatingOrPositionedChildFromBlockLists):
- rendering/RenderBox.h:
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::moveChildrenTo):
- rendering/RenderInline.cpp:
(WebCore::RenderInline::splitFlow):