Index: third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc |
diff --git a/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc |
index aec4c537ecab9aa37b5ead7ead1ea010f449d876..c67949c19016f0ad831425caaae828c4f2a323a5 100644 |
--- a/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc |
+++ b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc |
@@ -355,7 +355,11 @@ RefPtr<NGLayoutResult> NGInlineNode::Layout(NGConstraintSpace* constraint_space, |
NGInlineLayoutAlgorithm algorithm(*this, constraint_space, |
ToNGInlineBreakToken(break_token)); |
RefPtr<NGLayoutResult> result = algorithm.Layout(); |
- CopyFragmentDataToLayoutBox(*constraint_space, result.Get()); |
+ |
+ if (result->Status() == NGLayoutResult::kSuccess && |
eae
2017/07/10 23:27:49
Should we return success even when we failed to po
ikilpatrick
2017/07/11 17:20:41
This does at the moment, we don't want to "abort"
|
+ result->UnpositionedFloats().IsEmpty()) |
+ CopyFragmentDataToLayoutBox(*constraint_space, result.Get()); |
+ |
return result; |
} |
@@ -377,7 +381,10 @@ static LayoutUnit ComputeContentSize(NGInlineNode node, |
NGPhysicalFragment::NGFragmentType::kFragmentBox, node); |
container_builder.SetBfcOffset(NGLogicalOffset{LayoutUnit(), LayoutUnit()}); |
- NGLineBreaker line_breaker(node, space.Get(), &container_builder); |
+ Vector<RefPtr<NGUnpositionedFloat>> unpositioned_floats; |
+ NGLineBreaker line_breaker(node, space.Get(), &container_builder, |
+ &unpositioned_floats); |
+ |
NGLineInfo line_info; |
LayoutUnit result; |
while (line_breaker.NextLine(&line_info, NGLogicalOffset())) { |