| Index: third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
|
| diff --git a/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc b/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
|
| index 79a201bed4f3ca1a83c4fd63860290b3fd5c85a0..a4151473b1b2abb2058fea718ef40b08e62b6621 100644
|
| --- a/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
|
| +++ b/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
|
| @@ -13,12 +13,31 @@
|
|
|
| namespace blink {
|
|
|
| -NGConstraintSpace::NGConstraintSpace(NGWritingMode writing_mode,
|
| - TextDirection direction,
|
| - NGPhysicalConstraintSpace* physical_space)
|
| - : physical_space_(physical_space),
|
| +NGConstraintSpace::NGConstraintSpace(
|
| + NGWritingMode writing_mode,
|
| + TextDirection direction,
|
| + NGLogicalSize available_size,
|
| + NGLogicalSize percentage_resolution_size,
|
| + bool is_fixed_size_inline,
|
| + bool is_fixed_size_block,
|
| + bool is_inline_direction_triggers_scrollbar,
|
| + bool is_block_direction_triggers_scrollbar,
|
| + NGFragmentationType block_direction_fragmentation_type,
|
| + bool is_new_fc,
|
| + const std::shared_ptr<NGExclusions>& exclusions_)
|
| + : available_size_(available_size),
|
| + percentage_resolution_size_(percentage_resolution_size),
|
| + is_fixed_size_inline_(is_fixed_size_inline),
|
| + is_fixed_size_block_(is_fixed_size_block),
|
| + is_inline_direction_triggers_scrollbar_(
|
| + is_inline_direction_triggers_scrollbar),
|
| + is_block_direction_triggers_scrollbar_(
|
| + is_block_direction_triggers_scrollbar),
|
| + block_direction_fragmentation_type_(block_direction_fragmentation_type),
|
| + is_new_fc_(is_new_fc),
|
| writing_mode_(writing_mode),
|
| - direction_(direction) {}
|
| + direction_(direction),
|
| + exclusions_(exclusions_) {}
|
|
|
| NGConstraintSpace* NGConstraintSpace::CreateFromLayoutObject(
|
| const LayoutBox& box) {
|
| @@ -50,85 +69,28 @@ NGConstraintSpace* NGConstraintSpace::CreateFromLayoutObject(
|
| bool is_new_fc =
|
| box.isLayoutBlock() && toLayoutBlock(box).createsNewFormattingContext();
|
|
|
| - NGConstraintSpaceBuilder builder(
|
| - FromPlatformWritingMode(box.styleRef().getWritingMode()));
|
| - builder
|
| - .SetAvailableSize(
|
| - NGLogicalSize(available_logical_width, available_logical_height))
|
| - .SetPercentageResolutionSize(
|
| - NGLogicalSize(available_logical_width, available_logical_height))
|
| + NGLogicalSize size = {available_logical_width, available_logical_height};
|
| + auto writing_mode = FromPlatformWritingMode(box.styleRef().getWritingMode());
|
| + return NGConstraintSpaceBuilder(writing_mode)
|
| + .SetAvailableSize(size)
|
| + .SetPercentageResolutionSize(size)
|
| .SetIsInlineDirectionTriggersScrollbar(
|
| box.styleRef().overflowInlineDirection() == OverflowAuto)
|
| .SetIsBlockDirectionTriggersScrollbar(
|
| box.styleRef().overflowBlockDirection() == OverflowAuto)
|
| .SetIsFixedSizeInline(fixed_inline)
|
| .SetIsFixedSizeBlock(fixed_block)
|
| - .SetIsNewFormattingContext(is_new_fc);
|
| -
|
| - return new NGConstraintSpace(
|
| - FromPlatformWritingMode(box.styleRef().getWritingMode()),
|
| - box.styleRef().direction(), builder.ToConstraintSpace());
|
| -}
|
| -
|
| -void NGConstraintSpace::AddExclusion(const NGExclusion& exclusion) const {
|
| - WRITING_MODE_IGNORED(
|
| - "Exclusions are stored directly in physical constraint space.");
|
| - MutablePhysicalSpace()->AddExclusion(exclusion);
|
| -}
|
| -
|
| -const NGExclusion* NGConstraintSpace::LastLeftFloatExclusion() const {
|
| - WRITING_MODE_IGNORED(
|
| - "Exclusions are stored directly in physical constraint space.");
|
| - return PhysicalSpace()->LastLeftFloatExclusion();
|
| -}
|
| -
|
| -const NGExclusion* NGConstraintSpace::LastRightFloatExclusion() const {
|
| - WRITING_MODE_IGNORED(
|
| - "Exclusions are stored directly in physical constraint space.");
|
| - return PhysicalSpace()->LastRightFloatExclusion();
|
| -}
|
| -
|
| -NGLogicalSize NGConstraintSpace::PercentageResolutionSize() const {
|
| - return physical_space_->percentage_resolution_size_.ConvertToLogical(
|
| - static_cast<NGWritingMode>(writing_mode_));
|
| -}
|
| -
|
| -NGLogicalSize NGConstraintSpace::AvailableSize() const {
|
| - return physical_space_->available_size_.ConvertToLogical(
|
| - static_cast<NGWritingMode>(writing_mode_));
|
| -}
|
| -
|
| -bool NGConstraintSpace::IsNewFormattingContext() const {
|
| - return physical_space_->is_new_fc_;
|
| -}
|
| -
|
| -bool NGConstraintSpace::InlineTriggersScrollbar() const {
|
| - return writing_mode_ == kHorizontalTopBottom
|
| - ? physical_space_->width_direction_triggers_scrollbar_
|
| - : physical_space_->height_direction_triggers_scrollbar_;
|
| -}
|
| -
|
| -bool NGConstraintSpace::BlockTriggersScrollbar() const {
|
| - return writing_mode_ == kHorizontalTopBottom
|
| - ? physical_space_->height_direction_triggers_scrollbar_
|
| - : physical_space_->width_direction_triggers_scrollbar_;
|
| -}
|
| -
|
| -bool NGConstraintSpace::FixedInlineSize() const {
|
| - return writing_mode_ == kHorizontalTopBottom ? physical_space_->fixed_width_
|
| - : physical_space_->fixed_height_;
|
| + .SetIsNewFormattingContext(is_new_fc)
|
| + .SetTextDirection(box.styleRef().direction())
|
| + .ToConstraintSpace();
|
| }
|
|
|
| -bool NGConstraintSpace::FixedBlockSize() const {
|
| - return writing_mode_ == kHorizontalTopBottom ? physical_space_->fixed_height_
|
| - : physical_space_->fixed_width_;
|
| +void NGConstraintSpace::AddExclusion(const NGExclusion& exclusion) {
|
| + exclusions_->Add(exclusion);
|
| }
|
|
|
| NGFragmentationType NGConstraintSpace::BlockFragmentationType() const {
|
| - return static_cast<NGFragmentationType>(
|
| - writing_mode_ == kHorizontalTopBottom
|
| - ? physical_space_->height_direction_fragmentation_type_
|
| - : physical_space_->width_direction_fragmentation_type_);
|
| + return static_cast<NGFragmentationType>(block_direction_fragmentation_type_);
|
| }
|
|
|
| void NGConstraintSpace::Subtract(const NGFragment*) {
|
| @@ -144,8 +106,10 @@ NGLayoutOpportunityIterator* NGConstraintSpace::LayoutOpportunities(
|
|
|
| NGConstraintSpace* NGConstraintSpace::ChildSpace(
|
| const ComputedStyle* style) const {
|
| - return new NGConstraintSpace(FromPlatformWritingMode(style->getWritingMode()),
|
| - style->direction(), MutablePhysicalSpace());
|
| + return NGConstraintSpaceBuilder(this)
|
| + .SetWritingMode(FromPlatformWritingMode(style->getWritingMode()))
|
| + .SetTextDirection(style->direction())
|
| + .ToConstraintSpace();
|
| }
|
|
|
| String NGConstraintSpace::ToString() const {
|
|
|