Commit aa1696ff authored by Koji Ishii's avatar Koji Ishii Committed by Commit Bot

[LayoutNG] Fix max-content size when floats are outside of content box

This patch fixes max-content size when the line has floats
outside of its content box.

In such case, ComputeContentSize computes a negative value
for |floats_inline_size|. Such |floats_inline_size| should
not affect max-content size.

This patch applies the same fix as r570350 (CL:1113094) to
NGInlineNode.

Bug: 636993
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I5495e56fb3cf6777a4fd308b61f5eb6e484d03af
Reviewed-on: https://chromium-review.googlesource.com/1138594
Commit-Queue: Koji Ishii <kojii@chromium.org>
Reviewed-by: default avatarIan Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#575389}
parent 9f8158c1
...@@ -532,7 +532,6 @@ crbug.com/591099 fast/css/focus-ring-continuations.html [ Failure ] ...@@ -532,7 +532,6 @@ crbug.com/591099 fast/css/focus-ring-continuations.html [ Failure ]
crbug.com/714962 fast/css/focus-ring-recursive-continuations.html [ Failure ] crbug.com/714962 fast/css/focus-ring-recursive-continuations.html [ Failure ]
crbug.com/714962 fast/css/focus-ring-recursive-inlines.html [ Failure ] crbug.com/714962 fast/css/focus-ring-recursive-inlines.html [ Failure ]
crbug.com/591099 fast/css/getComputedStyle/computed-style-percentage-top-with-position-inline.html [ Failure ] crbug.com/591099 fast/css/getComputedStyle/computed-style-percentage-top-with-position-inline.html [ Failure ]
crbug.com/591099 fast/css/negative-text-indent-in-inline-block.html [ Failure ]
crbug.com/591099 fast/css/outline-narrowLine.html [ Failure ] crbug.com/591099 fast/css/outline-narrowLine.html [ Failure ]
crbug.com/591099 fast/css/transform-inline-style-remove.html [ Failure ] crbug.com/591099 fast/css/transform-inline-style-remove.html [ Failure ]
crbug.com/591099 fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto.html [ Failure ] crbug.com/591099 fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto.html [ Failure ]
......
...@@ -673,6 +673,7 @@ static LayoutUnit ComputeContentSize(NGInlineNode node, ...@@ -673,6 +673,7 @@ static LayoutUnit ComputeContentSize(NGInlineNode node,
LayoutUnit result; LayoutUnit result;
LayoutUnit previous_floats_inline_size = LayoutUnit previous_floats_inline_size =
input.float_left_inline_size + input.float_right_inline_size; input.float_left_inline_size + input.float_right_inline_size;
DCHECK_GE(previous_floats_inline_size, 0);
while (!break_token || !break_token->IsFinished()) { while (!break_token || !break_token->IsFinished()) {
unpositioned_floats.clear(); unpositioned_floats.clear();
...@@ -729,7 +730,10 @@ static LayoutUnit ComputeContentSize(NGInlineNode node, ...@@ -729,7 +730,10 @@ static LayoutUnit ComputeContentSize(NGInlineNode node,
floats_inline_size = LayoutUnit(); floats_inline_size = LayoutUnit();
} }
floats_inline_size += child_sizes.max_size + child_inline_margins; // When negative margins move the float outside the content area,
// such float should not affect the content size.
floats_inline_size +=
(child_sizes.max_size + child_inline_margins).ClampNegativeToZero();
previous_float_type = float_style.Floating(); previous_float_type = float_style.Floating();
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment