aboutsummaryrefslogtreecommitdiffstats
path: root/components/layout_2020/flow/root.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/layout_2020/flow/root.rs')
-rw-r--r--components/layout_2020/flow/root.rs24
1 files changed, 9 insertions, 15 deletions
diff --git a/components/layout_2020/flow/root.rs b/components/layout_2020/flow/root.rs
index 15dc6d404b6..24dea984e62 100644
--- a/components/layout_2020/flow/root.rs
+++ b/components/layout_2020/flow/root.rs
@@ -12,12 +12,12 @@ use crate::formatting_contexts::IndependentFormattingContext;
use crate::fragments::Fragment;
use crate::geom;
use crate::geom::flow_relative::Vec2;
-use crate::positioned::{AbsolutelyPositionedBox, AbsolutelyPositionedFragment};
+use crate::positioned::AbsolutelyPositionedBox;
+use crate::positioned::PositioningContext;
use crate::replaced::ReplacedContent;
use crate::sizing::ContentSizesRequest;
use crate::style_ext::{Display, DisplayGeneratingBox, DisplayInside};
use crate::DefiniteContainingBlock;
-use rayon::iter::{IntoParallelRefIterator, ParallelExtend, ParallelIterator};
use script_layout_interface::wrapper_traits::LayoutNode;
use servo_arc::Arc;
use style::properties::ComputedValues;
@@ -110,25 +110,19 @@ impl BoxTreeRoot {
};
let dummy_tree_rank = 0;
- let mut absolutely_positioned_fragments = vec![];
+ let mut positioning_context = PositioningContext::new_for_initial_containing_block();
let mut independent_layout = self.0.layout(
layout_context,
+ &mut positioning_context,
&(&initial_containing_block).into(),
dummy_tree_rank,
- &mut absolutely_positioned_fragments,
);
- let map =
- |a: &AbsolutelyPositionedFragment| a.layout(layout_context, &initial_containing_block);
- if layout_context.use_rayon {
- independent_layout
- .fragments
- .par_extend(absolutely_positioned_fragments.par_iter().map(map))
- } else {
- independent_layout
- .fragments
- .extend(absolutely_positioned_fragments.iter().map(map))
- }
+ positioning_context.layout_in_initial_containing_block(
+ layout_context,
+ &initial_containing_block,
+ &mut independent_layout.fragments,
+ );
FragmentTreeRoot(independent_layout.fragments)
}