diff --git a/Libraries/LibWeb/Layout/GridFormattingContext.cpp b/Libraries/LibWeb/Layout/GridFormattingContext.cpp index 6e5ff7120c..04180317db 100644 --- a/Libraries/LibWeb/Layout/GridFormattingContext.cpp +++ b/Libraries/LibWeb/Layout/GridFormattingContext.cpp @@ -369,6 +369,14 @@ void GridFormattingContext::for_each_subgrid_item_contributing_to_track_sizing(G subgrid_context.place_grid_items(); subgrid_context.initialize_grid_tracks_for_columns_and_rows(); subgrid_context.initialize_gap_tracks(*m_available_space); + + if (dimension == GridDimension::Row) { + subgrid_context.resolve_items_box_metrics(GridDimension::Column); + subgrid_context.run_track_sizing(GridDimension::Column); + subgrid_context.resolve_items_box_metrics(GridDimension::Column); + subgrid_context.resolve_grid_item_sizes(GridDimension::Column); + } + subgrid_context.resolve_items_box_metrics(dimension); subgrid_context.for_each_item_contributing_to_track_sizing(dimension, [&](GridItem const& item) { diff --git a/Tests/LibWeb/Layout/expected/grid/subgrid-row-contribution-uses-resolved-inline-size.txt b/Tests/LibWeb/Layout/expected/grid/subgrid-row-contribution-uses-resolved-inline-size.txt new file mode 100644 index 0000000000..dfe671af53 --- /dev/null +++ b/Tests/LibWeb/Layout/expected/grid/subgrid-row-contribution-uses-resolved-inline-size.txt @@ -0,0 +1,23 @@ +Viewport <#document> at [0,0] [0+0+0 800 0+0+0] [0+0+0 600 0+0+0] [BFC] children: not-inline + BlockContainer at [0,0] [0+0+0 800 0+0+0] [0+0+0 40 0+0+0] [BFC] children: not-inline + BlockContainer at [0,0] [0+0+0 800 0+0+0] [0+0+0 40 0+0+0] children: not-inline + Box at [0,0] [0+0+0 800 0+0+0] [0+0+0 40 0+0+0] [GFC] children: not-inline + Box at [0,0] [0+0+0 800 0+0+0] [0+0+0 40 0+0+0] [GFC] children: not-inline + ImageBox at [0,0] [0+0+0 800 0+0+0] [0+0+0 40 0+0+0] children: not-inline + (SVG-as-image isolated context) + Viewport <#document> at [0,0] [0+0+0 800 0+0+0] [0+0+0 40 0+0+0] [BFC] children: not-inline + SVGSVGBox at [0,0] [0+0+0 800 0+0+0] [0+0+0 40 0+0+0] [SVG] children: not-inline + SVGGeometryBox at [0,0] [0+0+0 800 0+0+0] [0+0+0 40 0+0+0] children: not-inline + BlockContainer <(anonymous)> at [0,40] [0+0+0 800 0+0+0] [0+0+0 0 0+0+0] children: inline + TextNode <#text> (not painted) + +ViewportPaintable (Viewport<#document>) [0,0 800x600] + PaintableWithLines (BlockContainer) [0,0 800x40] + PaintableWithLines (BlockContainer) [0,0 800x40] + PaintableBox (Box
.outer) [0,0 800x40] + PaintableBox (Box
.subgrid) [0,0 800x40] + ImagePaintable (ImageBox) [0,0 800x40] + PaintableWithLines (BlockContainer(anonymous)) [0,40 800x0] + +SC for Viewport<#document> [0,0 800x600] (z-index: auto) + SC for BlockContainer [0,0 800x40] (z-index: auto) diff --git a/Tests/LibWeb/Layout/input/grid/subgrid-row-contribution-uses-resolved-inline-size.html b/Tests/LibWeb/Layout/input/grid/subgrid-row-contribution-uses-resolved-inline-size.html new file mode 100644 index 0000000000..5d170c0a17 --- /dev/null +++ b/Tests/LibWeb/Layout/input/grid/subgrid-row-contribution-uses-resolved-inline-size.html @@ -0,0 +1,22 @@ + + +