Title: [228520] trunk/Source/WebCore
Revision
228520
Author
[email protected]
Date
2018-02-15 10:25:05 -0800 (Thu, 15 Feb 2018)

Log Message

[RenderTreeBuilder] Move RenderInline/RenderGrid::addChild() to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=182819
<rdar://problem/37558187>

Reviewed by Antti Koivisto.

No change in functionality.

* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::addChild): Deleted.
* rendering/RenderGrid.h:
* rendering/RenderInline.cpp:
(WebCore::RenderInline::addChild): Deleted.
* rendering/RenderInline.h:
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::insertChild):
(WebCore::RenderTreeBuilder::takeChild): Deleted.
* rendering/updating/RenderTreeBuilder.h:
* rendering/updating/RenderTreeBuilderRuby.cpp:
(WebCore::RenderTreeBuilder::Ruby::findOrCreateParentForChild):
* rendering/updating/RenderTreeBuilderSVG.cpp:
(WebCore::RenderTreeBuilder::SVG::insertChild):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (228519 => 228520)


--- trunk/Source/WebCore/ChangeLog	2018-02-15 18:03:55 UTC (rev 228519)
+++ trunk/Source/WebCore/ChangeLog	2018-02-15 18:25:05 UTC (rev 228520)
@@ -1,3 +1,28 @@
+2018-02-15  Zalan Bujtas  <[email protected]>
+
+        [RenderTreeBuilder] Move RenderInline/RenderGrid::addChild() to RenderTreeBuilder
+        https://bugs.webkit.org/show_bug.cgi?id=182819
+        <rdar://problem/37558187>
+
+        Reviewed by Antti Koivisto.
+
+        No change in functionality.
+
+        * rendering/RenderGrid.cpp:
+        (WebCore::RenderGrid::addChild): Deleted.
+        * rendering/RenderGrid.h:
+        * rendering/RenderInline.cpp:
+        (WebCore::RenderInline::addChild): Deleted.
+        * rendering/RenderInline.h:
+        * rendering/updating/RenderTreeBuilder.cpp:
+        (WebCore::RenderTreeBuilder::insertChild):
+        (WebCore::RenderTreeBuilder::takeChild): Deleted.
+        * rendering/updating/RenderTreeBuilder.h:
+        * rendering/updating/RenderTreeBuilderRuby.cpp:
+        (WebCore::RenderTreeBuilder::Ruby::findOrCreateParentForChild):
+        * rendering/updating/RenderTreeBuilderSVG.cpp:
+        (WebCore::RenderTreeBuilder::SVG::insertChild):
+
 2018-02-15  Antoine Quint  <[email protected]>
 
         [Modern Media Controls] REGRESSION: Inline media controls are not disabled while in fullscreen on iOS

Modified: trunk/Source/WebCore/rendering/RenderGrid.cpp (228519 => 228520)


--- trunk/Source/WebCore/rendering/RenderGrid.cpp	2018-02-15 18:03:55 UTC (rev 228519)
+++ trunk/Source/WebCore/rendering/RenderGrid.cpp	2018-02-15 18:25:05 UTC (rev 228520)
@@ -70,21 +70,6 @@
 
 RenderGrid::~RenderGrid() = default;
 
-void RenderGrid::addChild(RenderTreeBuilder& builder, RenderPtr<RenderObject> newChild, RenderObject* beforeChild)
-{
-    auto& child = *newChild;
-    builder.insertChildToRenderBlock(*this, WTFMove(newChild), beforeChild);
-
-    // Positioned grid items do not take up space or otherwise participate in the layout of the grid,
-    // for that reason we don't need to mark the grid as dirty when they are added.
-    if (child.isOutOfFlowPositioned())
-        return;
-
-    // The grid needs to be recomputed as it might contain auto-placed items that
-    // will change their position.
-    dirtyGrid();
-}
-
 StyleSelfAlignmentData RenderGrid::selfAlignmentForChild(GridAxis axis, const RenderBox& child, const RenderStyle* gridStyle) const
 {
     return axis == GridRowAxis ? justifySelfForChild(child, gridStyle) : alignSelfForChild(child, gridStyle);

Modified: trunk/Source/WebCore/rendering/RenderGrid.h (228519 => 228520)


--- trunk/Source/WebCore/rendering/RenderGrid.h	2018-02-15 18:03:55 UTC (rev 228519)
+++ trunk/Source/WebCore/rendering/RenderGrid.h	2018-02-15 18:25:05 UTC (rev 228520)
@@ -79,8 +79,6 @@
     bool isRenderGrid() const override { return true; }
     void computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth) const override;
 
-    void addChild(RenderTreeBuilder&, RenderPtr<RenderObject> newChild, RenderObject* beforeChild) final;
-
     StyleSelfAlignmentData selfAlignmentForChild(GridAxis, const RenderBox&, const RenderStyle* = nullptr) const;
     bool selfAlignmentChangedToStretch(GridAxis, const RenderStyle& oldStyle, const RenderStyle& newStyle, const RenderBox&) const;
     bool selfAlignmentChangedFromStretch(GridAxis, const RenderStyle& oldStyle, const RenderStyle& newStyle, const RenderBox&) const;

Modified: trunk/Source/WebCore/rendering/RenderInline.cpp (228519 => 228520)


--- trunk/Source/WebCore/rendering/RenderInline.cpp	2018-02-15 18:03:55 UTC (rev 228519)
+++ trunk/Source/WebCore/rendering/RenderInline.cpp	2018-02-15 18:25:05 UTC (rev 228520)
@@ -255,11 +255,6 @@
     return caretRect;
 }
 
-void RenderInline::addChild(RenderTreeBuilder& builder, RenderPtr<RenderObject> newChild, RenderObject* beforeChild)
-{
-    builder.insertChildToRenderInline(*this, WTFMove(newChild), beforeChild);
-}
-
 void RenderInline::addChildIgnoringContinuation(RenderTreeBuilder& builder, RenderPtr<RenderObject> newChild, RenderObject* beforeChild)
 {
     builder.insertChildToRenderInlineIgnoringContinuation(*this, WTFMove(newChild), beforeChild);

Modified: trunk/Source/WebCore/rendering/RenderInline.h (228519 => 228520)


--- trunk/Source/WebCore/rendering/RenderInline.h	2018-02-15 18:03:55 UTC (rev 228519)
+++ trunk/Source/WebCore/rendering/RenderInline.h	2018-02-15 18:25:05 UTC (rev 228520)
@@ -37,8 +37,6 @@
     RenderInline(Element&, RenderStyle&&);
     RenderInline(Document&, RenderStyle&&);
 
-    void addChild(RenderTreeBuilder&, RenderPtr<RenderObject> newChild, RenderObject* beforeChild = 0) override;
-
     LayoutUnit marginLeft() const final;
     LayoutUnit marginRight() const final;
     LayoutUnit marginTop() const final;

Modified: trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp (228519 => 228520)


--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp	2018-02-15 18:03:55 UTC (rev 228519)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp	2018-02-15 18:25:05 UTC (rev 228520)
@@ -220,6 +220,16 @@
         return;
     }
 
+    if (is<RenderGrid>(parent)) {
+        insertChildToRenderGrid(downcast<RenderGrid>(parent), WTFMove(child), beforeChild);
+        return;
+    }
+
+    if (is<RenderInline>(parent)) {
+        inlineBuilder().insertChild(downcast<RenderInline>(parent), WTFMove(child), beforeChild);
+        return;
+    }
+
     parent.addChild(*this, WTFMove(child), beforeChild);
 }
 
@@ -483,11 +493,6 @@
     // WARNING: child is deleted here.
 }
 
-void RenderTreeBuilder::insertChildToRenderInline(RenderInline& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild)
-{
-    inlineBuilder().insertChild(parent, WTFMove(child), beforeChild);
-}
-
 void RenderTreeBuilder::insertChildToRenderInlineIgnoringContinuation(RenderInline& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild)
 {
     inlineBuilder().insertChildIgnoringContinuation(parent, WTFMove(child), beforeChild);
@@ -613,5 +618,19 @@
     return childToTake;
 }
 
+void RenderTreeBuilder::insertChildToRenderGrid(RenderGrid& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild)
+{
+    auto& newChild = *child;
+    blockBuilder().insertChild(parent, WTFMove(child), beforeChild);
 
+    // Positioned grid items do not take up space or otherwise participate in the layout of the grid,
+    // for that reason we don't need to mark the grid as dirty when they are added.
+    if (newChild.isOutOfFlowPositioned())
+        return;
+
+    // The grid needs to be recomputed as it might contain auto-placed items that
+    // will change their position.
+    parent.dirtyGrid();
 }
+
+}

Modified: trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.h (228519 => 228520)


--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.h	2018-02-15 18:03:55 UTC (rev 228519)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.h	2018-02-15 18:25:05 UTC (rev 228520)
@@ -67,7 +67,6 @@
     void insertChildToRenderBlock(RenderBlock& parent, RenderPtr<RenderObject>, RenderObject* beforeChild = nullptr);
     void insertChildToRenderBlockIgnoringContinuation(RenderBlock& parent, RenderPtr<RenderObject>, RenderObject* beforeChild = nullptr);
     void insertChildToRenderBlockFlow(RenderBlockFlow& parent, RenderPtr<RenderObject>, RenderObject* beforeChild = nullptr);
-    void insertChildToRenderInline(RenderInline& parent, RenderPtr<RenderObject>, RenderObject* beforeChild = nullptr);
     void insertChildToRenderInlineIgnoringContinuation(RenderInline& parent, RenderPtr<RenderObject>, RenderObject* beforeChild = nullptr);
     void insertChildToRenderTable(RenderTable& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild = nullptr);
     void insertChildToRenderTableSection(RenderTableSection& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild = nullptr);
@@ -100,6 +99,8 @@
     RenderPtr<RenderObject> takeChildFromRenderButton(RenderButton& parent, RenderObject& child);
     RenderPtr<RenderObject> takeChildFromRenderGrid(RenderGrid& parent, RenderObject& child);
 
+    void insertChildToRenderGrid(RenderGrid& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild = nullptr);
+
     FirstLetter& firstLetterBuilder() { return *m_firstLetterBuilder; }
     List& listBuilder() { return *m_listBuilder; }
     MultiColumn& multiColumnBuilder() { return *m_multiColumnBuilder; }

Modified: trunk/Source/WebCore/rendering/updating/RenderTreeBuilderRuby.cpp (228519 => 228520)


--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilderRuby.cpp	2018-02-15 18:03:55 UTC (rev 228519)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilderRuby.cpp	2018-02-15 18:25:05 UTC (rev 228520)
@@ -31,6 +31,7 @@
 #include "RenderRubyRun.h"
 #include "RenderTreeBuilder.h"
 #include "RenderTreeBuilderBlock.h"
+#include "RenderTreeBuilderInline.h"
 
 namespace WebCore {
 
@@ -313,7 +314,7 @@
         if (!beforeBlock) {
             auto newBlock = createAnonymousRubyInlineBlock(parent);
             beforeBlock = newBlock.get();
-            m_builder.insertChildToRenderInline(parent, WTFMove(newBlock), parent.firstChild());
+            m_builder.inlineBuilder().insertChild(parent, WTFMove(newBlock), parent.firstChild());
         }
         beforeChild = nullptr;
         return *beforeBlock;
@@ -328,7 +329,7 @@
         if (!afterBlock) {
             auto newBlock = createAnonymousRubyInlineBlock(parent);
             afterBlock = newBlock.get();
-            m_builder.insertChildToRenderInline(parent, WTFMove(newBlock));
+            m_builder.inlineBuilder().insertChild(parent, WTFMove(newBlock), nullptr);
         }
         beforeChild = nullptr;
         return *afterBlock;
@@ -357,7 +358,7 @@
     if (!lastRun || lastRun->hasRubyText()) {
         auto newRun = RenderRubyRun::staticCreateRubyRun(&parent);
         lastRun = newRun.get();
-        m_builder.insertChildToRenderInline(parent, WTFMove(newRun), beforeChild);
+        m_builder.inlineBuilder().insertChild(parent, WTFMove(newRun), beforeChild);
     }
     beforeChild = nullptr;
     return *lastRun;

Modified: trunk/Source/WebCore/rendering/updating/RenderTreeBuilderSVG.cpp (228519 => 228520)


--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilderSVG.cpp	2018-02-15 18:03:55 UTC (rev 228519)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilderSVG.cpp	2018-02-15 18:25:05 UTC (rev 228520)
@@ -30,6 +30,7 @@
 #include "RenderSVGInline.h"
 #include "RenderSVGRoot.h"
 #include "RenderSVGText.h"
+#include "RenderTreeBuilderInline.h"
 #include "SVGResourcesCache.h"
 
 namespace WebCore {
@@ -49,7 +50,7 @@
 void RenderTreeBuilder::SVG::insertChild(RenderSVGInline& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild)
 {
     auto& childToAdd = *child;
-    m_builder.insertChildToRenderInline(parent, WTFMove(child), beforeChild);
+    m_builder.inlineBuilder().insertChild(parent, WTFMove(child), beforeChild);
     SVGResourcesCache::clientWasAddedToTree(childToAdd);
 
     if (auto* textAncestor = RenderSVGText::locateRenderSVGTextAncestor(parent))
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to