Ignore:
Timestamp:
Sep 5, 2013, 12:32:35 PM (12 years ago)
Author:
[email protected]
Message:

Add new RenderBlockFlow class
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:
File:
1 edited

Legend:

Unmodified
Added
Removed
Note: See TracChangeset for help on using the changeset viewer.