yellow highlight = changes since 2022-09-23 up to 2023-04-05
Demos in this project
- Test whether ::highlight doesn’t obscure originating line-through decorations
- Test whether ::highlight styles inherit through the “tree” of styles for that highlight
- Test whether ::highlight color can split ligatures in complex scripts
- Test whether ::highlight can style highlighted content with ::first-letter styles
- Test whether ::target-text is repainted when styles change (magenta-to-lime)
- Test whether ::target-text is repainted when styles change (none-to-lime)
- Test whether ::target-text is repainted when styles change (lime-to-lime)
- Test whether ::selection is repainted when styles change (magenta-to-lime)
- Test whether ::selection is repainted when styles change (none-to-lime)
- Test whether ::selection is repainted when styles change (lime-to-lime)
- Multitool: classic text-decoration comparison
- Representative example for intent to prototype
- Supplementary example for intent to prototype
- Highlight painting reftest: opaque with shadows (basis of hp-001)
- Demonstration that Chromium does not allow non-highlight styling to split ligatures
- Notes from my initial investigation into the highlight processing model
- Multitool: highlight painting with shadows
- Highlight painting reftest: translucent with decorations (basis of hp-003)
- Highlight inheritance reftest: implicit and explicit defaulting
- Demonstration of ::selection decoration regression (bug 1209248)
- Test whether ::selection is repainted when styles change
- Test whether box-shadow offset is invariant under writing-mode
- Test whether color:initial suppresses UA default highlight colors for ::selection
- Test whether text-shadow:none doesn’t suppress UA default highlight colors for ::selection
- Test whether ::selection can combine its background-color with color inherited from ::first-letter
- Visualisation of current and expected highlight painting orders with decorations
- Highlight painting reftest: multiple highlight pseudos with decorations
- Demonstration that Firefox wavy decorations are highly resilient to going out of phase
- Test whether decorations extend into text-overflow:ellipsis or text-overflow:<string>
- Demonstration that Safari on macOS overrides alpha of opaque ::selection background-color
- Representative example for highlight inheritance
- Test whether UA shadow roots can still be styled under highlight inheritance
- Demonstration of potential compat issue for csswg-drafts#6774
- Test whether HighlightInheritance works when there are no matched properties for CL:3237158
- HighlightInheritance memory analysis test case (no selection, :root::selection rule) for bug 1024156
- HighlightInheritance memory analysis test case (no selection, *::selection rule) for bug 1024156
- HighlightInheritance memory analysis test case (main selected, :root::selection rule) for bug 1024156
- HighlightInheritance memory analysis test case (main selected, *::selection rule) for bug 1024156
- Minimal breaking test case for bug 1271782
- Animated visualisations of highlight painting: decorations, shadows, and Chromium
- Demonstration of interactions between highlights and decoration propagation for csswg-drafts#6829
- Demonstration of highlight overlays with overlapping active ranges for CL:3426940
- Demonstration of highlight overlays with overlapping active ranges for CL:3426940
- Minimal breaking test case for bug 1295271
- Demonstration of overlapping active ranges within a custom highlight for CL:3426940
- Test for highlight overlay painting under ‘white-space’ and ‘text-transform’ for CL:3426940
- Test whether ‘currentColor’ is inherited symbolically or as the resolved ‘color’ for CL:3506351
- Demonstration of highlight overlays with their own text decorations for CL:3538562
- Demonstration that Blink suppresses spelling markers that overlap suggestion markers for CL:3529115
- Demonstration of explicit defaulting for the ‘color’ property on highlights for csswg-drafts#6774
- Test for highlight inheritance with both universal and non-universal rules (basis of hc-005)
- HighlightInheritance memory analysis test case (active, universal, all:inherit) for bug 1024156
- Minimal breaking test case for bug 1321540
- HighlightInheritance memory analysis test case (active, universal, improved, no all:inherit) for bug 1024156
- HighlightInheritance memory analysis test case (active, universal, improved, yes all:inherit) for bug 1024156
- Demonstration of both explicit and implicit defaulting for the ‘color’ property on highlights
- Multitool: paint performance with many spelling errors or highlights for bug 1335762
- Demonstration of highlight decoration clipping bug with large ‘text-underline-offset’ for CL:3740046
- Multitool: paint performance for spelling/grammar/wavy decorations for CL:3763020
- Demonstration of ‘currentColor’ with a variety of properties in highlight pseudos for CL:3781986
- Demonstration of Chromium ‘text-decoration-style’ support when painting SVG (based on text-selection-deco-01-b.svg) for bug 1346281
- Demonstration of Chromium ‘text-decoration-style’ support when painting SVG (based on SvgTextWithFirstLineTextDecoration) for bug 1346281
- Demonstration of HighlightOverlayPainting buffer confusion bug for CL:3793072
- Demonstration of ‘text-emphasis-color’ in highlight pseudos for ???
- Demonstration of SVG ‘fill’ in ::selection for ???
- Demonstration of new ‘spelling-error’ decoration at various font sizes for bug 1257553
- Minimal breaking test case for CL:3899651
- Demonstration of spelling decoration scaling with browser zoom/dpi for CL:3856749
- Minimal breaking test case 2 for CL:3899651
- Minimal breaking test case for CL:3944075
- Demostration of changes to highlight decoration painting ranges for CL:4199618
- Supplementary demonstration for CL:4199618
- Supplementary demonstration 2 for CL:4199618
- Supplementary demonstration 3 for CL:4199618
css-pseudo tests
- highlight-cascade
001
(ref),
002
(ref),
005
(ref)
- highlight-styling
001
(ref),
002
(ref)
- highlight-paired-cascade
001
(ref),
002
(ref),
003
(ref),
004
(notref),
005
(ref),
006
(ref)
- highlight-painting
001
(ref),
002
(ref),
003
(ref),
004
(ref1,
ref2,
ref3)
-
selection-background-painting-order
(ref1,
ref2)
-
selection-originating-decoration-color
(ref)
-
selection-originating-strikethrough-order
(ref)
-
selection-originating-underline-order
(ref)
CSSWG/WPT patches
CSSWG/WPT issues
Chromium impl (1163437)
- bump CSSSpellingGrammarErrors from test to experimental (CL:3867154)
::spelling-error + ::grammar-error (1035708)
new text-decoration-line values (1163436)
- parser support (rego CL:3194336)
- [NFC] rename TextDecoration to TextD’nLine (rego CL:3275457)
- [NFC] remove mutable in TextDecorationInfo (rego CL:3284869)
- [NFC] add TextDecorationInfo::LineDataForLine (rego CL:3290417)
- [NFC] eliminate array in TextDecorationInfo (rego CL:3291658)
- paint support (rego CL:3297885)
- paint support reland (rego CL:3306472)
- bring spelling perf closer to existing spelling errors (CL:3763020)
- bring spelling perf closer, reland (CL:3782555)
- add internal colors for spelling/grammar defaults (CL:3780317)
- fix scaling of spelling/grammar with zoom and dpi (CL:3856749)
spec-compliant highlight painting (1147859)
HighlightOverlayPainting feature (1147859, 1179938)
- initial highlight overlay painting system (CL:3426940)
- new perf test for custom highlight painting (rego CL:3461502)
- baseline perf test for custom highlight painting (rego CL:3468175)
- new perf test for spelling highlight painting (rego CL:3477155)
fix for custom highlight perf test failures (rego CL:3489469)
- fix for custom highlight perf test failures (rego CL:3494097)
- new WPT tests for highlights with color:currentColor (rego CL:3497348)
- merge overlapping custom highlight ranges (CL:3529115)
- paint originating and highlight decorations (CL:3538562, 1274174, 1110393, 1275986)
- fix currentColor with overlapping highlights (1295264, rego CL:3560449)
- highlight overlay decorations reland (CL:3608432)
- fix AutoDarkMode misuse in overlay painter (CL:3616195)
- fix invalidation error in decoration clipping (CL:3616323)
- call MarkerRectForForeground only when needed (CL:3636880)
- bump HighlightOverlayPainting to stable (CL:3616170)
- stable HighlightOverlayPainting reland (CL:3640642)
- fix svg when ::selection adds decorations (CL:3646539 (1324709))
- clamp parts to text fragment being painted (CL:3720688 (1335762))
- clamp parts to fragment, reland (CL:3731467 (1335762))
- clamp parts to fragment, reland 2 (CL:3726437 (1335762))
- split underline and overline painting (CL:3740083, rego 1274174)
- optimise spelling-and-grammar-only paints (CL:3759693 (1335762))
- stable HighlightOverlayPainting reland (CL:3739907)
- optimise selection-only paints (CL:3780563 (1344791))
clip decorations to not-quite-infinite height (CL:3740046, rego 1274174)
- fix buffer confusion and clamping bugs (CL:3793072 (1346810, 1346809))
- merge above to M105 (CL:3807872 (1346810, 1346809))
- more optimisations for kOverlay case (CL:3804327)
fix ‘text-decoration-skip-ink’ (CL:3811082, 1350469)
- fix ‘text-decoration-skip-ink’ (CL:3820621, 1350469)
spec-compliant processing model (1024156)
- CSS highlight processing model (CL:2850068)
- diff highlights as kInherited (CL:3197850)
- fix textpath-selection-011 (1254608, CL:3205136)
- inheritance for ::highlight (ffiori CL:3237158)
- blink_perf tests for legacy content (CL:3281363)
- devtools support, chromium half (daniec CL:3461424)
- enable inheritance for custom highlights (lusanpad CL:3498908)
- devtools support, devtools half (daniec CL:3502175)
- fix gCS under HighlightInheritance (andruud 1309822, rego CL:3548659)
- fix highlight gCS for color:currentColor (1295264, rego CL:3563099)
- devtools support, devtools patch 2 (daniec CL:3563627)
- legacy optimisation for universal highlight rules (CL:3581515)
- skip recalc entirely if universal-only (CL:3640750)
- refactor more highlight inheritance checks (CL:3740890)
- fix implicit defaulting of ‘color’ at :root (CL:3763095, 1341621)
- fix ‘text-shadow’ with font-relative units (CL:3818830, 1350476)
- fix ‘currentColor’ for all other properties (CL:3781986, 1295264)
- skip root recalc if UA rules only (CL:3961068, 1358805)
- update expectations for unexpected passes (CL:4001600)
- compat stroke properties valid_for_highlight (CL:4060396)
- make HighlightData field readonly (ikilpatrick CL:4110777, 1377295)
- fix spelling/grammar feature checks (CL:4199621)
- fix perf regression in UA ::target-text rule (CL:4199622, 1408712, 1408764)
- bump HighlightInheritance to experimental (CL:4001367)
highlight pseudo interactions with :visited (rego 1314629)
- new WPT test for highlights and :visited (rego CL:3578532)
- fix :visited under HighlightInheritance (rego CL:3579151)
- fix WPT test for highlights and :visited (rego CL:3580511)
- fix HasAuthorHighlightColors in links (rego CL:3581029)
highlight text-decoration painting (1209248, rego 1274174)
wavy text-decoration painting (including 668042)
- [NFC] simplify TextDecorationInfo::SetPerLineData (rego CL:3234465)
- ensure decorations always cover full length (rego CL:3237072)
- fix clipping bug in wavy decorations (rego CL:3264203)
- fix WPT importer bug on rel=mismatch (rego webkit r285414)
- ensure decorations always cover full length (rego webkit r285567)
- fix crash in ComputeWavyPatternRect for small curves (CL:4065062, 1393709)
unify ::selection + markers (design doc)
unify wavy/dotted + squigglies (rego 1257553)
use counters
- kSelectionBackgroundColorInversion (rego CL:2948753)
- kTextShadow{,NotNone}InHighlightPseudo (rego CL:3000164)
other issues
- move draw looper usage to paint ops (danakj 671438)