From e14556959d6ffa19004294a87ff1f165420c3218 Mon Sep 17 00:00:00 2001 From: Oriol Brufau Date: Thu, 10 Jul 2025 21:46:21 +0200 Subject: [PATCH] layout: Lay out grid items with a consistent tentative block size (#37981) When laying out a grid item, the tentative block size that is used to determine the intrinsic inline sizes was different than the one used in the containing block for the contents. The latter is now used for both cases. Testing: A test is now passing. Signed-off-by: Oriol Brufau --- components/layout/taffy/layout.rs | 19 +++++++++---------- ...grid-item-inline-contribution-001.html.ini | 2 -- 2 files changed, 9 insertions(+), 12 deletions(-) delete mode 100644 tests/wpt/meta/css/css-grid/grid-items/grid-item-inline-contribution-001.html.ini diff --git a/components/layout/taffy/layout.rs b/components/layout/taffy/layout.rs index 7dc5c19bab8..167a29d3d5a 100644 --- a/components/layout/taffy/layout.rs +++ b/components/layout/taffy/layout.rs @@ -206,19 +206,21 @@ impl taffy::LayoutPartialTree for TaffyContainerContext<'_> { ..taffy::LayoutOutput::DEFAULT } } else { + // TODO: pass min- and max- size + let tentative_block_size = content_box_known_dimensions + .height + .map(Au::from_f32_px) + .map_or_else(SizeConstraint::default, SizeConstraint::Definite); + // Compute inline size let inline_size = content_box_known_dimensions.width.unwrap_or_else(|| { let constraint_space = ConstraintSpace { - // TODO: pass min- and max- size - block_size: SizeConstraint::new( - inputs.parent_size.height.map(Au::from_f32_px), - Au::zero(), - None, - ), + block_size: tentative_block_size, writing_mode, preferred_aspect_ratio, }; + // TODO: pass min- and max- size let result = independent_context .inline_content_sizes(self.layout_context, &constraint_space); let adjusted_available_space = inputs @@ -243,10 +245,7 @@ impl taffy::LayoutPartialTree for TaffyContainerContext<'_> { let content_box_size_override = ContainingBlock { size: ContainingBlockSize { inline: Au::from_f32_px(inline_size), - block: content_box_known_dimensions - .height - .map(Au::from_f32_px) - .map_or_else(SizeConstraint::default, SizeConstraint::Definite), + block: tentative_block_size, }, style, }; diff --git a/tests/wpt/meta/css/css-grid/grid-items/grid-item-inline-contribution-001.html.ini b/tests/wpt/meta/css/css-grid/grid-items/grid-item-inline-contribution-001.html.ini deleted file mode 100644 index 4e419a0a4ea..00000000000 --- a/tests/wpt/meta/css/css-grid/grid-items/grid-item-inline-contribution-001.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[grid-item-inline-contribution-001.html] - expected: FAIL