Chromium Code Reviews| 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())) { |