Index: third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc |
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc b/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc |
index c329866ab446aac1f0d6a3528895a25a294147bb..cbb9244f0038f59b562f7622091b2d9d0c058a45 100644 |
--- a/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc |
+++ b/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc |
@@ -10,7 +10,9 @@ NGFragmentBuilder::NGFragmentBuilder( |
NGPhysicalFragmentBase::NGFragmentType type) |
: type_(type), |
writing_mode_(HorizontalTopBottom), |
- direction_(LeftToRight) {} |
+ direction_(LeftToRight), |
+ is_margin_strut_block_start_updated_(false), |
+ is_margin_strut_block_end_updated_(false) {} |
NGFragmentBuilder& NGFragmentBuilder::SetWritingMode( |
NGWritingMode writing_mode) { |
@@ -52,6 +54,24 @@ NGFragmentBuilder& NGFragmentBuilder::AddChild(NGFragment* child, |
return *this; |
} |
+NGFragmentBuilder& NGFragmentBuilder::SetMarginStrutBlockStart( |
+ const NGMarginStrut& from) { |
+ DCHECK(!is_margin_strut_block_start_updated_); |
+ margin_strut_.margin_block_start = from.margin_block_start; |
+ margin_strut_.negative_margin_block_start = from.negative_margin_block_start; |
+ is_margin_strut_block_start_updated_ = true; |
+ return *this; |
+} |
+ |
+NGFragmentBuilder& NGFragmentBuilder::SetMarginStrutBlockEnd( |
+ const NGMarginStrut& from) { |
+ DCHECK(!is_margin_strut_block_end_updated_); |
+ margin_strut_.margin_block_end = from.margin_block_end; |
+ margin_strut_.negative_margin_block_end = from.negative_margin_block_end; |
+ is_margin_strut_block_end_updated_ = true; |
+ return *this; |
+} |
+ |
NGPhysicalFragment* NGFragmentBuilder::ToFragment() { |
// TODO(layout-ng): Support text fragments |
DCHECK_EQ(type_, NGPhysicalFragmentBase::FragmentBox); |
@@ -67,9 +87,9 @@ NGPhysicalFragment* NGFragmentBuilder::ToFragment() { |
writing_mode_, direction_, physical_size, child->Size())); |
children.append(child); |
} |
- |
- return new NGPhysicalFragment( |
- physical_size, overflow_.ConvertToPhysical(writing_mode_), children); |
+ return new NGPhysicalFragment(physical_size, |
+ overflow_.ConvertToPhysical(writing_mode_), |
+ children, margin_strut_); |
} |
} // namespace blink |