diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/core/layout/ng/ng_layout_input_node.cc')
-rw-r--r-- | chromium/third_party/blink/renderer/core/layout/ng/ng_layout_input_node.cc | 69 |
1 files changed, 40 insertions, 29 deletions
diff --git a/chromium/third_party/blink/renderer/core/layout/ng/ng_layout_input_node.cc b/chromium/third_party/blink/renderer/core/layout/ng/ng_layout_input_node.cc index f46d17d48d1..28d5bcce744 100644 --- a/chromium/third_party/blink/renderer/core/layout/ng/ng_layout_input_node.cc +++ b/chromium/third_party/blink/renderer/core/layout/ng/ng_layout_input_node.cc @@ -8,9 +8,8 @@ #include "third_party/blink/renderer/core/layout/intrinsic_sizing_info.h" #include "third_party/blink/renderer/core/layout/layout_replaced.h" #include "third_party/blink/renderer/core/layout/layout_view.h" -#include "third_party/blink/renderer/core/layout/min_max_size.h" +#include "third_party/blink/renderer/core/layout/min_max_sizes.h" #include "third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.h" -#include "third_party/blink/renderer/core/layout/ng/list/layout_ng_list_marker.h" #include "third_party/blink/renderer/core/layout/ng/ng_block_node.h" #include "third_party/blink/renderer/core/layout/ng/ng_layout_result.h" #include "third_party/blink/renderer/platform/wtf/text/string_builder.h" @@ -61,39 +60,23 @@ void AppendNodeToString(NGLayoutInputNode node, } // namespace -MinMaxSize NGLayoutInputNode::ComputeMinMaxSize( +MinMaxSizes NGLayoutInputNode::ComputeMinMaxSizes( WritingMode writing_mode, - const MinMaxSizeInput& input, + const MinMaxSizesInput& input, const NGConstraintSpace* space) { if (auto* inline_node = DynamicTo<NGInlineNode>(this)) - return inline_node->ComputeMinMaxSize(writing_mode, input, space); - return To<NGBlockNode>(*this).ComputeMinMaxSize(writing_mode, input, space); + return inline_node->ComputeMinMaxSizes(writing_mode, input, space); + return To<NGBlockNode>(*this).ComputeMinMaxSizes(writing_mode, input, space); } void NGLayoutInputNode::IntrinsicSize( base::Optional<LayoutUnit>* computed_inline_size, - base::Optional<LayoutUnit>* computed_block_size, - LogicalSize* aspect_ratio) const { + base::Optional<LayoutUnit>* computed_block_size) const { DCHECK(IsReplaced()); - LayoutUnit override_inline_size = OverrideIntrinsicContentInlineSize(); - if (override_inline_size != kIndefiniteSize) - *computed_inline_size = override_inline_size; - - LayoutUnit override_block_size = OverrideIntrinsicContentBlockSize(); - if (override_block_size != kIndefiniteSize) - *computed_block_size = override_block_size; - - if (ShouldApplySizeContainment()) { - if (!*computed_inline_size) - *computed_inline_size = LayoutUnit(); - if (!*computed_block_size) - *computed_block_size = LayoutUnit(); - } - if (*computed_inline_size && *computed_block_size) { - *aspect_ratio = LogicalSize(**computed_inline_size, **computed_block_size); + GetOverrideIntrinsicSize(computed_inline_size, computed_block_size); + if (*computed_inline_size && *computed_block_size) return; - } IntrinsicSizingInfo legacy_sizing_info; @@ -102,9 +85,6 @@ void NGLayoutInputNode::IntrinsicSize( *computed_inline_size = LayoutUnit(legacy_sizing_info.size.Width()); if (!*computed_block_size && legacy_sizing_info.has_height) *computed_block_size = LayoutUnit(legacy_sizing_info.size.Height()); - *aspect_ratio = - LogicalSize(LayoutUnit(legacy_sizing_info.aspect_ratio.Width()), - LayoutUnit(legacy_sizing_info.aspect_ratio.Height())); } NGLayoutInputNode NGLayoutInputNode::NextSibling() { @@ -134,8 +114,39 @@ void NGLayoutInputNode::ShowNodeTree() const { StringBuilder string_builder; string_builder.Append(".:: LayoutNG Node Tree ::.\n"); AppendNodeToString(*this, &string_builder); - fprintf(stderr, "%s\n", string_builder.ToString().Utf8().c_str()); + DLOG(INFO) << "\n" << string_builder.ToString().Utf8(); } #endif +void NGLayoutInputNode::GetOverrideIntrinsicSize( + base::Optional<LayoutUnit>* computed_inline_size, + base::Optional<LayoutUnit>* computed_block_size) const { + DCHECK(IsReplaced()); + + LayoutUnit override_inline_size = OverrideIntrinsicContentInlineSize(); + if (override_inline_size != kIndefiniteSize) { + *computed_inline_size = override_inline_size; + } else { + LayoutUnit default_inline_size = DefaultIntrinsicContentInlineSize(); + if (default_inline_size != kIndefiniteSize) + *computed_inline_size = default_inline_size; + } + + LayoutUnit override_block_size = OverrideIntrinsicContentBlockSize(); + if (override_block_size != kIndefiniteSize) { + *computed_block_size = override_block_size; + } else { + LayoutUnit default_block_size = DefaultIntrinsicContentBlockSize(); + if (default_block_size != kIndefiniteSize) + *computed_block_size = default_block_size; + } + + if (ShouldApplySizeContainment()) { + if (!*computed_inline_size) + *computed_inline_size = LayoutUnit(); + if (!*computed_block_size) + *computed_block_size = LayoutUnit(); + } +} + } // namespace blink |