Chromium Code Reviews| 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 1974084634b56e33c59333b99bfbadad196081e4..5b39d9bfa5cbe81989974c9a1a67618070aab13a 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 |
| @@ -22,7 +22,8 @@ NGConstraintSpaceBuilder::NGConstraintSpaceBuilder( |
| is_inline_direction_triggers_scrollbar_(false), |
| is_block_direction_triggers_scrollbar_(false), |
| fragmentation_type_(parent_space->BlockFragmentationType()), |
| - is_new_fc_(parent_space->IsNewFormattingContext()), |
| + is_new_fc_(false), |
| + is_parent_new_fc_(parent_space->IsNewFormattingContext()), |
| is_anonymous_(false), |
| text_direction_(static_cast<unsigned>(parent_space->Direction())), |
| bfc_offset_(parent_space->bfc_offset_), |
| @@ -39,6 +40,7 @@ NGConstraintSpaceBuilder::NGConstraintSpaceBuilder(NGWritingMode writing_mode) |
| is_block_direction_triggers_scrollbar_(false), |
| fragmentation_type_(kFragmentNone), |
| is_new_fc_(false), |
| + is_parent_new_fc_(false), |
| is_anonymous_(false), |
| text_direction_(static_cast<unsigned>(TextDirection::kLtr)), |
| exclusions_(new NGExclusions()) {} |
| @@ -175,8 +177,7 @@ RefPtr<NGConstraintSpace> NGConstraintSpaceBuilder::ToConstraintSpace( |
| // Reset things that do not pass the Formatting Context boundary. |
| std::shared_ptr<NGExclusions> exclusions( |
| - is_new_fc_ ? std::make_shared<NGExclusions>() : exclusions_); |
| - NGLogicalOffset bfc_offset = is_new_fc_ ? NGLogicalOffset() : bfc_offset_; |
| + is_parent_new_fc_ ? std::make_shared<NGExclusions>() : exclusions_); |
|
ikilpatrick
2017/03/23 16:39:59
yeah i'm not sure that I understand this, exclusio
Gleb Lanbin
2017/03/24 20:10:05
updated based on the offline discussion.
|
| NGMarginStrut margin_strut = is_new_fc_ ? NGMarginStrut() : margin_strut_; |
| WTF::Optional<LayoutUnit> clearance_offset = |
| is_new_fc_ ? WTF::nullopt : clearance_offset_; |
| @@ -191,7 +192,8 @@ RefPtr<NGConstraintSpace> NGConstraintSpaceBuilder::ToConstraintSpace( |
| is_inline_direction_triggers_scrollbar_, |
| is_block_direction_triggers_scrollbar_, |
| static_cast<NGFragmentationType>(fragmentation_type_), is_new_fc_, |
| - is_anonymous_, margin_strut, bfc_offset, exclusions, clearance_offset)); |
| + is_anonymous_, margin_strut, bfc_offset_, exclusions, |
| + clearance_offset)); |
| } |
| return adoptRef(new NGConstraintSpace( |
| out_writing_mode, static_cast<TextDirection>(text_direction_), |
| @@ -201,7 +203,7 @@ RefPtr<NGConstraintSpace> NGConstraintSpaceBuilder::ToConstraintSpace( |
| is_block_direction_triggers_scrollbar_, |
| is_inline_direction_triggers_scrollbar_, |
| static_cast<NGFragmentationType>(fragmentation_type_), is_new_fc_, |
| - is_anonymous_, margin_strut, bfc_offset, exclusions, clearance_offset)); |
| + is_anonymous_, margin_strut, bfc_offset_, exclusions, clearance_offset)); |
| } |
| } // namespace blink |