Closed Bug 2045948 Opened 3 days ago Closed 19 hours ago

[wpt-sync] Sync PR 60481 - [Gap decorations]: Preserve grid rule pattern across fragmentation

Categories

(Core :: CSS Parsing and Computation, task, P4)

task

Tracking

()

RESOLVED FIXED
153 Branch
Tracking Status
firefox153 --- fixed

People

(Reporter: wpt-sync, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

Sync web-platform-tests PR 60481 into mozilla-central (this bug is closed when the sync is complete).

PR: https://github.com/web-platform-tests/wpt/pull/60481
Details from upstream follow.

Sam Davis Omekara (from Dev Box) <samomekarajr@microsoft.com> wrote:

[Gap decorations]: Preserve grid rule pattern across fragmentation

Per CSSWG resolution 1, a row gap that gets suppressed at a
fragmentainer boundary still consumes one slot from the gap-decoration
pattern. The meta principle from the resolution is that gap decoration
assignment should be consistent in both fragmented and unfragmented
contexts.

Previously, the paint code constructed GapDataListIterator with the
per-fragment gap count and walked it using fragment-relative indices.
That made the pattern restart at slot 0 in every fragment and skipped
slots consumed by suppressed gaps, producing different results in the
fragmented and unfragmented case.

This CL uses two states already computed and stored during layout for
the updated paint code for grid:
* The unfragmented GapGeometry total row gaps used to construct the iterator
* first_unprocessed_row_gap_idx used to map each
fragment-relative row-gap index to its slot in the unfragmented
pattern.

Tests have been added to exercise this change. The flex logic will be
implemented in a subsequent change.

Bug: 505387221
Change-Id: Ie4131e65c43e0eabb25a767d74146f114433234e

Reviewed-on: https://chromium-review.googlesource.com/7899276
WPT-Export-Revision: dc4a48fbd36e130da1359079ff3c5cd5293ed168

Component: web-platform-tests → CSS Parsing and Computation
Product: Testing → Core

CI Results

Ran 11 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI

Total 55 tests

Status Summary

Firefox

PASS: 2[Gecko-linux2204-64-wayland-debug, Gecko-linux2204-64-wayland-opt, Gecko-windows11-32-25h2-debug, Gecko-windows11-32-25h2-opt] 11[Gecko-android-em-14-x86_64-debug-geckoview, Gecko-android-em-14-x86_64-lite-opt-geckoview, Gecko-android-em-14-x86_64-opt-geckoview, Gecko-linux2404-64-debug, Gecko-linux2404-64-opt, Gecko-windows11-64-25h2-debug, Gecko-windows11-64-25h2-opt]
FAIL: 4[GitHub] 44[Gecko-android-em-14-x86_64-debug-geckoview, Gecko-android-em-14-x86_64-lite-opt-geckoview, Gecko-android-em-14-x86_64-opt-geckoview, Gecko-linux2404-64-debug, Gecko-linux2404-64-opt, Gecko-windows11-64-25h2-debug, Gecko-windows11-64-25h2-opt]

Chrome

FAIL: 4

Safari

FAIL: 4

Links

Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base

Details

New Tests That Don't Pass

Status: NEW → RESOLVED
Closed: 19 hours ago
Resolution: --- → FIXED
Target Milestone: --- → 153 Branch
You need to log in before you can comment on or make changes to this bug.