| Index: third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp | 
| diff --git a/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp b/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp | 
| index 88c43f48f85fbb14c72f6dabe2e01682b9829ea4..b7a96fee67f056314b7d2dc3be9b9583436495dd 100644 | 
| --- a/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp | 
| +++ b/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp | 
| @@ -2372,7 +2372,27 @@ void LayoutBlockFlow::moveAllChildrenIncludingFloatsTo(LayoutBlock* toBlock, boo | 
| toBlockFlow->m_floatingObjects->add(floatingObject.unsafeClone()); | 
| } | 
| } | 
| +} | 
| + | 
| +void LayoutBlockFlow::childBecameFloatingOrOutOfFlow(LayoutBox* child) | 
| +{ | 
| +    makeChildrenInlineIfPossible(); | 
|  | 
| +    // Reparent the child to an adjacent anonymous block if one is available. | 
| +    LayoutObject* prev = child->previousSibling(); | 
| +    if (prev && prev->isAnonymousBlock() && prev->isLayoutBlockFlow()) { | 
| +        LayoutBlockFlow* newContainer = toLayoutBlockFlow(prev); | 
| +        moveChildTo(newContainer, child, nullptr, false); | 
| +        // The anonymous block we've moved to may now be adjacent to former siblings of ours | 
| +        // that it can contain also. | 
| +        newContainer->reparentSubsequentFloatingOrOutOfFlowSiblings(); | 
| +        return; | 
| +    } | 
| +    LayoutObject* next = child->nextSibling(); | 
| +    if (next && next->isAnonymousBlock() && next->isLayoutBlockFlow()) { | 
| +        LayoutBlockFlow* newContainer = toLayoutBlockFlow(next); | 
| +        moveChildTo(newContainer, child, newContainer->firstChild(), false); | 
| +    } | 
| } | 
|  | 
| void LayoutBlockFlow::invalidatePaintForOverhangingFloats(bool paintAllDescendants) | 
|  |