| Index: third_party/WebKit/Source/core/layout/LayoutBox.cpp
|
| diff --git a/third_party/WebKit/Source/core/layout/LayoutBox.cpp b/third_party/WebKit/Source/core/layout/LayoutBox.cpp
|
| index e263b1cc7ae2ec3ea8dab6283352c64863316498..661b60532c6054166e629bb60c08b85e98717bc8 100644
|
| --- a/third_party/WebKit/Source/core/layout/LayoutBox.cpp
|
| +++ b/third_party/WebKit/Source/core/layout/LayoutBox.cpp
|
| @@ -4375,6 +4375,17 @@ static void markBoxForRelayoutAfterSplit(LayoutBox* box)
|
| box->setNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation(LayoutInvalidationReason::AnonymousBlockChange);
|
| }
|
|
|
| +static void collapseLoneAnonymousBlockChild(LayoutObject* child)
|
| +{
|
| + ASSERT(child);
|
| + if (!child->isAnonymousBlock())
|
| + return;
|
| + LayoutObject* parent = child->parent();
|
| + if (!parent->isLayoutBlock())
|
| + return;
|
| + LayoutBlock::collapseAnonymousBlockChild(toLayoutBlock(parent), toLayoutBlock(child));
|
| +}
|
| +
|
| LayoutObject* LayoutBox::splitAnonymousBoxesAroundChild(LayoutObject* beforeChild)
|
| {
|
| LayoutBox* boxAtTopOfNewBranch = nullptr;
|
| @@ -4395,6 +4406,15 @@ LayoutObject* LayoutBox::splitAnonymousBoxesAroundChild(LayoutObject* beforeChil
|
| parentBox->virtualChildren()->insertChildNode(parentBox, postBox, boxToSplit->nextSibling());
|
| boxToSplit->moveChildrenTo(postBox, beforeChild, 0, true);
|
|
|
| + LayoutObject* child = postBox->slowFirstChild();
|
| + ASSERT(child);
|
| + if (child && !child->nextSibling())
|
| + collapseLoneAnonymousBlockChild(child);
|
| + child = boxToSplit->slowFirstChild();
|
| + ASSERT(child);
|
| + if (child && !child->previousSibling())
|
| + collapseLoneAnonymousBlockChild(child);
|
| +
|
| markBoxForRelayoutAfterSplit(boxToSplit);
|
| markBoxForRelayoutAfterSplit(postBox);
|
| boxAtTopOfNewBranch = postBox;
|
|
|