summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/layout/flexible_box_algorithm.cc
diff options
context:
space:
mode:
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.cc29
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;
}