Diff
Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/ChangeLog (228734 => 228735)
--- releases/WebKitGTK/webkit-2.20/Source/WebCore/ChangeLog 2018-02-20 07:26:38 UTC (rev 228734)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/ChangeLog 2018-02-20 07:26:43 UTC (rev 228735)
@@ -1,5 +1,29 @@
2018-02-12 Zalan Bujtas <za...@apple.com>
+ [RenderTreeBuilder] Move RenderBlock::dropAnonymousBoxChild to RenderTreeBuilder
+ https://bugs.webkit.org/show_bug.cgi?id=182704
+ <rdar://problem/37469469>
+
+ Reviewed by Antti Koivisto.
+
+ All the callsites are now in RenderTreeBuilder.
+
+ No change in functionality.
+
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::dropAnonymousBoxChild): Deleted.
+ * rendering/RenderBlock.h:
+ * rendering/updating/RenderTreeBuilder.cpp:
+ (WebCore::RenderTreeBuilder::removeAnonymousWrappersForInlineChildrenIfNeeded):
+ (WebCore::RenderTreeBuilder::dropAnonymousBoxChild):
+ * rendering/updating/RenderTreeBuilder.h:
+ * rendering/updating/RenderTreeBuilderBlock.cpp:
+ (WebCore::RenderTreeBuilder::Block::takeChild):
+ (WebCore::RenderTreeBuilder::Block::dropAnonymousBoxChild):
+ * rendering/updating/RenderTreeBuilderBlock.h:
+
+2018-02-12 Zalan Bujtas <za...@apple.com>
+
[RenderTreeBuilder] Remove redundant RenderTreeBuilder instance
https://bugs.webkit.org/show_bug.cgi?id=182700
<rdar://problem/37463958>
Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderBlock.cpp (228734 => 228735)
--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderBlock.cpp 2018-02-20 07:26:38 UTC (rev 228734)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderBlock.cpp 2018-02-20 07:26:43 UTC (rev 228735)
@@ -482,18 +482,6 @@
cache->deferRecomputeIsIgnored(element());
}
-void RenderBlock::dropAnonymousBoxChild(RenderTreeBuilder& builder, RenderBlock& child)
-{
- setNeedsLayoutAndPrefWidthsRecalc();
- setChildrenInline(child.childrenInline());
- RenderObject* nextSibling = child.nextSibling();
-
- auto toBeDeleted = takeChildInternal(child);
- child.moveAllChildrenTo(builder, this, nextSibling, RenderBoxModelObject::NormalizeAfterInsertion::No);
- // Delete the now-empty block's lines and nuke it.
- child.deleteLines();
-}
-
RenderPtr<RenderObject> RenderBlock::takeChild(RenderTreeBuilder& builder, RenderObject& oldChild)
{
return builder.takeChildFromRenderBlock(*this, oldChild);
Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderBlock.h (228734 => 228735)
--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderBlock.h 2018-02-20 07:26:38 UTC (rev 228734)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderBlock.h 2018-02-20 07:26:43 UTC (rev 228735)
@@ -191,7 +191,6 @@
static RenderPtr<RenderBlock> createAnonymousWithParentRendererAndDisplay(const RenderBox& parent, EDisplay = BLOCK);
RenderPtr<RenderBlock> createAnonymousBlock(EDisplay = BLOCK) const;
- void dropAnonymousBoxChild(RenderTreeBuilder&, RenderBlock& child);
RenderPtr<RenderBox> createAnonymousBoxWithSameTypeAs(const RenderBox&) const override;
Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp (228734 => 228735)
--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp 2018-02-20 07:26:38 UTC (rev 228734)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp 2018-02-20 07:26:43 UTC (rev 228735)
@@ -342,7 +342,7 @@
for (current = blockParent.firstChild(); current; current = next) {
next = current->nextSibling();
if (current->isAnonymousBlock())
- blockParent.dropAnonymousBoxChild(*this, downcast<RenderBlock>(*current));
+ blockBuilder().dropAnonymousBoxChild(blockParent, downcast<RenderBlock>(*current));
}
}
@@ -405,6 +405,12 @@
removeFromParentAndDestroyCleaningUpAnonymousWrappers(destroyRootParent);
// WARNING: child is deleted here.
}
+
+void RenderTreeBuilder::dropAnonymousBoxChild(RenderBlock& parent, RenderBlock& child)
+{
+ blockBuilder().dropAnonymousBoxChild(parent, child);
+}
+
void RenderTreeBuilder::multiColumnRelativeWillBeRemoved(RenderMultiColumnFlow& flow, RenderObject& relative)
{
multiColumnBuilder().multiColumnRelativeWillBeRemoved(flow, relative);
Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilder.h (228734 => 228735)
--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilder.h 2018-02-20 07:26:38 UTC (rev 228734)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilder.h 2018-02-20 07:26:43 UTC (rev 228735)
@@ -88,6 +88,7 @@
void removeFromParentAndDestroyCleaningUpAnonymousWrappers(RenderObject& child);
void multiColumnDescendantInserted(RenderMultiColumnFlow&, RenderObject& newDescendant);
void multiColumnRelativeWillBeRemoved(RenderMultiColumnFlow&, RenderObject& relative);
+ void dropAnonymousBoxChild(RenderBlock& parent, RenderBlock& child);
private:
class FirstLetter;
Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilderBlock.cpp (228734 => 228735)
--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilderBlock.cpp 2018-02-20 07:26:38 UTC (rev 228734)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilderBlock.cpp 2018-02-20 07:26:43 UTC (rev 228735)
@@ -325,7 +325,7 @@
if (canMergeAnonymousBlocks && child && !child->previousSibling() && !child->nextSibling() && parent.canDropAnonymousBlockChild()) {
// The removal has knocked us down to containing only a single anonymous
// box. We can pull the content right back up into our box.
- parent.dropAnonymousBoxChild(m_builder, downcast<RenderBlock>(*child));
+ dropAnonymousBoxChild(parent, downcast<RenderBlock>(*child));
} else if (((prev && prev->isAnonymousBlock()) || (next && next->isAnonymousBlock())) && parent.canDropAnonymousBlockChild()) {
// It's possible that the removal has knocked us down to a single anonymous
// block with floating siblings.
@@ -341,7 +341,7 @@
}
}
if (dropAnonymousBlock)
- parent.dropAnonymousBoxChild(m_builder, anonBlock);
+ dropAnonymousBoxChild(parent, anonBlock);
}
}
@@ -353,4 +353,16 @@
return takenChild;
}
+void RenderTreeBuilder::Block::dropAnonymousBoxChild(RenderBlock& parent, RenderBlock& child)
+{
+ parent.setNeedsLayoutAndPrefWidthsRecalc();
+ parent.setChildrenInline(child.childrenInline());
+ auto* nextSibling = child.nextSibling();
+
+ auto toBeDeleted = parent.takeChildInternal(child);
+ child.moveAllChildrenTo(m_builder, &parent, nextSibling, RenderBoxModelObject::NormalizeAfterInsertion::No);
+ // Delete the now-empty block's lines and nuke it.
+ child.deleteLines();
}
+
+}
Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilderBlock.h (228734 => 228735)
--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilderBlock.h 2018-02-20 07:26:38 UTC (rev 228734)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilderBlock.h 2018-02-20 07:26:43 UTC (rev 228735)
@@ -38,6 +38,7 @@
RenderPtr<RenderObject> takeChild(RenderBlock& parent, RenderObject& oldChild);
+ void dropAnonymousBoxChild(RenderBlock& parent, RenderBlock& child);
void childBecameNonInline(RenderBlock& parent, RenderElement& child);
private: