Index: third_party/WebKit/Source/core/layout/LayoutBlockFlowLine.cpp |
diff --git a/third_party/WebKit/Source/core/layout/LayoutBlockFlowLine.cpp b/third_party/WebKit/Source/core/layout/LayoutBlockFlowLine.cpp |
index ec62c97eecfe87692ead5f08ab49bd496f63c7ef..c365ecd78c45d20401c654a78d66f08aa4be41c1 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutBlockFlowLine.cpp |
+++ b/third_party/WebKit/Source/core/layout/LayoutBlockFlowLine.cpp |
@@ -1568,12 +1568,6 @@ void LayoutBlockFlow::layoutInlineChildren(bool relayoutChildren, LayoutUnit& pa |
deleteEllipsisLineBoxes(); |
if (firstChild()) { |
- // In full layout mode, clear the line boxes of children upfront. Otherwise, |
- // siblings can run into stale root lineboxes during layout. Then layout |
- // the replaced elements later. In partial layout mode, line boxes are not |
- // deleted and only dirtied. In that case, we can layout the replaced |
- // elements at the same time. |
- Vector<LayoutBox*> replacedChildren; |
for (InlineWalker walker(LineLayoutBlockFlow(this)); !walker.atEnd(); walker.advance()) { |
LayoutObject* o = walker.current().layoutObject(); |
@@ -1594,12 +1588,9 @@ void LayoutBlockFlow::layoutInlineChildren(bool relayoutChildren, LayoutUnit& pa |
markLinesDirtyInBlockRange(toLayoutBox(o)->logicalTop(), toLayoutBox(o)->logicalBottom()); |
} |
} else if (isFullLayout || o->needsLayout()) { |
- // Replaced element. |
+ // Atomic inline. |
box->dirtyLineBoxes(isFullLayout); |
- if (isFullLayout) |
- replacedChildren.append(box); |
- else |
- o->layoutIfNeeded(); |
+ o->layoutIfNeeded(); |
} |
} else if (o->isText() || (o->isLayoutInline() && !walker.atEndOfInline())) { |
if (!o->isText()) |
@@ -1613,9 +1604,6 @@ void LayoutBlockFlow::layoutInlineChildren(bool relayoutChildren, LayoutUnit& pa |
setContainsInlineWithOutlineAndContinuation(true); |
} |
- for (size_t i = 0; i < replacedChildren.size(); i++) |
- replacedChildren[i]->layoutIfNeeded(); |
- |
layoutRunsAndFloats(layoutState); |
} |