Commit e29a6ac8 authored by Ian Kilpatrick's avatar Ian Kilpatrick Committed by Commit Bot

[FlexNG] Fix devtools DCHECK.

Devtools was crashing using FlexNG as various sizes were going below
zero.

This was occurring as we were subtracting scrollbars from the min/max
sizes, and this patch removes this logic.

Bug: 845235
Change-Id: I3abb0594a94e3f23953bcab5f1dd0638468b063f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2012161Reviewed-by: default avatarDavid Grogan <dgrogan@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#733700}
parent 1839ca56
......@@ -356,16 +356,10 @@ void NGFlexLayoutAlgorithm::ConstructAndAppendFlexItems() {
NGBoxStrut border_padding_in_child_writing_mode =
ComputeBorders(flex_basis_space, child) +
ComputePadding(flex_basis_space, child_style);
NGBoxStrut border_scrollbar_padding_in_child_writing_mode =
border_padding_in_child_writing_mode +
ComputeScrollbars(flex_basis_space, child);
NGPhysicalBoxStrut physical_border_padding(
border_padding_in_child_writing_mode.ConvertToPhysical(
child_style.GetWritingMode(), child_style.Direction()));
NGPhysicalBoxStrut physical_border_scrollbar_padding(
border_scrollbar_padding_in_child_writing_mode.ConvertToPhysical(
child_style.GetWritingMode(), child_style.Direction()));
LayoutUnit main_axis_border_padding =
is_horizontal_flow_ ? physical_border_padding.HorizontalSum()
......@@ -373,9 +367,6 @@ void NGFlexLayoutAlgorithm::ConstructAndAppendFlexItems() {
LayoutUnit cross_axis_border_padding =
is_horizontal_flow_ ? physical_border_padding.VerticalSum()
: physical_border_padding.HorizontalSum();
LayoutUnit main_axis_border_scrollbar_padding =
is_horizontal_flow_ ? physical_border_scrollbar_padding.HorizontalSum()
: physical_border_scrollbar_padding.VerticalSum();
// TODO(dgrogan): Don't layout every time, just when you need to.
// Use ChildHasIntrinsicMainAxisSize as a guide.
......@@ -558,9 +549,10 @@ void NGFlexLayoutAlgorithm::ConstructAndAppendFlexItems() {
min, layout_result->IntrinsicBlockSize(),
LengthResolvePhase::kLayout);
}
// TODO(dgrogan): Should this include scrollbar?
min_max_sizes_in_main_axis_direction -= main_axis_border_scrollbar_padding;
min_max_sizes_in_main_axis_direction -= main_axis_border_padding;
// TODO(dgrogan): Should min_max_sizes_in_cross_axis_direction include
// cross_axis_border_padding?
NGPhysicalBoxStrut physical_child_margins =
ComputePhysicalMargins(flex_basis_space, child_style);
algorithm_
......
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/">
<meta name="assert" content="This test passes if the renderer does not crash."/>
<div style="display: flex;">
<div style="max-width: 0px; overflow: scroll;"></div>
</div>
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