Title: [228547] trunk/Source/WebCore
Revision
228547
Author
[email protected]
Date
2018-02-15 18:37:38 -0800 (Thu, 15 Feb 2018)

Log 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:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (228546 => 228547)


--- trunk/Source/WebCore/ChangeLog	2018-02-16 02:14:29 UTC (rev 228546)
+++ trunk/Source/WebCore/ChangeLog	2018-02-16 02:37:38 UTC (rev 228547)
@@ -1,3 +1,25 @@
+2018-02-15  Zalan Bujtas  <[email protected]>
+
+        [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:
+
 2018-02-15  Darin Adler  <[email protected]>
 
         Web Inspector: get rid of remaining uses of OptOutput<T>

Modified: trunk/Source/WebCore/rendering/RenderMenuList.cpp (228546 => 228547)


--- trunk/Source/WebCore/rendering/RenderMenuList.cpp	2018-02-16 02:14:29 UTC (rev 228546)
+++ trunk/Source/WebCore/rendering/RenderMenuList.cpp	2018-02-16 02:37:38 UTC (rev 228547)
@@ -165,10 +165,10 @@
     return downcast<HTMLSelectElement>(nodeForNonAnonymous());
 }
 
-void RenderMenuList::addChild(RenderTreeBuilder&, RenderPtr<RenderObject> child, RenderObject*)
+void RenderMenuList::didInsertChild(RenderObject& child, RenderObject*)
 {
     if (AXObjectCache* cache = document().existingAXObjectCache())
-        cache->childrenChanged(this, child.get());
+        cache->childrenChanged(this, &child);
 }
 
 void RenderMenuList::styleDidChange(StyleDifference diff, const RenderStyle* oldStyle)

Modified: trunk/Source/WebCore/rendering/RenderMenuList.h (228546 => 228547)


--- trunk/Source/WebCore/rendering/RenderMenuList.h	2018-02-16 02:14:29 UTC (rev 228546)
+++ trunk/Source/WebCore/rendering/RenderMenuList.h	2018-02-16 02:37:38 UTC (rev 228547)
@@ -62,6 +62,8 @@
     RenderBlock* innerRenderer() const { return m_innerBlock.get(); }
     void setInnerRenderer(RenderBlock&);
 
+    void didInsertChild(RenderObject& child, RenderObject* beforeChild);
+
 private:
     void willBeDestroyed(RenderTreeBuilder&) override;
 
@@ -69,7 +71,6 @@
 
     bool isMenuList() const override { return true; }
 
-    void addChild(RenderTreeBuilder&, RenderPtr<RenderObject> newChild, RenderObject* beforeChild = 0) override;
     bool createsAnonymousWrapper() const override { return true; }
 
     void updateFromElement() override;

Modified: trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp (228546 => 228547)


--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp	2018-02-16 02:14:29 UTC (rev 228546)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp	2018-02-16 02:37:38 UTC (rev 228547)
@@ -201,12 +201,12 @@
     }
 
     if (is<RenderButton>(parent)) {
-        insertRecursiveIfNeeded(formControlsBuilder().createInnerRendererIfNeeded(downcast<RenderButton>(parent)));
+        formControlsBuilder().insertChild(downcast<RenderButton>(parent), WTFMove(child), beforeChild);
         return;
     }
 
     if (is<RenderMenuList>(parent)) {
-        insertRecursiveIfNeeded(formControlsBuilder().createInnerRendererIfNeeded(downcast<RenderMenuList>(parent)));
+        formControlsBuilder().insertChild(downcast<RenderMenuList>(parent), WTFMove(child), beforeChild);
         return;
     }
 

Modified: trunk/Source/WebCore/rendering/updating/RenderTreeBuilderFormControls.cpp (228546 => 228547)


--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilderFormControls.cpp	2018-02-16 02:14:29 UTC (rev 228546)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilderFormControls.cpp	2018-02-16 02:37:38 UTC (rev 228547)
@@ -36,29 +36,41 @@
 {
 }
 
-RenderBlock& RenderTreeBuilder::FormControls::createInnerRendererIfNeeded(RenderButton& button)
+void RenderTreeBuilder::FormControls::insertChild(RenderButton& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild)
 {
-    auto* innerRenderer = button.innerRenderer();
+    m_builder.blockBuilder().insertChild(findOrCreateParentForChild(parent), WTFMove(child), beforeChild);
+}
+
+void RenderTreeBuilder::FormControls::insertChild(RenderMenuList& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild)
+{
+    auto& newChild = *child.get();
+    m_builder.blockBuilder().insertChild(findOrCreateParentForChild(parent), WTFMove(child), beforeChild);
+    parent.didInsertChild(newChild, beforeChild);
+}
+
+RenderBlock& RenderTreeBuilder::FormControls::findOrCreateParentForChild(RenderButton& parent)
+{
+    auto* innerRenderer = parent.innerRenderer();
     if (innerRenderer)
         return *innerRenderer;
 
-    auto wrapper = button.createAnonymousBlock(button.style().display());
+    auto wrapper = parent.createAnonymousBlock(parent.style().display());
     innerRenderer = wrapper.get();
-    button.RenderFlexibleBox::addChild(m_builder, WTFMove(wrapper));
-    button.setInnerRenderer(*innerRenderer);
+    parent.RenderFlexibleBox::addChild(m_builder, WTFMove(wrapper));
+    parent.setInnerRenderer(*innerRenderer);
     return *innerRenderer;
 }
 
-RenderBlock& RenderTreeBuilder::FormControls::createInnerRendererIfNeeded(RenderMenuList& menuList)
+RenderBlock& RenderTreeBuilder::FormControls::findOrCreateParentForChild(RenderMenuList& parent)
 {
-    auto* innerRenderer = menuList.innerRenderer();
+    auto* innerRenderer = parent.innerRenderer();
     if (innerRenderer)
         return *innerRenderer;
 
-    auto wrapper = menuList.createAnonymousBlock();
+    auto wrapper = parent.createAnonymousBlock();
     innerRenderer = wrapper.get();
-    menuList.RenderFlexibleBox::addChild(m_builder, WTFMove(wrapper));
-    menuList.setInnerRenderer(*innerRenderer);
+    parent.RenderFlexibleBox::addChild(m_builder, WTFMove(wrapper));
+    parent.setInnerRenderer(*innerRenderer);
     return *innerRenderer;
 }
 

Modified: trunk/Source/WebCore/rendering/updating/RenderTreeBuilderFormControls.h (228546 => 228547)


--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilderFormControls.h	2018-02-16 02:14:29 UTC (rev 228546)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilderFormControls.h	2018-02-16 02:37:38 UTC (rev 228547)
@@ -37,10 +37,13 @@
 public:
     FormControls(RenderTreeBuilder&);
 
-    RenderBlock& createInnerRendererIfNeeded(RenderButton&);
-    RenderBlock& createInnerRendererIfNeeded(RenderMenuList&);
+    void insertChild(RenderButton& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild);
+    void insertChild(RenderMenuList& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild);
 
 private:
+    RenderBlock& findOrCreateParentForChild(RenderButton&);
+    RenderBlock& findOrCreateParentForChild(RenderMenuList&);
+
     RenderTreeBuilder& m_builder;
 };
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to