| 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 5fa4b4d2524f2a526592aaec8aff9e1d3b3ed241..2cecacc7dc8876491478bc9ffaec6eb23bb840cf 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
|
| @@ -347,10 +347,7 @@ RefPtr<NGLayoutResult> NGInlineNode::Layout(NGConstraintSpace* constraint_space,
|
| return result;
|
| }
|
|
|
| -enum class ContentSizeMode { Max, Sum };
|
| -
|
| static LayoutUnit ComputeContentSize(NGInlineNode node,
|
| - ContentSizeMode mode,
|
| LayoutUnit available_inline_size) {
|
| const ComputedStyle& style = node.Style();
|
| NGWritingMode writing_mode = FromPlatformWritingMode(style.GetWritingMode());
|
| @@ -371,11 +368,7 @@ static LayoutUnit ComputeContentSize(NGInlineNode node,
|
| LayoutUnit inline_size = line_info.TextIndent();
|
| for (const NGInlineItemResult item_result : line_info.Results())
|
| inline_size += item_result.inline_size;
|
| - if (mode == ContentSizeMode::Max) {
|
| - result = std::max(inline_size, result);
|
| - } else {
|
| - result += inline_size;
|
| - }
|
| + result = std::max(inline_size, result);
|
| }
|
| return result;
|
| }
|
| @@ -394,15 +387,16 @@ MinMaxContentSize NGInlineNode::ComputeMinMaxContentSize() {
|
| // size. This gives the min-content, the width where lines wrap at every
|
| // break opportunity.
|
| MinMaxContentSize sizes;
|
| - sizes.min_content =
|
| - ComputeContentSize(*this, ContentSizeMode::Max, LayoutUnit());
|
| + sizes.min_content = ComputeContentSize(*this, LayoutUnit());
|
|
|
| // Compute the sum of inline sizes of all inline boxes with no line breaks.
|
| // TODO(kojii): NGConstraintSpaceBuilder does not allow NGSizeIndefinite
|
| // inline available size. We can allow it, or make this more efficient
|
| // without using NGLineBreaker.
|
| - sizes.max_content =
|
| - ComputeContentSize(*this, ContentSizeMode::Sum, LayoutUnit::Max());
|
| + sizes.max_content = ComputeContentSize(*this, LayoutUnit::Max());
|
| +
|
| + // Negative text-indent can make min > max. Ensure min is the minimum size.
|
| + sizes.min_content = std::min(sizes.min_content, sizes.max_content);
|
|
|
| return sizes;
|
| }
|
|
|