Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a0e66562a406842faba3ce1ef40acc671cf0a1f7
      
https://github.com/WebKit/WebKit/commit/a0e66562a406842faba3ce1ef40acc671cf0a1f7
  Author: Sammy Gill <[email protected]>
  Date:   2026-06-12 (Fri, 12 Jun 2026)

  Changed paths:
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-001-expected.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-001.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-002-expected.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-002.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-003-expected.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-003.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-004-expected.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-004.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-005-expected.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-005.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-006-expected.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-006.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-007-expected.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-007.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-008-expected.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-008.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-009-expected.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-009.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-010-expected.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-010.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-011-expected.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-011.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-012-expected.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-012.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-013-expected.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-013.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-014-expected.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-014.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-015-expected.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-015.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-016-expected.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-016.html
    M Source/WebCore/layout/integration/grid/LayoutIntegrationGridLayout.cpp
    M Source/WebCore/layout/integration/grid/LayoutIntegrationGridLayout.h
    M Source/WebCore/rendering/RenderGrid.h

  Log Message:
  -----------
  [GFC] Layout out-of-flow descendants in the modern grid path
https://bugs.webkit.org/show_bug.cgi?id=316727
rdar://179129558

Reviewed by Alan Baradlay.

One of the things that we currently bail on when deciding whether or not
we can run layout via GFC is if any of the children of the grid are out
of flow. If we find such a box then we decide that we cannot run GFC.
One scenario we currently fail to take into consideration is when some
out of flow descendant ends up having the grid as the containing block.
Unfortunately, this results in that box not running layout which means a
crash in debug builds due to a dirty render tree at the end of layout
and blank content in release.

To fix this we can call back into the old layoutOutOfFlowBoxes API on
RenderGrid during integration. In order to properly due so we need to
make sure the renderer has its columns and rows positions set correctly
so that it can map any positions the OOF box may have to the correct
location in the grid.

Also fix the grid container height not being set for the definite block-axis 
case in
updateFormattingContextRootRenderer, which caused positioned descendants to 
compute
incorrect containing block sizes since they relied on the renderer's
height. We already did this in the case where the grid had an
indefinite/intrinsic height but did not when it was fixed.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-001-expected.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-001.html:
 Added.
One explicit row and column. Descendant has auto row and column
placement with fixed width and height.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-002-expected.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-002.html:
 Added.
Same as 001 but the descendant is a bit more nested.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-003-expected.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-003.html:
 Added.
One explicit row and column. Descendant has auto row and column
placement along with percent width and height.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-004-expected.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-004.html:
 Added.
Two explicit rows and columns. Descendant has auto row and column
placement along with auto width and height. It also has 0 for the top
and left insets and 100px for the right and bottom insets.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-005-expected.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-005.html:
 Added.
Same as 004 but 0 for all the insets.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-006-expected.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-006.html:
 Added.
Two explicit columns and one explicit row. Descendant has auto row
placement with column placement specified as span 2 / span 3. According
to the spec this should be treated as auto. Also has percent width and
height.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-007-expected.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-007.html:
 Added.
Two explicit columns and one explicit row. Descendant has auto row
placement along with column placement that spans outside the grid which
should be treated as auto according to the spec. Also has percent width
and height.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-008-expected.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-008.html:
 Added.
One explicit column and row along with padding on the grid. Descendant
has auto row and column placement with percent width and height.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-009-expected.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-009.html:
 Added.
One explicit column and row along with padding on the grid. Descendant
has explicit row and column placement with percent width and height.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-010-expected.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-010.html:
 Added.
Two explicit columns and rows along with padding on the grid. Descendant
has explicit placement in the first row and column along with percent
width and height.

Tests 011-013 exercise similar to the above but with auto height on the
grid.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-011-expected.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-011.html:
 Added.
One fixed column and row. Descendant has auto rows and columns along
with percent width and height.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-012-expected.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-012.html:
 Added.
One fixed column and row and padding on the grid. Desendant has auto
row and columns with percent width and height.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-013-expected.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-013.html:
 Added.
Two fixed rows and columns along with padding. Descendant has explicit
row and column position in the first row and column. Also has percent
width and height.

Tests 014-016 are similar to above but are testing items that span
multiple rows/columns.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-014.html:
 Added.
Two fixed row and columns. Descendant is placed in two columns and one
row.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-015.html:
 Added.
Two fixed rows and columns. Descendant is placed in one column and two
rows.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-descendant-containing-block-016.html:
 Added.
Two fixed rows and columns. Descendant is placed in both rows and
columns.

Canonical link: https://commits.webkit.org/315156@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to