diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/core/layout/flexible_box_algorithm.cc')
-rw-r--r-- | chromium/third_party/blink/renderer/core/layout/flexible_box_algorithm.cc | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/chromium/third_party/blink/renderer/core/layout/flexible_box_algorithm.cc b/chromium/third_party/blink/renderer/core/layout/flexible_box_algorithm.cc index 756a99fcdf5..9b6b9c23955 100644 --- a/chromium/third_party/blink/renderer/core/layout/flexible_box_algorithm.cc +++ b/chromium/third_party/blink/renderer/core/layout/flexible_box_algorithm.cc @@ -268,7 +268,7 @@ void FlexItem::ComputeStretchedSize() { cross_axis_size_ = box_->ConstrainLogicalHeightByMinMax( stretched_size, box_->IntrinsicContentLogicalHeight()); } else if (!MainAxisIsInlineAxis() && style_.LogicalWidth().IsAuto()) { - const LayoutFlexibleBox* flexbox = ToLayoutFlexibleBox(box_->Parent()); + const auto* flexbox = To<LayoutFlexibleBox>(box_->Parent()); cross_axis_size_ = box_->ConstrainLogicalWidthByMinMax( stretched_size, flexbox->CrossAxisContentExtent(), flexbox); } @@ -589,17 +589,18 @@ void FlexLine::ComputeLineItemsPosition(LayoutUnit main_axis_start_offset, LayoutUnit FlexLayoutAlgorithm::GapBetweenItems( const ComputedStyle& style, LogicalSize percent_resolution_sizes) { - DCHECK_GE(percent_resolution_sizes.inline_size, 0); if (IsColumnFlow(style)) { if (const base::Optional<Length>& row_gap = style.RowGap()) { return MinimumValueForLength( - *row_gap, percent_resolution_sizes.block_size.ClampNegativeToZero()); + *row_gap, + percent_resolution_sizes.block_size.ClampIndefiniteToZero()); } return LayoutUnit(); } if (const base::Optional<Length>& column_gap = style.ColumnGap()) { - return MinimumValueForLength(*column_gap, - percent_resolution_sizes.inline_size); + return MinimumValueForLength( + *column_gap, + percent_resolution_sizes.inline_size.ClampIndefiniteToZero()); } return LayoutUnit(); } @@ -608,17 +609,18 @@ LayoutUnit FlexLayoutAlgorithm::GapBetweenItems( LayoutUnit FlexLayoutAlgorithm::GapBetweenLines( const ComputedStyle& style, LogicalSize percent_resolution_sizes) { - DCHECK_GE(percent_resolution_sizes.inline_size, 0); if (!IsColumnFlow(style)) { if (const base::Optional<Length>& row_gap = style.RowGap()) { return MinimumValueForLength( - *row_gap, percent_resolution_sizes.block_size.ClampNegativeToZero()); + *row_gap, + percent_resolution_sizes.block_size.ClampIndefiniteToZero()); } return LayoutUnit(); } if (const base::Optional<Length>& column_gap = style.ColumnGap()) { - return MinimumValueForLength(*column_gap, - percent_resolution_sizes.inline_size); + return MinimumValueForLength( + *column_gap, + percent_resolution_sizes.inline_size.ClampIndefiniteToZero()); } return LayoutUnit(); } @@ -773,13 +775,8 @@ LayoutUnit FlexLayoutAlgorithm::IntrinsicContentBlockSize() const { if (IsColumnFlow()) { LayoutUnit max_size; - for (const FlexLine& line : flex_lines_) { - // Subtract main_axis_offset to remove border/padding - max_size = - std::max(line.main_axis_extent_ - line.sum_justify_adjustments_ - - line.main_axis_offset_, - max_size); - } + for (const FlexLine& line : flex_lines_) + max_size = std::max(line.sum_hypothetical_main_size_, max_size); return max_size; } |