Index: third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc |
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc b/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc |
index bb84c83ebd471fb27ba20cfa6a8e4aef7a12f183..de080810494de8392a4903e15392854912c574c2 100644 |
--- a/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc |
+++ b/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc |
@@ -53,8 +53,8 @@ void CollectAllOpportunities(const NGLayoutOpportunityTreeNode* node, |
CollectAllOpportunities(node->right.get(), opportunities); |
} |
-// Creates layout opportunity from the provided space and the origin point. |
-NGLayoutOpportunity CreateLayoutOpportunityFromConstraintSpace( |
+// Creates layout opportunity from the provided size and the origin point. |
+NGLayoutOpportunity CreateInitialOpportunity( |
const NGLogicalSize& size, |
const NGLogicalOffset& origin_point) { |
NGLayoutOpportunity opportunity; |
@@ -257,46 +257,23 @@ bool CompareNGLayoutOpportunitesByStartPoint(const NGLayoutOpportunity& lhs, |
// TOP and LEFT are the same -> Sort by width |
return rhs.size.inline_size < lhs.size.inline_size; |
} |
- |
-NGExclusion ToLeaderExclusion(const NGLogicalOffset& origin_point, |
- const NGLogicalOffset& leader_point) { |
- LayoutUnit inline_size = |
- leader_point.inline_offset - origin_point.inline_offset; |
- LayoutUnit block_size = leader_point.block_offset - origin_point.block_offset; |
- |
- NGExclusion leader_exclusion; |
- leader_exclusion.rect.offset = origin_point; |
- leader_exclusion.rect.size = {inline_size, block_size}; |
- return leader_exclusion; |
-} |
- |
} // namespace |
NGLayoutOpportunityIterator::NGLayoutOpportunityIterator( |
- const NGConstraintSpace* space, |
+ const NGExclusions* exclusions, |
const NGLogicalSize& available_size, |
- const WTF::Optional<NGLogicalOffset>& opt_offset, |
- const WTF::Optional<NGLogicalOffset>& opt_leader_point) |
- : constraint_space_(space), |
- offset_(opt_offset ? opt_offset.value() : space->BfcOffset()) { |
- // TODO(chrome-layout-team): Combine exclusions that shadow each other. |
- auto& exclusions = constraint_space_->Exclusions(); |
+ const NGLogicalOffset& offset) |
+ : offset_(offset) { |
+ DCHECK(exclusions); |
DCHECK(std::is_sorted(exclusions->storage.begin(), exclusions->storage.end(), |
&CompareNGExclusionsByTopAsc)) |
<< "Exclusions are expected to be sorted by TOP"; |
NGLayoutOpportunity initial_opportunity = |
- CreateLayoutOpportunityFromConstraintSpace(available_size, Offset()); |
+ CreateInitialOpportunity(available_size, Offset()); |
opportunity_tree_root_.reset( |
new NGLayoutOpportunityTreeNode(initial_opportunity)); |
- if (opt_leader_point) { |
- const NGExclusion leader_exclusion = |
- ToLeaderExclusion(Offset(), opt_leader_point.value()); |
- InsertExclusion(MutableOpportunityTreeRoot(), &leader_exclusion, |
- opportunities_); |
- } |
- |
for (const auto& exclusion : exclusions->storage) { |
InsertExclusion(MutableOpportunityTreeRoot(), exclusion.get(), |
opportunities_); |