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