servo/tests/wpt/meta/css/CSS2/text
Martin Robinson 9781f1241a
layout: Move text decoration propagation to stacking context tree construction (#37069)
Text decorations have a special kind of propagation. Instead of
propating these during box tree construction, move propagation to
stacking context tree construction. This will allow for using a very
easy type of incremental layout when text decorations change. For
instance, when a link changes color during hovering over it, we can skip
all of box and fragment tree construction.

In addition, propagation works a bit better now and color and style
properly move down from their originating `Fragment`s.

This introduces three new failures, because now we are drawing the
text-decoration with the correct color in more places, which exposes an
issue we have with text-decorations not being drawn in relation to the
baseline (taking into account `vertical-align`).

Testing: There are tests for these changes.
Fixes #31736.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
2025-05-21 16:38:29 +00:00
..
bidi-flag-emoji.html.ini layout: Add initial support for bidirectional text (BiDi) (#33148) 2024-08-21 14:28:54 +00:00
bidi-span-003.html.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
letter-spacing-080.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
letter-spacing-applies-to-003.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
text-decoration-va-length-001.xht.ini layout: Move text decoration propagation to stacking context tree construction (#37069) 2025-05-21 16:38:29 +00:00
text-decoration-va-length-002.xht.ini layout: Move text decoration propagation to stacking context tree construction (#37069) 2025-05-21 16:38:29 +00:00
text-indent-012.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
text-indent-applies-to-003.xht.ini layout: Ensure empty list items are at least as tall as outside markers (#32152) 2024-04-29 16:58:14 +00:00
text-indent-intrinsic-001.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
text-indent-intrinsic-002.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
text-indent-intrinsic-003.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
text-indent-intrinsic-004.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
text-transform-bicameral-003.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
text-transform-bicameral-004.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
text-transform-bicameral-005.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
text-transform-bicameral-006.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
text-transform-bicameral-007.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
text-transform-bicameral-011.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
text-transform-bicameral-014.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
text-transform-bicameral-016.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
text-transform-cap-003.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
text-transform-unicase-001.xht.ini layout: Add initial support for text-transform (#31396) 2024-02-22 14:15:59 +00:00
white-space-001.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-002.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-003.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-005.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-006.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-applies-to-001.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-applies-to-002.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-applies-to-005.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-applies-to-006.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-applies-to-007.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-applies-to-008.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-applies-to-009.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-applies-to-010.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-applies-to-011.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-applies-to-012.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-applies-to-013.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-applies-to-014.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-applies-to-015.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-collapsing-bidi-001.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-mixed-001.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-normal-004.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-001.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-002.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-003.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-004.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-008.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-009.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-010.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-011.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-012.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-019.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-020.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-021.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-022.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-023.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-024.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-025.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-026.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-027.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-028.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-029.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-030.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-031.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-032.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-033.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-034.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-035.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-036.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-037.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-038.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-039.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-040.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-041.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-042.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-050.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-051.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-054.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
white-space-processing-055.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00
word-spacing-applies-to-003.xht.ini Rename metadata directories 2023-06-22 21:15:41 +02:00