Changeset 228547 in webkit


Ignore:
Timestamp:
Feb 15, 2018 6:37:38 PM (6 years ago)
Author:
Alan Bujtas
Message:

[RenderTreeBuilder] Move RenderMenuList::addChild() to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=182840
<rdar://problem/37583638>

Reviewed by Antti Koivisto.

No change in functionality.

  • rendering/RenderMenuList.cpp:

(RenderMenuList::didInsertChild):
(RenderMenuList::addChild): Deleted.

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

(WebCore::RenderTreeBuilder::insertChild):

  • rendering/updating/RenderTreeBuilderFormControls.cpp:

(WebCore::RenderTreeBuilder::FormControls::findOrCreateParentForChild):
(WebCore::RenderTreeBuilder::FormControls::insertChild):
(WebCore::RenderTreeBuilder::FormControls::createInnerRendererIfNeeded): Deleted.

  • rendering/updating/RenderTreeBuilderFormControls.h:
Location:
trunk/Source/WebCore
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r228546 r228547  
     12018-02-15  Zalan Bujtas  <zalan@apple.com>
     2
     3        [RenderTreeBuilder] Move RenderMenuList::addChild() to RenderTreeBuilder
     4        https://bugs.webkit.org/show_bug.cgi?id=182840
     5        <rdar://problem/37583638>
     6
     7        Reviewed by Antti Koivisto.
     8
     9        No change in functionality.
     10
     11        * rendering/RenderMenuList.cpp:
     12        (RenderMenuList::didInsertChild):
     13        (RenderMenuList::addChild): Deleted.
     14        * rendering/RenderMenuList.h:
     15        * rendering/updating/RenderTreeBuilder.cpp:
     16        (WebCore::RenderTreeBuilder::insertChild):
     17        * rendering/updating/RenderTreeBuilderFormControls.cpp:
     18        (WebCore::RenderTreeBuilder::FormControls::findOrCreateParentForChild):
     19        (WebCore::RenderTreeBuilder::FormControls::insertChild):
     20        (WebCore::RenderTreeBuilder::FormControls::createInnerRendererIfNeeded): Deleted.
     21        * rendering/updating/RenderTreeBuilderFormControls.h:
     22
    1232018-02-15  Darin Adler  <darin@apple.com>
    224
  • trunk/Source/WebCore/rendering/RenderMenuList.cpp

    r228427 r228547  
    166166}
    167167
    168 void RenderMenuList::addChild(RenderTreeBuilder&, RenderPtr<RenderObject> child, RenderObject*)
     168void RenderMenuList::didInsertChild(RenderObject& child, RenderObject*)
    169169{
    170170    if (AXObjectCache* cache = document().existingAXObjectCache())
    171         cache->childrenChanged(this, child.get());
     171        cache->childrenChanged(this, &child);
    172172}
    173173
  • trunk/Source/WebCore/rendering/RenderMenuList.h

    r228414 r228547  
    6363    void setInnerRenderer(RenderBlock&);
    6464
     65    void didInsertChild(RenderObject& child, RenderObject* beforeChild);
     66
    6567private:
    6668    void willBeDestroyed(RenderTreeBuilder&) override;
     
    7072    bool isMenuList() const override { return true; }
    7173
    72     void addChild(RenderTreeBuilder&, RenderPtr<RenderObject> newChild, RenderObject* beforeChild = 0) override;
    7374    bool createsAnonymousWrapper() const override { return true; }
    7475
  • trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp

    r228542 r228547  
    202202
    203203    if (is<RenderButton>(parent)) {
    204         insertRecursiveIfNeeded(formControlsBuilder().createInnerRendererIfNeeded(downcast<RenderButton>(parent)));
     204        formControlsBuilder().insertChild(downcast<RenderButton>(parent), WTFMove(child), beforeChild);
    205205        return;
    206206    }
    207207
    208208    if (is<RenderMenuList>(parent)) {
    209         insertRecursiveIfNeeded(formControlsBuilder().createInnerRendererIfNeeded(downcast<RenderMenuList>(parent)));
     209        formControlsBuilder().insertChild(downcast<RenderMenuList>(parent), WTFMove(child), beforeChild);
    210210        return;
    211211    }
  • trunk/Source/WebCore/rendering/updating/RenderTreeBuilderFormControls.cpp

    r226273 r228547  
    3737}
    3838
    39 RenderBlock& RenderTreeBuilder::FormControls::createInnerRendererIfNeeded(RenderButton& button)
     39void RenderTreeBuilder::FormControls::insertChild(RenderButton& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild)
    4040{
    41     auto* innerRenderer = button.innerRenderer();
     41    m_builder.blockBuilder().insertChild(findOrCreateParentForChild(parent), WTFMove(child), beforeChild);
     42}
     43
     44void RenderTreeBuilder::FormControls::insertChild(RenderMenuList& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild)
     45{
     46    auto& newChild = *child.get();
     47    m_builder.blockBuilder().insertChild(findOrCreateParentForChild(parent), WTFMove(child), beforeChild);
     48    parent.didInsertChild(newChild, beforeChild);
     49}
     50
     51RenderBlock& RenderTreeBuilder::FormControls::findOrCreateParentForChild(RenderButton& parent)
     52{
     53    auto* innerRenderer = parent.innerRenderer();
    4254    if (innerRenderer)
    4355        return *innerRenderer;
    4456
    45     auto wrapper = button.createAnonymousBlock(button.style().display());
     57    auto wrapper = parent.createAnonymousBlock(parent.style().display());
    4658    innerRenderer = wrapper.get();
    47     button.RenderFlexibleBox::addChild(m_builder, WTFMove(wrapper));
    48     button.setInnerRenderer(*innerRenderer);
     59    parent.RenderFlexibleBox::addChild(m_builder, WTFMove(wrapper));
     60    parent.setInnerRenderer(*innerRenderer);
    4961    return *innerRenderer;
    5062}
    5163
    52 RenderBlock& RenderTreeBuilder::FormControls::createInnerRendererIfNeeded(RenderMenuList& menuList)
     64RenderBlock& RenderTreeBuilder::FormControls::findOrCreateParentForChild(RenderMenuList& parent)
    5365{
    54     auto* innerRenderer = menuList.innerRenderer();
     66    auto* innerRenderer = parent.innerRenderer();
    5567    if (innerRenderer)
    5668        return *innerRenderer;
    5769
    58     auto wrapper = menuList.createAnonymousBlock();
     70    auto wrapper = parent.createAnonymousBlock();
    5971    innerRenderer = wrapper.get();
    60     menuList.RenderFlexibleBox::addChild(m_builder, WTFMove(wrapper));
    61     menuList.setInnerRenderer(*innerRenderer);
     72    parent.RenderFlexibleBox::addChild(m_builder, WTFMove(wrapper));
     73    parent.setInnerRenderer(*innerRenderer);
    6274    return *innerRenderer;
    6375}
  • trunk/Source/WebCore/rendering/updating/RenderTreeBuilderFormControls.h

    r226273 r228547  
    3838    FormControls(RenderTreeBuilder&);
    3939
    40     RenderBlock& createInnerRendererIfNeeded(RenderButton&);
    41     RenderBlock& createInnerRendererIfNeeded(RenderMenuList&);
     40    void insertChild(RenderButton& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild);
     41    void insertChild(RenderMenuList& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild);
    4242
    4343private:
     44    RenderBlock& findOrCreateParentForChild(RenderButton&);
     45    RenderBlock& findOrCreateParentForChild(RenderMenuList&);
     46
    4447    RenderTreeBuilder& m_builder;
    4548};
Note: See TracChangeset for help on using the changeset viewer.