Title: [228914] trunk/Source/WebCore
- Revision
- 228914
- Author
- [email protected]
- Date
- 2018-02-21 22:17:45 -0800 (Wed, 21 Feb 2018)
Log Message
[RenderTreeBuilder] Move RenderObject::insertedInto() mutation logic to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=183022
<rdar://problem/37764326>
Reviewed by Antti Koivisto.
No change in functionality.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::insertedIntoTree):
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::insertChildToRenderElementInternal):
(WebCore::RenderTreeBuilder::moveChildrenTo):
(WebCore::RenderTreeBuilder::multiColumnDescendantInserted): Deleted.
* rendering/updating/RenderTreeBuilder.h:
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (228913 => 228914)
--- trunk/Source/WebCore/ChangeLog 2018-02-22 04:58:40 UTC (rev 228913)
+++ trunk/Source/WebCore/ChangeLog 2018-02-22 06:17:45 UTC (rev 228914)
@@ -1,3 +1,21 @@
+2018-02-21 Zalan Bujtas <[email protected]>
+
+ [RenderTreeBuilder] Move RenderObject::insertedInto() mutation logic to RenderTreeBuilder
+ https://bugs.webkit.org/show_bug.cgi?id=183022
+ <rdar://problem/37764326>
+
+ Reviewed by Antti Koivisto.
+
+ No change in functionality.
+
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::insertedIntoTree):
+ * rendering/updating/RenderTreeBuilder.cpp:
+ (WebCore::RenderTreeBuilder::insertChildToRenderElementInternal):
+ (WebCore::RenderTreeBuilder::moveChildrenTo):
+ (WebCore::RenderTreeBuilder::multiColumnDescendantInserted): Deleted.
+ * rendering/updating/RenderTreeBuilder.h:
+
2018-02-21 Tim Horton <[email protected]>
Include all Cocoa sources in all Cocoa platform builds
Modified: trunk/Source/WebCore/rendering/RenderObject.cpp (228913 => 228914)
--- trunk/Source/WebCore/rendering/RenderObject.cpp 2018-02-22 04:58:40 UTC (rev 228913)
+++ trunk/Source/WebCore/rendering/RenderObject.cpp 2018-02-22 06:17:45 UTC (rev 228914)
@@ -1449,13 +1449,8 @@
void RenderObject::insertedIntoTree()
{
// FIXME: We should ASSERT(isRooted()) here but generated content makes some out-of-order insertion.
-
if (!isFloating() && parent()->childrenInline())
parent()->dirtyLinesFromChangedChild(*this);
-
- auto* fragmentedFlow = enclosingFragmentedFlow();
- if (is<RenderMultiColumnFlow>(fragmentedFlow))
- RenderTreeBuilder::current()->multiColumnDescendantInserted(downcast<RenderMultiColumnFlow>(*fragmentedFlow), *this);
}
void RenderObject::willBeRemovedFromTree()
Modified: trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp (228913 => 228914)
--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp 2018-02-22 04:58:40 UTC (rev 228913)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp 2018-02-22 06:17:45 UTC (rev 228914)
@@ -387,7 +387,7 @@
ASSERT(!parent.isRenderBlockFlow() || (!child->isTableSection() && !child->isTableRow() && !child->isTableCell()));
while (beforeChild && beforeChild->parent() && beforeChild->parent() != &parent)
- beforeChild = beforeChild->parent();
+ beforeChild = beforeChild->parent();
ASSERT(!beforeChild || beforeChild->parent() == &parent);
ASSERT(!is<RenderText>(beforeChild) || !downcast<RenderText>(*beforeChild).inlineWrapperForDisplayContents());
@@ -398,21 +398,26 @@
newChild->initializeFragmentedFlowStateOnInsertion();
if (!parent.renderTreeBeingDestroyed()) {
newChild->insertedIntoTree();
+
+ auto* fragmentedFlow = newChild->enclosingFragmentedFlow();
+ if (is<RenderMultiColumnFlow>(fragmentedFlow))
+ multiColumnBuilder().multiColumnDescendantInserted(downcast<RenderMultiColumnFlow>(*fragmentedFlow), *newChild);
+
if (is<RenderElement>(*newChild))
- RenderCounter::rendererSubtreeAttached(downcast<RenderElement>(*newChild));
+ RenderCounter::rendererSubtreeAttached(downcast<RenderElement>(*newChild));
}
newChild->setNeedsLayoutAndPrefWidthsRecalc();
parent.setPreferredLogicalWidthsDirty(true);
if (!parent.normalChildNeedsLayout())
- parent.setChildNeedsLayout(); // We may supply the static position for an absolute positioned child.
+ parent.setChildNeedsLayout(); // We may supply the static position for an absolute positioned child.
if (AXObjectCache* cache = parent.document().axObjectCache())
- cache->childrenChanged(&parent, newChild);
+ cache->childrenChanged(&parent, newChild);
if (is<RenderBlockFlow>(parent))
- downcast<RenderBlockFlow>(parent).invalidateLineLayoutPath();
+ downcast<RenderBlockFlow>(parent).invalidateLineLayoutPath();
if (parent.hasOutlineAutoAncestor() || parent.outlineStyleForRepaint().outlineStyleIsAuto())
- newChild->setHasOutlineAutoAncestor();
+ newChild->setHasOutlineAutoAncestor();
}
void RenderTreeBuilder::moveChildTo(RenderBoxModelObject& from, RenderBoxModelObject& to, RenderObject& child, RenderObject* beforeChild, NormalizeAfterInsertion normalizeAfterInsertion)
@@ -484,7 +489,7 @@
// This is the first letter, skip it.
if (firstLetterObj == nextSibling)
- nextSibling = nextSibling->nextSibling();
+ nextSibling = nextSibling->nextSibling();
}
moveChildTo(from, to, *child, beforeChild, normalizeAfterInsertion);
@@ -632,11 +637,6 @@
removeAnonymousWrappersForInlineChildrenIfNeeded(*child.parent());
}
-void RenderTreeBuilder::multiColumnDescendantInserted(RenderMultiColumnFlow& flow, RenderObject& newDescendant)
-{
- multiColumnBuilder().multiColumnDescendantInserted(flow, newDescendant);
-}
-
static bool isAnonymousAndSafeToDelete(RenderElement& element)
{
if (!element.isAnonymous())
Modified: trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.h (228913 => 228914)
--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.h 2018-02-22 04:58:40 UTC (rev 228913)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.h 2018-02-22 06:17:45 UTC (rev 228914)
@@ -56,7 +56,6 @@
void childFlowStateChangesAndAffectsParentBlock(RenderElement& child);
void childFlowStateChangesAndNoLongerAffectsParentBlock(RenderElement& child);
- void multiColumnDescendantInserted(RenderMultiColumnFlow&, RenderObject& newDescendant);
private:
void insertChildIgnoringContinuation(RenderElement& parent, RenderPtr<RenderObject>, RenderObject* beforeChild = nullptr);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes