Diff
Modified: trunk/Source/WebCore/ChangeLog (228431 => 228432)
--- trunk/Source/WebCore/ChangeLog 2018-02-13 21:31:41 UTC (rev 228431)
+++ trunk/Source/WebCore/ChangeLog 2018-02-13 21:58:58 UTC (rev 228432)
@@ -1,3 +1,24 @@
+2018-02-13 Zalan Bujtas <za...@apple.com>
+
+ [RenderTreeBuilder] Move RenderBlockFlow::takeChild() to RenderTreeBuilder
+ https://bugs.webkit.org/show_bug.cgi?id=182739
+ <rdar://problem/37506542>
+
+ Reviewed by Antti Koivisto.
+
+ No change in functionality.
+
+ * rendering/RenderBlockFlow.cpp:
+ (WebCore::RenderBlockFlow::takeChild): Deleted.
+ * rendering/RenderBlockFlow.h:
+ * rendering/updating/RenderTreeBuilder.cpp:
+ (WebCore::RenderTreeBuilder::takeChild):
+ (WebCore::RenderTreeBuilder::multiColumnRelativeWillBeRemoved): Deleted.
+ * rendering/updating/RenderTreeBuilder.h:
+ * rendering/updating/RenderTreeBuilderBlock.cpp:
+ (WebCore::RenderTreeBuilder::Block::takeChild):
+ * rendering/updating/RenderTreeBuilderBlock.h:
+
2018-02-13 Don Olmstead <don.olmst...@sony.com>
[CMake] Make WebCore headers copies
Modified: trunk/Source/WebCore/rendering/RenderBlockFlow.cpp (228431 => 228432)
--- trunk/Source/WebCore/rendering/RenderBlockFlow.cpp 2018-02-13 21:31:41 UTC (rev 228431)
+++ trunk/Source/WebCore/rendering/RenderBlockFlow.cpp 2018-02-13 21:58:58 UTC (rev 228432)
@@ -3849,16 +3849,6 @@
builder.insertChildToRenderBlockFlow(*this, WTFMove(newChild), beforeChild);
}
-RenderPtr<RenderObject> RenderBlockFlow::takeChild(RenderTreeBuilder& builder, RenderObject& oldChild)
-{
- if (!renderTreeBeingDestroyed()) {
- auto* fragmentedFlow = multiColumnFlow();
- if (fragmentedFlow && fragmentedFlow != &oldChild)
- builder.multiColumnRelativeWillBeRemoved(*fragmentedFlow, oldChild);
- }
- return RenderBlock::takeChild(builder, oldChild);
-}
-
void RenderBlockFlow::checkForPaginationLogicalHeightChange(bool& relayoutChildren, LayoutUnit& pageLogicalHeight, bool& pageLogicalHeightChanged)
{
// If we don't use columns or flow threads, then bail.
Modified: trunk/Source/WebCore/rendering/RenderBlockFlow.h (228431 => 228432)
--- trunk/Source/WebCore/rendering/RenderBlockFlow.h 2018-02-13 21:31:41 UTC (rev 228431)
+++ trunk/Source/WebCore/rendering/RenderBlockFlow.h 2018-02-13 21:58:58 UTC (rev 228432)
@@ -379,7 +379,6 @@
bool hasNextPage(LayoutUnit logicalOffset, PageBoundaryRule = ExcludePageBoundary) const;
void addChild(RenderTreeBuilder&, RenderPtr<RenderObject> newChild, RenderObject* beforeChild = 0) override;
- RenderPtr<RenderObject> takeChild(RenderTreeBuilder&, RenderObject&) override;
void updateColumnProgressionFromStyle(RenderStyle&);
void updateStylesForColumnChildren();
Modified: trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp (228431 => 228432)
--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp 2018-02-13 21:31:41 UTC (rev 228431)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp 2018-02-13 21:58:58 UTC (rev 228432)
@@ -224,6 +224,9 @@
if (is<RenderSVGRoot>(parent))
return svgBuilder().takeChild(downcast<RenderSVGRoot>(parent), child);
+ if (is<RenderBlockFlow>(parent))
+ return blockBuilder().takeChild(downcast<RenderBlockFlow>(parent), child);
+
return parent.takeChild(*this, child);
}
@@ -451,11 +454,6 @@
blockBuilder().dropAnonymousBoxChild(parent, child);
}
-void RenderTreeBuilder::multiColumnRelativeWillBeRemoved(RenderMultiColumnFlow& flow, RenderObject& relative)
-{
- multiColumnBuilder().multiColumnRelativeWillBeRemoved(flow, relative);
-}
-
void RenderTreeBuilder::insertChildToRenderInline(RenderInline& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild)
{
inlineBuilder().insertChild(parent, WTFMove(child), beforeChild);
Modified: trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.h (228431 => 228432)
--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.h 2018-02-13 21:31:41 UTC (rev 228431)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.h 2018-02-13 21:58:58 UTC (rev 228432)
@@ -89,7 +89,6 @@
RenderObject* resolveMovedChildForMultiColumnFlow(RenderFragmentedFlow& enclosingFragmentedFlow, RenderObject* beforeChild);
void removeFromParentAndDestroyCleaningUpAnonymousWrappers(RenderObject& child);
void multiColumnDescendantInserted(RenderMultiColumnFlow&, RenderObject& newDescendant);
- void multiColumnRelativeWillBeRemoved(RenderMultiColumnFlow&, RenderObject& relative);
void dropAnonymousBoxChild(RenderBlock& parent, RenderBlock& child);
private:
Modified: trunk/Source/WebCore/rendering/updating/RenderTreeBuilderBlock.cpp (228431 => 228432)
--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilderBlock.cpp 2018-02-13 21:31:41 UTC (rev 228431)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilderBlock.cpp 2018-02-13 21:58:58 UTC (rev 228432)
@@ -29,6 +29,7 @@
#include "RenderButton.h"
#include "RenderChildIterator.h"
#include "RenderFullScreen.h"
+#include "RenderMultiColumnFlow.h"
#include "RenderRuby.h"
#include "RenderRubyRun.h"
#include "RenderTextControl.h"
@@ -365,4 +366,14 @@
child.deleteLines();
}
+RenderPtr<RenderObject> RenderTreeBuilder::Block::takeChild(RenderBlockFlow& parent, RenderObject& child)
+{
+ if (!parent.renderTreeBeingDestroyed()) {
+ auto* fragmentedFlow = parent.multiColumnFlow();
+ if (fragmentedFlow && fragmentedFlow != &child)
+ m_builder.multiColumnBuilder().multiColumnRelativeWillBeRemoved(*fragmentedFlow, child);
+ }
+ return parent.RenderBlock::takeChild(m_builder, child);
}
+
+}
Modified: trunk/Source/WebCore/rendering/updating/RenderTreeBuilderBlock.h (228431 => 228432)
--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilderBlock.h 2018-02-13 21:31:41 UTC (rev 228431)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilderBlock.h 2018-02-13 21:58:58 UTC (rev 228432)
@@ -37,6 +37,7 @@
void insertChildIgnoringContinuation(RenderBlock& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild);
RenderPtr<RenderObject> takeChild(RenderBlock& parent, RenderObject& oldChild);
+ RenderPtr<RenderObject> takeChild(RenderBlockFlow& parent, RenderObject& child);
void dropAnonymousBoxChild(RenderBlock& parent, RenderBlock& child);
void childBecameNonInline(RenderBlock& parent, RenderElement& child);
Modified: trunk/Source/WebCore/rendering/updating/RenderTreeBuilderRuby.cpp (228431 => 228432)
--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilderRuby.cpp 2018-02-13 21:31:41 UTC (rev 228431)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilderRuby.cpp 2018-02-13 21:58:58 UTC (rev 228432)
@@ -30,6 +30,7 @@
#include "RenderRubyBase.h"
#include "RenderRubyRun.h"
#include "RenderTreeBuilder.h"
+#include "RenderTreeBuilderBlock.h"
namespace WebCore {
@@ -214,7 +215,8 @@
// in order to avoid automatic removal of the ruby run in case there is no
// other child besides the old ruby text.
parent.addChild(m_builder, WTFMove(child), beforeChild);
- auto takenBeforeChild = parent.RenderBlockFlow::takeChild(m_builder, *beforeChild);
+ auto takenBeforeChild = m_builder.blockBuilder().takeChild(parent, *beforeChild);
+
m_builder.insertChild(*newRun, WTFMove(takenBeforeChild));
return;
}
@@ -404,7 +406,7 @@
#ifndef ASSERT_DISABLED
ASSERT(isRubyChildForNormalRemoval(child));
#endif
- return parent.RenderBlockFlow::takeChild(m_builder, child);
+ return m_builder.blockBuilder().takeChild(parent, child);
}
// If the child's parent is an anoymous block (must be generated :before/:after content)
// just use the block's remove method.
@@ -442,13 +444,13 @@
}
}
- auto takenChild = parent.RenderBlockFlow::takeChild(m_builder, child);
+ auto takenChild = m_builder.blockBuilder().takeChild(parent, child);
if (!parent.beingDestroyed() && !parent.renderTreeBeingDestroyed()) {
// Check if our base (if any) is now empty. If so, destroy it.
RenderBlock* base = parent.rubyBase();
if (base && !base->firstChild()) {
- auto takenBase = parent.RenderBlockFlow::takeChild(m_builder, *base);
+ auto takenBase = m_builder.blockBuilder().takeChild(parent, *base);
base->deleteLines();
}
}