summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/layout/ng/ng_length_utils.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/core/layout/ng/ng_length_utils.h')
-rw-r--r--chromium/third_party/blink/renderer/core/layout/ng/ng_length_utils.h121
1 files changed, 26 insertions, 95 deletions
diff --git a/chromium/third_party/blink/renderer/core/layout/ng/ng_length_utils.h b/chromium/third_party/blink/renderer/core/layout/ng/ng_length_utils.h
index fceabff1719..83c95b2a247 100644
--- a/chromium/third_party/blink/renderer/core/layout/ng/ng_length_utils.h
+++ b/chromium/third_party/blink/renderer/core/layout/ng/ng_length_utils.h
@@ -58,8 +58,7 @@ CORE_EXPORT bool InlineLengthUnresolvable(const NGConstraintSpace&,
CORE_EXPORT bool BlockLengthUnresolvable(
const NGConstraintSpace&,
const Length&,
- const LayoutUnit* opt_percentage_resolution_block_size_for_min_max =
- nullptr);
+ const LayoutUnit* override_percentage_resolution_size = nullptr);
// Resolve means translate a Length to a LayoutUnit.
// - |NGConstraintSpace| the information given by the parent, e.g. the
@@ -88,8 +87,7 @@ CORE_EXPORT LayoutUnit ResolveBlockLengthInternal(
const Length&,
LayoutUnit intrinsic_size,
LayoutUnit available_block_size_adjustment = LayoutUnit(),
- const LayoutUnit* opt_percentage_resolution_block_size_for_min_max =
- nullptr);
+ const LayoutUnit* override_percentage_resolution_size = nullptr);
// In this file the template parameter MinMaxSizesFunc should have the
// following form:
@@ -126,23 +124,6 @@ inline LayoutUnit ResolveMinInlineLength(
available_inline_size_adjustment);
}
-template <>
-inline LayoutUnit ResolveMinInlineLength<absl::optional<MinMaxSizes>>(
- const NGConstraintSpace& constraint_space,
- const ComputedStyle& style,
- const NGBoxStrut& border_padding,
- const absl::optional<MinMaxSizes>& min_max_sizes,
- const Length& length,
- LayoutUnit available_inline_size_adjustment) {
- if (LIKELY(length.IsAuto() ||
- InlineLengthUnresolvable(constraint_space, length)))
- return border_padding.InlineSum();
-
- return ResolveInlineLengthInternal(constraint_space, style, border_padding,
- min_max_sizes, length,
- available_inline_size_adjustment);
-}
-
// Used for resolving max inline lengths, (|ComputedStyle::MaxLogicalWidth|).
template <typename MinMaxSizesFunc>
inline LayoutUnit ResolveMaxInlineLength(
@@ -169,23 +150,6 @@ inline LayoutUnit ResolveMaxInlineLength(
available_inline_size_adjustment);
}
-template <>
-inline LayoutUnit ResolveMaxInlineLength<absl::optional<MinMaxSizes>>(
- const NGConstraintSpace& constraint_space,
- const ComputedStyle& style,
- const NGBoxStrut& border_padding,
- const absl::optional<MinMaxSizes>& min_max_sizes,
- const Length& length,
- LayoutUnit available_inline_size_adjustment) {
- if (LIKELY(length.IsNone() ||
- InlineLengthUnresolvable(constraint_space, length)))
- return LayoutUnit::Max();
-
- return ResolveInlineLengthInternal(constraint_space, style, border_padding,
- min_max_sizes, length,
- available_inline_size_adjustment);
-}
-
// Used for resolving main inline lengths, (|ComputedStyle::LogicalWidth|).
template <typename MinMaxSizesFunc>
inline LayoutUnit ResolveMainInlineLength(
@@ -209,20 +173,6 @@ inline LayoutUnit ResolveMainInlineLength(
available_inline_size_adjustment);
}
-template <>
-inline LayoutUnit ResolveMainInlineLength<absl::optional<MinMaxSizes>>(
- const NGConstraintSpace& constraint_space,
- const ComputedStyle& style,
- const NGBoxStrut& border_padding,
- const absl::optional<MinMaxSizes>& min_max_sizes,
- const Length& length,
- LayoutUnit available_inline_size_adjustment) {
- DCHECK(!length.IsAuto());
- return ResolveInlineLengthInternal(constraint_space, style, border_padding,
- min_max_sizes, length,
- available_inline_size_adjustment);
-}
-
// Used for resolving min block lengths, (|ComputedStyle::MinLogicalHeight|).
inline LayoutUnit ResolveMinBlockLength(
const NGConstraintSpace& constraint_space,
@@ -230,17 +180,14 @@ inline LayoutUnit ResolveMinBlockLength(
const NGBoxStrut& border_padding,
const Length& length,
LayoutUnit available_block_size_adjustment = LayoutUnit(),
- const LayoutUnit* opt_percentage_resolution_block_size_for_min_max =
- nullptr) {
- if (LIKELY(BlockLengthUnresolvable(
- constraint_space, length,
- opt_percentage_resolution_block_size_for_min_max)))
+ const LayoutUnit* override_percentage_resolution_size = nullptr) {
+ if (LIKELY(BlockLengthUnresolvable(constraint_space, length,
+ override_percentage_resolution_size)))
return border_padding.BlockSum();
return ResolveBlockLengthInternal(
constraint_space, style, border_padding, length, kIndefiniteSize,
- available_block_size_adjustment,
- opt_percentage_resolution_block_size_for_min_max);
+ available_block_size_adjustment, override_percentage_resolution_size);
}
// Used for resolving max block lengths, (|ComputedStyle::MaxLogicalHeight|).
@@ -250,17 +197,14 @@ inline LayoutUnit ResolveMaxBlockLength(
const NGBoxStrut& border_padding,
const Length& length,
LayoutUnit available_block_size_adjustment = LayoutUnit(),
- const LayoutUnit* opt_percentage_resolution_block_size_for_min_max =
- nullptr) {
- if (LIKELY(BlockLengthUnresolvable(
- constraint_space, length,
- opt_percentage_resolution_block_size_for_min_max)))
+ const LayoutUnit* override_percentage_resolution_size = nullptr) {
+ if (LIKELY(BlockLengthUnresolvable(constraint_space, length,
+ override_percentage_resolution_size)))
return LayoutUnit::Max();
return ResolveBlockLengthInternal(
constraint_space, style, border_padding, length, kIndefiniteSize,
- available_block_size_adjustment,
- opt_percentage_resolution_block_size_for_min_max);
+ available_block_size_adjustment, override_percentage_resolution_size);
}
// Used for resolving main block lengths, (|ComputedStyle::LogicalHeight|).
@@ -271,19 +215,16 @@ inline LayoutUnit ResolveMainBlockLength(
const Length& length,
LayoutUnit intrinsic_size,
LayoutUnit available_block_size_adjustment = LayoutUnit(),
- const LayoutUnit* opt_percentage_resolution_block_size_for_min_max =
- nullptr) {
+ const LayoutUnit* override_percentage_resolution_size = nullptr) {
DCHECK(!length.IsAuto());
if (UNLIKELY((length.IsPercentOrCalc() || length.IsFillAvailable()) &&
- BlockLengthUnresolvable(
- constraint_space, length,
- opt_percentage_resolution_block_size_for_min_max)))
+ BlockLengthUnresolvable(constraint_space, length,
+ override_percentage_resolution_size)))
return intrinsic_size;
return ResolveBlockLengthInternal(
constraint_space, style, border_padding, length, intrinsic_size,
- available_block_size_adjustment,
- opt_percentage_resolution_block_size_for_min_max);
+ available_block_size_adjustment, override_percentage_resolution_size);
}
template <typename IntrinsicBlockSizeFunc>
@@ -293,24 +234,19 @@ inline LayoutUnit ResolveMainBlockLength(
const NGBoxStrut& border_padding,
const Length& length,
const IntrinsicBlockSizeFunc& intrinsic_block_size_func,
- LayoutUnit available_block_size_adjustment = LayoutUnit(),
- const LayoutUnit* opt_percentage_resolution_block_size_for_min_max =
- nullptr) {
+ LayoutUnit available_block_size_adjustment = LayoutUnit()) {
DCHECK(!length.IsAuto());
if (UNLIKELY((length.IsPercentOrCalc() || length.IsFillAvailable()) &&
- BlockLengthUnresolvable(
- constraint_space, length,
- opt_percentage_resolution_block_size_for_min_max)))
+ BlockLengthUnresolvable(constraint_space, length)))
return intrinsic_block_size_func();
LayoutUnit intrinsic_block_size = kIndefiniteSize;
if (length.IsContentOrIntrinsic())
intrinsic_block_size = intrinsic_block_size_func();
- return ResolveBlockLengthInternal(
- constraint_space, style, border_padding, length, intrinsic_block_size,
- available_block_size_adjustment,
- opt_percentage_resolution_block_size_for_min_max);
+ return ResolveBlockLengthInternal(constraint_space, style, border_padding,
+ length, intrinsic_block_size,
+ available_block_size_adjustment);
}
// For the given |child|, computes the min and max content contribution
@@ -354,9 +290,7 @@ MinMaxSizes ComputeMinMaxBlockSizes(
const NGConstraintSpace&,
const ComputedStyle&,
const NGBoxStrut& border_padding,
- LayoutUnit available_block_size_adjustment = LayoutUnit(),
- const LayoutUnit* opt_percentage_resolution_block_size_for_min_max =
- nullptr);
+ LayoutUnit available_block_size_adjustment = LayoutUnit());
MinMaxSizes ComputeTransferredMinMaxInlineSizes(
const LogicalSize& ratio,
@@ -375,13 +309,11 @@ MinMaxSizes ComputeMinMaxInlineSizesFromAspectRatio(
const NGBoxStrut& border_padding);
template <typename MinMaxSizesFunc>
-MinMaxSizes ComputeMinMaxInlineSizes(
- const NGConstraintSpace& space,
- const NGBlockNode& node,
- const NGBoxStrut& border_padding,
- const MinMaxSizesFunc& min_max_sizes_func,
- const Length* opt_min_length = nullptr,
- absl::optional<bool> is_block_size_indefinite = absl::nullopt) {
+MinMaxSizes ComputeMinMaxInlineSizes(const NGConstraintSpace& space,
+ const NGBlockNode& node,
+ const NGBoxStrut& border_padding,
+ const MinMaxSizesFunc& min_max_sizes_func,
+ const Length* opt_min_length = nullptr) {
const ComputedStyle& style = node.Style();
const Length& min_length =
opt_min_length ? *opt_min_length : style.LogicalMinWidth();
@@ -394,8 +326,7 @@ MinMaxSizes ComputeMinMaxInlineSizes(
// This implements the transferred min/max sizes per:
// https://drafts.csswg.org/css-sizing-4/#aspect-ratio-size-transfers
if (!style.AspectRatio().IsAuto() &&
- is_block_size_indefinite.value_or(
- BlockLengthUnresolvable(space, style.LogicalHeight()))) {
+ BlockLengthUnresolvable(space, style.LogicalHeight())) {
MinMaxSizes transferred_sizes =
ComputeMinMaxInlineSizesFromAspectRatio(space, style, border_padding);
sizes.min_size = std::max(