Changeset 228559 in webkit


Ignore:
Timestamp:
Feb 16, 2018 7:13:31 AM (6 years ago)
Author:
Alan Bujtas
Message:

[RenderTreeBuilder] Move RenderBlock/RenderBlockFlow::addChild() to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=182862
<rdar://problem/37595464>

Reviewed by Antti Koivisto.

No change in functionality.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::addChild): Deleted.

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

(WebCore::RenderBlockFlow::addChild): Deleted.

  • rendering/RenderBlockFlow.h:
  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::insertChild):
(WebCore::RenderTreeBuilder::insertChildToRenderBlock): Deleted.
(WebCore::RenderTreeBuilder::insertChildToRenderBlockFlow): Deleted.

  • rendering/updating/RenderTreeBuilder.h:
  • rendering/updating/RenderTreeBuilderBlockFlow.cpp:

(WebCore::RenderTreeBuilder::BlockFlow::insertChild):

  • rendering/updating/RenderTreeBuilderFormControls.cpp:

(WebCore::RenderTreeBuilder::FormControls::findOrCreateParentForChild):

  • rendering/updating/RenderTreeBuilderMathML.cpp:

(WebCore::RenderTreeBuilder::MathML::makeFences):
(WebCore::RenderTreeBuilder::MathML::insertChild):

  • rendering/updating/RenderTreeBuilderMultiColumn.cpp:

(WebCore::RenderTreeBuilder::MultiColumn::createFragmentedFlow):
(WebCore::RenderTreeBuilder::MultiColumn::processPossibleSpannerDescendant):

  • rendering/updating/RenderTreeBuilderRuby.cpp:

(WebCore::RenderTreeBuilder::Ruby::insertChild):
(WebCore::RenderTreeBuilder::Ruby::findOrCreateParentForChild):
(WebCore::RenderTreeBuilder::Ruby::rubyBaseSafe):

  • rendering/updating/RenderTreeBuilderSVG.cpp:

(WebCore::RenderTreeBuilder::SVG::insertChild):

Location:
trunk/Source/WebCore
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r228557 r228559  
     12018-02-16  Zalan Bujtas  <zalan@apple.com>
     2
     3        [RenderTreeBuilder] Move RenderBlock/RenderBlockFlow::addChild() to RenderTreeBuilder
     4        https://bugs.webkit.org/show_bug.cgi?id=182862
     5        <rdar://problem/37595464>
     6
     7        Reviewed by Antti Koivisto.
     8
     9        No change in functionality.
     10
     11        * rendering/RenderBlock.cpp:
     12        (WebCore::RenderBlock::addChild): Deleted.
     13        * rendering/RenderBlock.h:
     14        * rendering/RenderBlockFlow.cpp:
     15        (WebCore::RenderBlockFlow::addChild): Deleted.
     16        * rendering/RenderBlockFlow.h:
     17        * rendering/updating/RenderTreeBuilder.cpp:
     18        (WebCore::RenderTreeBuilder::insertChild):
     19        (WebCore::RenderTreeBuilder::insertChildToRenderBlock): Deleted.
     20        (WebCore::RenderTreeBuilder::insertChildToRenderBlockFlow): Deleted.
     21        * rendering/updating/RenderTreeBuilder.h:
     22        * rendering/updating/RenderTreeBuilderBlockFlow.cpp:
     23        (WebCore::RenderTreeBuilder::BlockFlow::insertChild):
     24        * rendering/updating/RenderTreeBuilderFormControls.cpp:
     25        (WebCore::RenderTreeBuilder::FormControls::findOrCreateParentForChild):
     26        * rendering/updating/RenderTreeBuilderMathML.cpp:
     27        (WebCore::RenderTreeBuilder::MathML::makeFences):
     28        (WebCore::RenderTreeBuilder::MathML::insertChild):
     29        * rendering/updating/RenderTreeBuilderMultiColumn.cpp:
     30        (WebCore::RenderTreeBuilder::MultiColumn::createFragmentedFlow):
     31        (WebCore::RenderTreeBuilder::MultiColumn::processPossibleSpannerDescendant):
     32        * rendering/updating/RenderTreeBuilderRuby.cpp:
     33        (WebCore::RenderTreeBuilder::Ruby::insertChild):
     34        (WebCore::RenderTreeBuilder::Ruby::findOrCreateParentForChild):
     35        (WebCore::RenderTreeBuilder::Ruby::rubyBaseSafe):
     36        * rendering/updating/RenderTreeBuilderSVG.cpp:
     37        (WebCore::RenderTreeBuilder::SVG::insertChild):
     38
    1392018-02-16  Wenson Hsieh  <wenson_hsieh@apple.com>
    240
  • trunk/Source/WebCore/rendering/RenderBlock.cpp

    r228441 r228559  
    467467}
    468468
    469 void RenderBlock::addChild(RenderTreeBuilder& builder, RenderPtr<RenderObject> newChild, RenderObject* beforeChild)
    470 {
    471     builder.insertChildToRenderBlock(*this, WTFMove(newChild), beforeChild);
    472 }
    473 
    474469void RenderBlock::addChildIgnoringContinuation(RenderTreeBuilder& builder, RenderPtr<RenderObject> newChild, RenderObject* beforeChild)
    475470{
  • trunk/Source/WebCore/rendering/RenderBlock.h

    r228441 r228559  
    7474    virtual void deleteLines();
    7575
    76     void addChild(RenderTreeBuilder&, RenderPtr<RenderObject> newChild, RenderObject* beforeChild = 0) override;
    77 
    7876    virtual void layoutBlock(bool relayoutChildren, LayoutUnit pageLogicalHeight = 0);
    7977
  • trunk/Source/WebCore/rendering/RenderBlockFlow.cpp

    r228432 r228559  
    38453845}
    38463846
    3847 void RenderBlockFlow::addChild(RenderTreeBuilder& builder, RenderPtr<RenderObject> newChild, RenderObject* beforeChild)
    3848 {
    3849     builder.insertChildToRenderBlockFlow(*this, WTFMove(newChild), beforeChild);
    3850 }
    3851 
    38523847void RenderBlockFlow::checkForPaginationLogicalHeightChange(bool& relayoutChildren, LayoutUnit& pageLogicalHeight, bool& pageLogicalHeightChanged)
    38533848{
  • trunk/Source/WebCore/rendering/RenderBlockFlow.h

    r228432 r228559  
    378378    LayoutUnit logicalHeightForChildForFragmentation(const RenderBox& child) const;
    379379    bool hasNextPage(LayoutUnit logicalOffset, PageBoundaryRule = ExcludePageBoundary) const;
    380 
    381     void addChild(RenderTreeBuilder&, RenderPtr<RenderObject> newChild, RenderObject* beforeChild = 0) override;
    382380
    383381    void updateColumnProgressionFromStyle(RenderStyle&);
  • trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp

    r228547 r228559  
    241241    }
    242242
     243    if (is<RenderBlockFlow>(parent)) {
     244        blockFlowBuilder().insertChild(downcast<RenderBlockFlow>(parent), WTFMove(child), beforeChild);
     245        return;
     246    }
     247
     248    if (is<RenderBlock>(parent)) {
     249        blockBuilder().insertChild(downcast<RenderBlock>(parent), WTFMove(child), beforeChild);
     250        return;
     251    }
     252
    243253    if (is<RenderInline>(parent)) {
    244254        inlineBuilder().insertChild(downcast<RenderInline>(parent), WTFMove(child), beforeChild);
     
    312322    }
    313323    parent.RenderElement::insertChildInternal(WTFMove(child), beforeChild);
    314 }
    315 
    316 void RenderTreeBuilder::insertChildToRenderBlock(RenderBlock& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild)
    317 {
    318     blockBuilder().insertChild(parent, WTFMove(child), beforeChild);
    319324}
    320325
     
    514519}
    515520
    516 void RenderTreeBuilder::insertChildToRenderBlockFlow(RenderBlockFlow& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild)
    517 {
    518     blockFlowBuilder().insertChild(parent, WTFMove(child), beforeChild);
    519 }
    520 
    521521void RenderTreeBuilder::updateAfterDescendants(RenderElement& renderer)
    522522{
  • trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.h

    r228542 r228559  
    6565    // These functions are temporary until after all block/inline/continuation code is moved over.
    6666    void insertChildToRenderElement(RenderElement& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild = nullptr);
    67     void insertChildToRenderBlock(RenderBlock& parent, RenderPtr<RenderObject>, RenderObject* beforeChild = nullptr);
    6867    void insertChildToRenderBlockIgnoringContinuation(RenderBlock& parent, RenderPtr<RenderObject>, RenderObject* beforeChild = nullptr);
    69     void insertChildToRenderBlockFlow(RenderBlockFlow& parent, RenderPtr<RenderObject>, RenderObject* beforeChild = nullptr);
    7068    void insertChildToRenderInlineIgnoringContinuation(RenderInline& parent, RenderPtr<RenderObject>, RenderObject* beforeChild = nullptr);
    7169
  • trunk/Source/WebCore/rendering/updating/RenderTreeBuilderBlockFlow.cpp

    r228465 r228559  
    4343    if (auto* containingFragmentedFlow = parent.enclosingFragmentedFlow())
    4444        beforeChildOrPlaceholder = m_builder.multiColumnBuilder().resolveMovedChild(*containingFragmentedFlow, beforeChild);
    45     m_builder.insertChildToRenderBlock(parent, WTFMove(child), beforeChildOrPlaceholder);
     45    m_builder.blockBuilder().insertChild(parent, WTFMove(child), beforeChildOrPlaceholder);
    4646}
    4747
  • trunk/Source/WebCore/rendering/updating/RenderTreeBuilderFormControls.cpp

    r228550 r228559  
    5757    auto wrapper = parent.createAnonymousBlock(parent.style().display());
    5858    innerRenderer = wrapper.get();
    59     parent.RenderBlock::addChild(m_builder, WTFMove(wrapper));
     59    m_builder.blockBuilder().insertChild(parent, WTFMove(wrapper), nullptr);
    6060    parent.setInnerRenderer(*innerRenderer);
    6161    return *innerRenderer;
     
    7070    auto wrapper = parent.createAnonymousBlock();
    7171    innerRenderer = wrapper.get();
    72     parent.RenderBlock::addChild(m_builder, WTFMove(wrapper));
     72    m_builder.blockBuilder().insertChild(parent, WTFMove(wrapper), nullptr);
    7373    parent.setInnerRenderer(*innerRenderer);
    7474    return *innerRenderer;
  • trunk/Source/WebCore/rendering/updating/RenderTreeBuilderMathML.cpp

    r228550 r228559  
    4848{
    4949    auto openFence = createMathMLOperator(parent, parent.openingBrace(), MathMLOperatorDictionary::Prefix, MathMLOperatorDictionary::Fence);
    50     parent.RenderBlock::addChild(m_builder, WTFMove(openFence), parent.firstChild());
     50    m_builder.blockBuilder().insertChild(parent, WTFMove(openFence), parent.firstChild());
    5151
    5252    auto closeFence = createMathMLOperator(parent, parent.closingBrace(), MathMLOperatorDictionary::Postfix, MathMLOperatorDictionary::Fence);
    5353    parent.setCloseFenceRenderer(*closeFence);
    54     parent.RenderBlock::addChild(m_builder, WTFMove(closeFence));
     54    m_builder.blockBuilder().insertChild(parent, WTFMove(closeFence), nullptr);
    5555}
    5656
     
    9696    if (beforeChild) {
    9797        // Adding |x| before an existing |y| e.g. in element (y) - first insert our new child |x|, then its separator, to get (x, y).
    98         parent.RenderBlock::addChild(m_builder, WTFMove(child), beforeChild);
     98        m_builder.blockBuilder().insertChild(parent, WTFMove(child), beforeChild);
    9999        if (separatorRenderer)
    100             parent.RenderMathMLRow::addChild(m_builder, WTFMove(separatorRenderer), beforeChild);
     100            m_builder.blockBuilder().insertChild(parent, WTFMove(separatorRenderer), beforeChild);
    101101    } else {
    102102        // Adding |y| at the end of an existing element e.g. (x) - insert the separator first before the closing fence, then |y|, to get (x, y).
    103103        if (separatorRenderer)
    104             parent.RenderBlock::addChild(m_builder, WTFMove(separatorRenderer), parent.closeFenceRenderer());
    105         parent.RenderBlock::addChild(m_builder, WTFMove(child), parent.closeFenceRenderer());
     104            m_builder.blockBuilder().insertChild(parent, WTFMove(separatorRenderer), parent.closeFenceRenderer());
     105        m_builder.blockBuilder().insertChild(parent, WTFMove(child), parent.closeFenceRenderer());
    106106    }
    107107}
  • trunk/Source/WebCore/rendering/updating/RenderTreeBuilderMultiColumn.cpp

    r228400 r228559  
    3232#include "RenderMultiColumnSpannerPlaceholder.h"
    3333#include "RenderTreeBuilder.h"
     34#include "RenderTreeBuilderBlock.h"
    3435
    3536namespace WebCore {
     
    169170    newFragmentedFlow->initializeStyle();
    170171    auto& fragmentedFlow = *newFragmentedFlow;
    171     m_builder.insertChildToRenderBlock(flow, WTFMove(newFragmentedFlow));
     172    m_builder.blockBuilder().insertChild(flow, WTFMove(newFragmentedFlow), nullptr);
    172173
    173174    // Reparent children preceding the fragmented flow into the fragmented flow.
     
    318319        // This is a guard to stop an ancestor flow thread from processing the spanner.
    319320        gShiftingSpanner = true;
    320         m_builder.insertChildToRenderBlock(*multicolContainer, WTFMove(takenDescendant), insertBeforeMulticolChild);
     321        m_builder.blockBuilder().insertChild(*multicolContainer, WTFMove(takenDescendant), insertBeforeMulticolChild);
    321322        gShiftingSpanner = false;
    322323
     
    355356    newSet->initializeStyle();
    356357    auto& set = *newSet;
    357     m_builder.insertChildToRenderBlock(*multicolContainer, WTFMove(newSet), insertBeforeMulticolChild);
     358    m_builder.blockBuilder().insertChild(*multicolContainer, WTFMove(newSet), insertBeforeMulticolChild);
    358359    flow.invalidateFragments();
    359360
  • trunk/Source/WebCore/rendering/updating/RenderTreeBuilderRuby.cpp

    r228520 r228559  
    3232#include "RenderTreeBuilder.h"
    3333#include "RenderTreeBuilderBlock.h"
     34#include "RenderTreeBuilderBlockFlow.h"
    3435#include "RenderTreeBuilderInline.h"
    3536
     
    200201            ASSERT(!parent.hasRubyText());
    201202            // prepend ruby texts as first child
    202             parent.addChild(m_builder, WTFMove(child), parent.firstChild());
     203            m_builder.blockFlowBuilder().insertChild(parent, WTFMove(child), parent.firstChild());
    203204            return;
    204205        }
     
    216217            // in order to avoid automatic removal of the ruby run in case there is no
    217218            // other child besides the old ruby text.
    218             parent.addChild(m_builder, WTFMove(child), beforeChild);
     219            m_builder.blockFlowBuilder().insertChild(parent, WTFMove(child), beforeChild);
    219220            auto takenBeforeChild = m_builder.blockBuilder().takeChild(parent, *beforeChild);
    220221
     
    253254            auto newBlock = createAnonymousRubyInlineBlock(parent);
    254255            beforeBlock = newBlock.get();
    255             m_builder.insertChildToRenderBlockFlow(parent, WTFMove(newBlock), parent.firstChild());
     256            m_builder.blockFlowBuilder().insertChild(parent, WTFMove(newBlock), parent.firstChild());
    256257        }
    257258        beforeChild = nullptr;
     
    268269            auto newBlock = createAnonymousRubyInlineBlock(parent);
    269270            afterBlock = newBlock.get();
    270             m_builder.insertChildToRenderBlockFlow(parent, WTFMove(newBlock));
     271            m_builder.blockFlowBuilder().insertChild(parent, WTFMove(newBlock), nullptr);
    271272        }
    272273        beforeChild = nullptr;
     
    297298        auto newRun = RenderRubyRun::staticCreateRubyRun(&parent);
    298299        lastRun = newRun.get();
    299         m_builder.insertChildToRenderBlockFlow(parent, WTFMove(newRun), beforeChild);
     300        m_builder.blockFlowBuilder().insertChild(parent, WTFMove(newRun), beforeChild);
    300301    }
    301302    beforeChild = nullptr;
     
    371372        auto newBase = rubyRun.createRubyBase();
    372373        base = newBase.get();
    373         m_builder.insertChildToRenderBlockFlow(rubyRun, WTFMove(newBase));
     374        m_builder.blockFlowBuilder().insertChild(rubyRun, WTFMove(newBase), nullptr);
    374375    }
    375376    return *base;
  • trunk/Source/WebCore/rendering/updating/RenderTreeBuilderSVG.cpp

    r228550 r228559  
    6868{
    6969    auto& childToAdd = *child;
    70     m_builder.insertChildToRenderBlockFlow(parent, WTFMove(child), beforeChild);
     70    m_builder.blockFlowBuilder().insertChild(parent, WTFMove(child), beforeChild);
    7171
    7272    SVGResourcesCache::clientWasAddedToTree(childToAdd);
Note: See TracChangeset for help on using the changeset viewer.