Index: third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc |
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc b/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc |
index ac99cdd46c2c8c7e3304277d7a1a78bca7833097..e35cee1649d36187cc10c7ce69b6f8c22d636783 100644 |
--- a/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc |
+++ b/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc |
@@ -23,6 +23,7 @@ NGConstraintSpaceBuilder::NGConstraintSpaceBuilder( |
fragmentation_type_(parent_space->BlockFragmentationType()), |
is_new_fc_(parent_space->IsNewFormattingContext()), |
text_direction_(static_cast<unsigned>(parent_space->Direction())), |
+ bfc_offset_(parent_space->bfc_offset_), |
exclusions_(parent_space->Exclusions()) {} |
NGConstraintSpaceBuilder::NGConstraintSpaceBuilder(NGWritingMode writing_mode) |
@@ -57,6 +58,12 @@ NGConstraintSpaceBuilder& NGConstraintSpaceBuilder::SetTextDirection( |
return *this; |
} |
+NGConstraintSpaceBuilder& NGConstraintSpaceBuilder::SetMarginStrut( |
+ const NGMarginStrut& margin_strut) { |
+ margin_strut_ = margin_strut; |
+ return *this; |
+} |
+ |
NGConstraintSpaceBuilder& NGConstraintSpaceBuilder::SetIsFixedSizeInline( |
bool is_fixed_size_inline) { |
is_fixed_size_inline_ = is_fixed_size_inline; |
@@ -119,6 +126,9 @@ NGConstraintSpace* NGConstraintSpaceBuilder::ToConstraintSpace() { |
bool is_in_parallel_flow = (parent_writing_mode_ == kHorizontalTopBottom) == |
(writing_mode_ == kHorizontalTopBottom); |
+ NGMarginStrut margin_strut = is_new_fc_ ? NGMarginStrut() : margin_strut_; |
+ NGLogicalOffset bfc_offset = is_new_fc_ ? NGLogicalOffset() : bfc_offset_; |
+ |
if (is_in_parallel_flow) { |
return new NGConstraintSpace( |
static_cast<NGWritingMode>(writing_mode_), |
@@ -131,7 +141,7 @@ NGConstraintSpace* NGConstraintSpaceBuilder::ToConstraintSpace() { |
is_inline_direction_triggers_scrollbar_, |
is_block_direction_triggers_scrollbar_, |
static_cast<NGFragmentationType>(fragmentation_type_), is_new_fc_, |
- exclusions); |
+ margin_strut, bfc_offset, exclusions); |
} |
return new NGConstraintSpace( |
@@ -145,7 +155,7 @@ NGConstraintSpace* NGConstraintSpaceBuilder::ToConstraintSpace() { |
is_block_direction_triggers_scrollbar_, |
is_inline_direction_triggers_scrollbar_, |
static_cast<NGFragmentationType>(fragmentation_type_), is_new_fc_, |
- exclusions); |
+ margin_strut, bfc_offset, exclusions); |
} |
} // namespace blink |