Title: [290572] trunk
Revision
290572
Author
[email protected]
Date
2022-02-27 14:19:14 -0800 (Sun, 27 Feb 2022)

Log Message

Handle reverse flow direction when converting iterator coords for a subgrid
https://bugs.webkit.org/show_bug.cgi?id=236955

Reviewed by Dean Jackson.

Source/WebCore:

When recursing into a subgrid via createForSubgrid, we convert the iterator's
position into coordinates relative to the subgrid. This handles the case where
the subgrid has a reverse flow direction (RTL vs LTR) and swaps the position
to be relative to the opposite edge.

Marks existing WPT grid-gap-007.html as passing

* rendering/Grid.cpp:
(WebCore::GridIterator::createForSubgrid):

LayoutTests:

* TestExpectations:

Marked grid-gap-007.html as now passing, and added bug annotations to
remaining subgrid failures.

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (290571 => 290572)


--- trunk/LayoutTests/ChangeLog	2022-02-27 22:15:50 UTC (rev 290571)
+++ trunk/LayoutTests/ChangeLog	2022-02-27 22:19:14 UTC (rev 290572)
@@ -1,3 +1,15 @@
+2022-02-27  Matt Woodrow  <[email protected]>
+
+        Handle reverse flow direction when converting iterator coords for a subgrid
+        https://bugs.webkit.org/show_bug.cgi?id=236955
+
+        Reviewed by Dean Jackson.
+
+        * TestExpectations:
+
+        Marked grid-gap-007.html as now passing, and added bug annotations to
+        remaining subgrid failures.
+
 2022-02-27  Philippe Normand  <[email protected]>
 
         [GStreamer] media/video-src-blob-perf.html timing out likely since update to GStreamer 1.20

Modified: trunk/LayoutTests/TestExpectations (290571 => 290572)


--- trunk/LayoutTests/TestExpectations	2022-02-27 22:15:50 UTC (rev 290571)
+++ trunk/LayoutTests/TestExpectations	2022-02-27 22:19:14 UTC (rev 290572)
@@ -1394,19 +1394,18 @@
 imported/w3c/web-platform-tests/css/css-grid/masonry/tentative/masonry-subgrid-001.html [ ImageOnlyFailure ]
 imported/w3c/web-platform-tests/css/css-grid/masonry/tentative/masonry-subgrid-002.html [ ImageOnlyFailure ]
 
-imported/w3c/web-platform-tests/css/css-grid/subgrid/auto-track-sizing-001.html [ ImageOnlyFailure ]
-imported/w3c/web-platform-tests/css/css-grid/subgrid/baseline-001.html [ ImageOnlyFailure ]
-imported/w3c/web-platform-tests/css/css-grid/subgrid/grid-gap-003.html [ ImageOnlyFailure ]
-imported/w3c/web-platform-tests/css/css-grid/subgrid/grid-gap-007.html [ ImageOnlyFailure ]
-imported/w3c/web-platform-tests/css/css-grid/subgrid/line-names-007.html [ ImageOnlyFailure ]
-imported/w3c/web-platform-tests/css/css-grid/subgrid/orthogonal-writing-mode-002.html [ ImageOnlyFailure ]
-imported/w3c/web-platform-tests/css/css-grid/subgrid/orthogonal-writing-mode-003.html [ ImageOnlyFailure ]
-imported/w3c/web-platform-tests/css/css-grid/subgrid/orthogonal-writing-mode-004.html [ ImageOnlyFailure ]
-imported/w3c/web-platform-tests/css/css-grid/subgrid/repeat-auto-fill-003.html [ ImageOnlyFailure ]
-imported/w3c/web-platform-tests/css/css-grid/subgrid/subgrid-mbp-overflow-001.html [ ImageOnlyFailure ]
-imported/w3c/web-platform-tests/css/css-grid/subgrid/subgrid-mbp-overflow-002.html [ ImageOnlyFailure ]
-imported/w3c/web-platform-tests/css/css-grid/subgrid/subgrid-mbp-overflow-003.html [ ImageOnlyFailure ]
-imported/w3c/web-platform-tests/css/css-grid/subgrid/subgrid-mbp-overflow-004.html [ ImageOnlyFailure ]
+webkit.org/b/236951 imported/w3c/web-platform-tests/css/css-grid/subgrid/auto-track-sizing-001.html [ ImageOnlyFailure ]
+webkit.org/b/236959 imported/w3c/web-platform-tests/css/css-grid/subgrid/baseline-001.html [ ImageOnlyFailure ]
+webkit.org/b/236956 imported/w3c/web-platform-tests/css/css-grid/subgrid/grid-gap-003.html [ ImageOnlyFailure ]
+webkit.org/b/236957 imported/w3c/web-platform-tests/css/css-grid/subgrid/line-names-007.html [ ImageOnlyFailure ]
+webkit.org/b/236953 imported/w3c/web-platform-tests/css/css-grid/subgrid/orthogonal-writing-mode-002.html [ ImageOnlyFailure ]
+webkit.org/b/236954 imported/w3c/web-platform-tests/css/css-grid/subgrid/orthogonal-writing-mode-003.html [ ImageOnlyFailure ]
+webkit.org/b/236953 imported/w3c/web-platform-tests/css/css-grid/subgrid/orthogonal-writing-mode-004.html [ ImageOnlyFailure ]
+webkit.org/b/236958 imported/w3c/web-platform-tests/css/css-grid/subgrid/repeat-auto-fill-003.html [ ImageOnlyFailure ]
+webkit.org/b/236949 imported/w3c/web-platform-tests/css/css-grid/subgrid/subgrid-mbp-overflow-001.html [ ImageOnlyFailure ]
+webkit.org/b/236949 imported/w3c/web-platform-tests/css/css-grid/subgrid/subgrid-mbp-overflow-002.html [ ImageOnlyFailure ]
+webkit.org/b/236949 imported/w3c/web-platform-tests/css/css-grid/subgrid/subgrid-mbp-overflow-003.html [ ImageOnlyFailure ]
+webkit.org/b/236949 imported/w3c/web-platform-tests/css/css-grid/subgrid/subgrid-mbp-overflow-004.html [ ImageOnlyFailure ]
 
 webkit.org/b/149890 fast/css-grid-layout/grid-shorthands-style-format.html [ Failure ]
 webkit.org/b/191508 fast/css-grid-layout/crash-large-positions.html [ Skip ]

Modified: trunk/Source/WebCore/ChangeLog (290571 => 290572)


--- trunk/Source/WebCore/ChangeLog	2022-02-27 22:15:50 UTC (rev 290571)
+++ trunk/Source/WebCore/ChangeLog	2022-02-27 22:19:14 UTC (rev 290572)
@@ -1,3 +1,20 @@
+2022-02-27  Matt Woodrow  <[email protected]>
+
+        Handle reverse flow direction when converting iterator coords for a subgrid
+        https://bugs.webkit.org/show_bug.cgi?id=236955
+
+        Reviewed by Dean Jackson.
+
+        When recursing into a subgrid via createForSubgrid, we convert the iterator's
+        position into coordinates relative to the subgrid. This handles the case where
+        the subgrid has a reverse flow direction (RTL vs LTR) and swaps the position
+        to be relative to the opposite edge.
+
+        Marks existing WPT grid-gap-007.html as passing
+
+        * rendering/Grid.cpp:
+        (WebCore::GridIterator::createForSubgrid):
+
 2022-02-27  Antoine Quint  <[email protected]>
 
         [svg] flood-opacity should be clamped to the [0,1] range

Modified: trunk/Source/WebCore/rendering/Grid.cpp (290571 => 290572)


--- trunk/Source/WebCore/rendering/Grid.cpp	2022-02-27 22:15:50 UTC (rev 290571)
+++ trunk/Source/WebCore/rendering/Grid.cpp	2022-02-27 22:19:14 UTC (rev 290572)
@@ -280,6 +280,11 @@
     GridTrackSizingDirection innerDirection = GridLayoutFunctions::flowAwareDirectionForChild(*downcast<RenderGrid>(subgrid.parent()), subgrid, outer.direction());
     ASSERT(subgrid.isSubgrid(innerDirection));
 
+    if (GridLayoutFunctions::isSubgridReversedDirection(*downcast<RenderGrid>(subgrid.parent()), outer.direction(), subgrid)) {
+        unsigned fixedMax = subgrid.currentGrid().numTracks(innerDirection);
+        fixedIndex = fixedMax - fixedIndex - 1;
+    }
+
     return GridIterator(subgrid.currentGrid(), innerDirection, fixedIndex);
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to