summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.cc')
-rw-r--r--chromium/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.cc34
1 files changed, 20 insertions, 14 deletions
diff --git a/chromium/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.cc b/chromium/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.cc
index 352e63de43e..0e8779b6f93 100644
--- a/chromium/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.cc
+++ b/chromium/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.cc
@@ -753,20 +753,26 @@ void NGOutOfFlowLayoutPart::LayoutCandidates(
SaveStaticPositionOnPaintLayer(layout_box, candidate.static_position);
if (IsContainingBlockForCandidate(candidate) &&
(!only_layout || layout_box == only_layout)) {
- if (has_block_fragmentation_ &&
- !container_builder_->IsInitialColumnBalancingPass()) {
- // As an optimization, only populate legacy positioned objects lists
- // when inside a fragmentation context root, since otherwise we can
- // just look at the children in the fragment tree.
- if (layout_box != only_layout)
- container_builder_->InsertLegacyPositionedObject(candidate.Node());
- NGLogicalOOFNodeForFragmentation fragmentainer_descendant(candidate);
- container_builder_->AdjustFragmentainerDescendant(
- fragmentainer_descendant);
- container_builder_->AdjustFixedposContainingBlockForInnerMulticols();
- container_builder_->AddOutOfFlowFragmentainerDescendant(
- fragmentainer_descendant);
- continue;
+ if (has_block_fragmentation_) {
+ container_builder_->SetHasOutOfFlowInFragmentainerSubtree(true);
+ if (!container_builder_->IsInitialColumnBalancingPass()) {
+ // As an optimization, only populate legacy positioned objects lists
+ // when inside a fragmentation context root, since otherwise we can
+ // just look at the children in the fragment tree.
+ if (layout_box != only_layout) {
+ container_builder_->InsertLegacyPositionedObject(
+ candidate.Node());
+ }
+ NGLogicalOOFNodeForFragmentation fragmentainer_descendant(
+ candidate);
+ container_builder_->AdjustFragmentainerDescendant(
+ fragmentainer_descendant);
+ container_builder_
+ ->AdjustFixedposContainingBlockForInnerMulticols();
+ container_builder_->AddOutOfFlowFragmentainerDescendant(
+ fragmentainer_descendant);
+ continue;
+ }
}
NodeInfo node_info = SetupNodeInfo(candidate);
NodeToLayout node_to_layout = {node_info,