[wpt-sync] Sync PR 46968 - CSS highlight pseudos: fix ‘currentColor’ resolution and painting
Categories
(Core :: Layout: Generated Content, Lists, and Counters, task, P4)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox130 | --- | fixed |
People
(Reporter: wpt-sync, Unassigned)
References
(Blocks 1 open bug, )
Details
(Whiteboard: [wptsync downstream])
Sync web-platform-tests PR 46968 into mozilla-central (this bug is closed when the sync is complete).
PR: https://github.com/web-platform-tests/wpt/pull/46968
Details from upstream follow.
Delan Azabani <dazabani@igalia.com> wrote:
CSS highlight pseudos: fix ‘currentColor’ resolution and painting
When ‘color’ is set to ‘currentColor’ in highlight pseudos, the color
(and any other properties that use ‘currentColor’) needs to be taken
from the ‘currentColor’ of the next active highlight overlay below.Our impl was reworked significantly in CL:5332250 and CL:5368297, and
this patch improves on that by:• updating HighlightPaintingStyle and ResolveColorsFromPreviousLayer
to let ‘background-color’ participate in ‘currentColor’ resolution• fixing ResolveColorsFromPreviousLayer to always read ‘currentColor’,
not the property being resolved, from the previous layer• making PaintHighlightOverlays pass the correct ‘currentColor’ for
the purposes of painting ‘text-shadow’• extending PaintHighlightOverlays to paint ‘background-color’ and
‘text-shadow’ by as little as one part at a time, if affected by
‘currentColor’, while keeping parts merged where possible• removing a stray LineRelativeRect::Unite call that made ::selection
parts fail to clip their decorations to the partThis patch adds eleven new tests with overlapping highlights and a
variety of properties set to ‘currentColor’:• 001.html tests ‘color’ only (full ::selection)
• 001a.html tests ‘color’ only (partial ::selection)
• 002.html tests ‘color’ and ‘background-color’ (full ::selection)
• 002a.html tests ‘color’ and ‘background-color’ (partial ::selection)
• 002b.html tests ‘background-color’ only (full ::selection)
• 003.html tests ‘color’ and ‘text-decoration’ (full ::selection)
• 003a.html tests ‘color’ and ‘text-decoration’ (partial ::selection)
• 003b.html tests ‘text-decoration’ only (full ::selection)
• 004.html tests ‘color’ and ‘text-shadow’ (full ::selection)
• 004a.html tests ‘color’ and ‘text-shadow’ (partial ::selection)
• 004b.html tests ‘text-shadow’ only (full ::selection)Bug: 339298411
Change-Id: I2e42a0d655683e76daf507aee3e34085f5eb080b
Reviewed-on: https://chromium-review.googlesource.com/5644614
WPT-Export-Revision: 4dd5dc864625b42c152cc12a245fd6c4b13bab55
| Assignee | ||
Updated•1 year ago
|
| Assignee | ||
Comment 1•1 year ago
|
||
| Assignee | ||
Comment 2•1 year ago
|
||
CI Results
Ran 9 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI
Total 37 tests and 4 subtests
Status Summary
Firefox
OK : 2
PASS : 12
FAIL : 37[GitHub] 39[Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows11-32-2009-qr-debug, Gecko-windows11-32-2009-qr-opt, Gecko-windows11-64-2009-qr-debug, Gecko-windows11-64-2009-qr-opt]
TIMEOUT: 2
Chrome
OK : 2
PASS : 41
FAIL : 10
Safari
OK : 2
PASS : 11
FAIL : 40
Links
Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base
Details
Firefox-only Failures
- /css/css-pseudo/highlight-painting-003.html [wpt.fyi]:
FAILlinked bug:Bug 1887366 - /css/css-pseudo/highlight-painting-004.html [wpt.fyi]:
FAILlinked bug:Bug 1887366 - /css/css-pseudo/highlight-styling-003.tentative.html [wpt.fyi]:
FAILlinked bug:Bug 1887367 - /css/css-pseudo/selection-originating-decoration-color.html [wpt.fyi]:
FAILlinked bug:Bug 1727771
New Tests That Don't Pass
- /css/css-highlight-api/painting/custom-highlight-painting-019.html [wpt.fyi]:
FAIL(Chrome:FAIL, Safari:FAIL) - /css/css-pseudo/highlight-painting-001.html [wpt.fyi]:
FAIL(Chrome:PASS, Safari:FAIL) - /css/css-pseudo/highlight-painting-002.html [wpt.fyi]:
FAIL(Chrome:PASS, Safari:FAIL) - /css/css-pseudo/highlight-painting-003.html [wpt.fyi]:
FAIL(Chrome:PASS, Safari:PASS) - /css/css-pseudo/highlight-painting-004.html [wpt.fyi]:
FAIL(Chrome:PASS, Safari:PASS) - /css/css-pseudo/highlight-painting-currentcolor-001.html [wpt.fyi]:
FAIL(Chrome:PASS, Safari:FAIL) - /css/css-pseudo/highlight-painting-currentcolor-001a.html [wpt.fyi]:
FAIL(Chrome:PASS, Safari:FAIL) - /css/css-pseudo/highlight-painting-currentcolor-002.html [wpt.fyi]:
FAIL(Chrome:FAIL, Safari:FAIL) - /css/css-pseudo/highlight-painting-currentcolor-002a.html [wpt.fyi]:
FAIL(Chrome:FAIL, Safari:FAIL) - /css/css-pseudo/highlight-painting-currentcolor-003.html [wpt.fyi]:
FAIL(Chrome:FAIL, Safari:FAIL) - /css/css-pseudo/highlight-painting-currentcolor-003a.html [wpt.fyi]:
FAIL(Chrome:FAIL, Safari:FAIL) - /css/css-pseudo/highlight-painting-currentcolor-003b.html [wpt.fyi]:
FAIL(Chrome:PASS, Safari:FAIL) - /css/css-pseudo/highlight-painting-currentcolor-004.html [wpt.fyi]:
FAIL(Chrome:FAIL, Safari:FAIL) - /css/css-pseudo/highlight-painting-currentcolor-004a.html [wpt.fyi]:
FAIL(Chrome:FAIL, Safari:FAIL) - /css/css-pseudo/highlight-painting-shadows-horizontal.html [wpt.fyi]:
FAIL[Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview,Gecko-android-em-7.0-x86_64-qr-debug-geckoview,Gecko-android-em-7.0-x86_64-qr-opt-geckoview,Gecko-linux1804-64-qr-debug,Gecko-linux1804-64-qr-opt,Gecko-windows11-32-2009-qr-debug,Gecko-windows11-32-2009-qr-opt,Gecko-windows11-64-2009-qr-debug,Gecko-windows11-64-2009-qr-opt],TIMEOUT[GitHub] (Chrome:PASS, Safari:FAIL) - /css/css-pseudo/highlight-painting-shadows-vertical.html [wpt.fyi]:
FAIL[Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview,Gecko-android-em-7.0-x86_64-qr-debug-geckoview,Gecko-android-em-7.0-x86_64-qr-opt-geckoview,Gecko-linux1804-64-qr-debug,Gecko-linux1804-64-qr-opt,Gecko-windows11-32-2009-qr-debug,Gecko-windows11-32-2009-qr-opt,Gecko-windows11-64-2009-qr-debug,Gecko-windows11-64-2009-qr-opt],TIMEOUT[GitHub] (Chrome:FAIL, Safari:FAIL) - /css/css-pseudo/highlight-styling-001.html [wpt.fyi]:
FAIL(Chrome:PASS, Safari:FAIL) - /css/css-pseudo/highlight-styling-003.tentative.html [wpt.fyi]:
FAIL(Chrome:PASS, Safari:PASS) - /css/css-pseudo/selection-background-painting-order.html [wpt.fyi]:
FAIL(Chrome:PASS, Safari:FAIL) - /css/css-pseudo/selection-link-001.html [wpt.fyi]:
FAIL(Chrome:PASS, Safari:FAIL) - /css/css-pseudo/selection-link-002.html [wpt.fyi]:
FAIL(Chrome:PASS, Safari:FAIL) - /css/css-pseudo/selection-originating-decoration-color.html [wpt.fyi]:
FAIL(Chrome:PASS, Safari:PASS) - /css/css-pseudo/selection-overlay-and-grammar-001.html [wpt.fyi]:
FAIL(Chrome:FAIL, Safari:FAIL) - /css/css-pseudo/selection-overlay-and-spelling-001.html [wpt.fyi]:
FAIL(Chrome:FAIL, Safari:FAIL) - /css/css-pseudo/highlight-cascade/highlight-cascade-007.html [wpt.fyi]
- M::selection’s font-size is the same as in M:
FAIL(Chrome:PASS, Safari:FAIL) - M span::selection’s font-size is the same as in M span:
FAIL(Chrome:PASS, Safari:FAIL) - M::selection’s own text-shadow respects M’s font-size:
FAIL(Chrome:PASS, Safari:FAIL) - M span::selection’s inherited text-shadow respects M’s font-size:
FAIL(Chrome:PASS, Safari:FAIL) - W::selection’s line-height is the same as in W:
FAIL(Chrome:PASS, Safari:FAIL) - W span::selection’s line-height is the same as in W span:
FAIL(Chrome:PASS, Safari:FAIL) - W::selection’s own text-shadow respects W’s line-height:
FAIL(Chrome:PASS, Safari:FAIL) - W span::selection’s inherited text-shadow respects W’s line-height:
FAIL(Chrome:PASS, Safari:FAIL) - U::selection’s font-size is the same as in U:
FAIL(Chrome:PASS, Safari:FAIL) - U span::selection’s font-size is the same as in U span:
FAIL(Chrome:PASS, Safari:FAIL) - U::selection’s own text-decoration-thickness respects U’s font-size:
FAIL(Chrome:PASS, Safari:FAIL) - U span::selection’s own text-decoration-thickness respects U span’s font-size:
FAIL(Chrome:PASS, Safari:FAIL)
- M::selection’s font-size is the same as in M:
- /css/css-pseudo/highlight-cascade/highlight-cascade-009.html [wpt.fyi]
- body ::selection does not use its own custom property:
FAIL(Chrome:PASS, Safari:FAIL) - div::selection uses the originating element custom property:
FAIL(Chrome:PASS, Safari:FAIL) - div::selection does not use its own custom property:
FAIL(Chrome:PASS, Safari:FAIL)
- body ::selection does not use its own custom property:
Comment 4•1 year ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/a57f3476d94c
https://hg.mozilla.org/mozilla-central/rev/5cf26b697369
Description
•