Skip to content

Upgrade Parley to main - #1403

Open
nicoburns wants to merge 2 commits into
mainfrom
nico/parley-main-upgrade
Open

nicoburns wants to merge 2 commits into
mainfrom
nico/parley-main-upgrade

Conversation

@nicoburns

@nicoburns nicoburns commented Nov 4, 2026 •

Copy link
Copy Markdown
Member

Moves Blitz from Parley 0.12 on crates.io to linebender/parley main (pinned to fe8ea13), and bumps skrifa to 0.49 to match Parley.

Breaking changes adapted to:

A separate second commit stops hit testing from finding line box content outside the padding box on an axis where overflow isn't visible. Since linebender/parley#902 an inline box is a U+FFFC cluster in the line, which made elementFromPoint-negative-z-index-inline-overflow-clip hit the container.

WPT losses, all from upstream Parley behaviour changes:

WPT results

Subtests: 42 newly passing, 19 newly failing (net +23).

Subtest changes by area (28 areas)
+ css                    | +30 (+42 / -12) | 59.68% -> 59.70% ( +0.01%) | 119481 -> 119511 / 200188
+   CSS2                 |  +4 (+12 /  -8) | 80.30% -> 80.34% ( +0.05%) |   7136 ->   7140 /   8887
+     bidi-text          |  +4 ( +4 /  -0) | 49.52% -> 53.33% ( +3.81%) |     52 ->     56 /    105
+     floats-clear       |  +1 ( +1 /  -0) | 84.11% -> 84.50% ( +0.39%) |    217 ->    218 /    258
+     linebox            |  +2 ( +2 /  -0) | 82.19% -> 82.42% ( +0.23%) |    706 ->    708 /    859
-     lists              |  -6 ( +0 /  -6) | 39.10% -> 35.26% ( -3.85%) |     61 ->     55 /    156
-     normal-flow        |  -1 ( +0 /  -1) | 84.96% -> 84.85% ( -0.11%) |    791 ->    790 /    931
!     visudet            |  +0 ( +1 /  -1) | 54.76% -> 54.76% ( +0.00%) |     23 ->     23 /     42
+   css-flexbox          | +13 (+13 /  -0) | 89.09% -> 89.31% ( +0.22%) |   5208 ->   5221 /   5846
+   css-fonts            |  +5 ( +6 /  -1) | 74.55% -> 74.61% ( +0.06%) |   6647 ->   6652 /   8916
+     matching           |  +1 ( +1 /  -0) | 20.00% -> 30.00% (+10.00%) |      2 ->      3 /     10
+     variations         |  +2 ( +3 /  -1) | 80.53% -> 81.07% ( +0.53%) |    302 ->    304 /    375
+   css-grid             |  +2 ( +2 /  -0) | 77.95% -> 77.97% ( +0.01%) |  13755 ->  13757 /  17645
+     alignment          |  +2 ( +2 /  -0) | 83.70% -> 83.80% ( +0.10%) |   1638 ->   1640 /   1957
+       self-baseline    |  +1 ( +1 /  -0) | 27.78% -> 29.63% ( +1.85%) |     15 ->     16 /     54
+   css-overflow         |  +2 ( +2 /  -0) | 38.31% -> 38.43% ( +0.11%) |    682 ->    684 /   1780
+   css-shapes           |  +2 ( +2 /  -0) |  9.05% ->  9.07% ( +0.03%) |    703 ->    705 /   7770
+     shape-outside      |  +2 ( +2 /  -0) |  8.41% ->  8.45% ( +0.04%) |    422 ->    424 /   5019
+       supported-shapes |  +2 ( +2 /  -0) |  6.92% ->  8.46% ( +1.54%) |      9 ->     11 /    130
+         circle         |  +1 ( +1 /  -0) |  5.00% ->  7.50% ( +2.50%) |      2 ->      3 /     40
+         ellipse        |  +1 ( +1 /  -0) |  5.13% ->  7.69% ( +2.56%) |      2 ->      3 /     39
-   css-text             |  -1 ( +2 /  -3) | 73.26% -> 73.24% ( -0.02%) |   4731 ->   4730 /   6458
!     line-breaking      |  +0 ( +2 /  -2) | 64.79% -> 64.79% ( +0.00%) |     92 ->     92 /    142
-     white-space        |  -1 ( +0 /  -1) | 77.96% -> 77.84% ( -0.12%) |    672 ->    671 /    862
+   css-writing-modes    |  +2 ( +2 /  -0) | 46.69% -> 46.82% ( +0.13%) |    713 ->    715 /   1527
+   cssom-view           |  +1 ( +1 /  -0) | 64.26% -> 64.31% ( +0.04%) |   1480 ->   1481 /   2303
- svg                    |  -7 ( +0 /  -7) | 38.01% -> 37.96% ( -0.04%) |   6018 ->   6011 /  15834
-   styling              |  -7 ( +0 /  -7) | 33.48% -> 31.97% ( -1.50%) |    156 ->    149 /    466
Full diff (61 changed tests)
+ FAIL => PASS   [1/1]  +1  css/CSS2/bidi-005.xht
+ FAIL => PASS   [1/1]  +1  css/CSS2/bidi-006.xht
+ FAIL => PASS   [1/1]  +1  css/CSS2/bidi-007.xht
+ FAIL => PASS   [1/1]  +1  css/CSS2/bidi-010.xht
+ FAIL => PASS   [1/1]  +1  css/CSS2/bidi-text/bidi-005b.xht
+ FAIL => PASS   [1/1]  +1  css/CSS2/bidi-text/bidi-006b.xht
+ FAIL => PASS   [1/1]  +1  css/CSS2/bidi-text/bidi-007b.xht
+ FAIL => PASS   [1/1]  +1  css/CSS2/bidi-text/bidi-010b.xht
+ FAIL => PASS   [1/1]  +1  css/CSS2/floats-clear/floats-031.xht
+ FAIL => FAIL  [9/13]  +1  css/CSS2/linebox/inline-negative-margin-001.html
+ FAIL => PASS   [1/1]  +1  css/CSS2/linebox/vertical-align-122.xht
- PASS => FAIL   [0/1]  -1  css/CSS2/lists/list-style-applies-to-012.xht
- PASS => FAIL   [0/1]  -1  css/CSS2/lists/list-style-applies-to-014.xht
- PASS => FAIL   [0/1]  -1  css/CSS2/lists/list-style-image-applies-to-012.xht
- PASS => FAIL   [0/1]  -1  css/CSS2/lists/list-style-image-applies-to-014.xht
- PASS => FAIL   [0/1]  -1  css/CSS2/lists/list-style-type-applies-to-012.xht
- PASS => FAIL   [0/1]  -1  css/CSS2/lists/list-style-type-applies-to-014.xht
- PASS => FAIL   [0/1]  -1  css/CSS2/normal-flow/inline-table-width-002b.xht
- PASS => FAIL   [0/1]  -1  css/CSS2/visudet/content-height-004.html
+ FAIL => PASS   [1/1]  +1  css/CSS2/visudet/line-height-204.html
+ FAIL => PASS   [1/1]  +1  css/css-flexbox/baseline-synthesis-002.html
+ FAIL => PASS   [1/1]  +1  css/css-flexbox/flexbox-justify-content-horiz-006.xhtml
+ FAIL => PASS   [1/1]  +1  css/css-flexbox/flexbox_flex-0-0-N-shrink.html
+ FAIL => PASS   [1/1]  +1  css/css-flexbox/flexbox_flex-0-0-Npercent-shrink.html
+ FAIL => PASS   [1/1]  +1  css/css-flexbox/flexbox_flex-0-0-auto-shrink.html
+ FAIL => PASS   [1/1]  +1  css/css-flexbox/flexbox_flex-1-0-N-shrink.html
+ FAIL => PASS   [1/1]  +1  css/css-flexbox/flexbox_flex-1-0-Npercent-shrink.html
+ FAIL => PASS   [1/1]  +1  css/css-flexbox/flexbox_flex-1-0-auto-shrink.html
+ FAIL => PASS   [1/1]  +1  css/css-flexbox/flexbox_flex-N-0-N-shrink.html
+ FAIL => PASS   [1/1]  +1  css/css-flexbox/flexbox_flex-N-0-Npercent-shrink.html
+ FAIL => PASS   [1/1]  +1  css/css-flexbox/flexbox_flex-N-0-auto-shrink.html
+ FAIL => PASS   [1/1]  +1  css/css-flexbox/flexbox_flex-basis.html
+ FAIL => PASS   [1/1]  +1  css/css-flexbox/scrollbars-no-margin.html
+ FAIL => PASS   [1/1]  +1  css/css-fonts/font-face-style-auto-variable.html
+ FAIL => PASS   [1/1]  +1  css/css-fonts/font-face-style-default-variable.html
+ FAIL => PASS   [1/1]  +1  css/css-fonts/matching/range-descriptor-reversed.html
+ FAIL => PASS   [1/1]  +1  css/css-fonts/variations/font-slant-1.html
- PASS => FAIL   [0/1]  -1  css/css-fonts/variations/font-slant-2b.html
+ FAIL => PASS   [1/1]  +1  css/css-fonts/variations/slnt-backslant-variable.html
+ FAIL => PASS   [1/1]  +1  css/css-fonts/variations/slnt-variable.html
+ FAIL => FAIL   [8/9]  +1  css/css-grid/alignment/grid-align-baseline.html
+ FAIL => PASS   [1/1]  +1  css/css-grid/alignment/self-baseline/grid-self-baseline-001.html
+ FAIL => PASS   [1/1]  +1  css/css-overflow/text-overflow-009.html
+ FAIL => PASS   [1/1]  +1  css/css-overflow/text-overflow-016.html
+ FAIL => PASS   [1/1]  +1  css/css-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-047.html
+ FAIL => PASS   [1/1]  +1  css/css-shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-045.html
- PASS => FAIL   [0/1]  -1  css/css-text/line-breaking/line-breaking-030.html
- PASS => FAIL   [0/1]  -1  css/css-text/line-breaking/line-breaking-032.html
+ FAIL => PASS   [1/1]  +1  css/css-text/line-breaking/line-breaking-atomic-nowrap-002.html
+ FAIL => PASS   [1/1]  +1  css/css-text/line-breaking/line-breaking-replaced-005.html
- PASS => FAIL   [0/1]  -1  css/css-text/white-space/tab-stop-with-float-001.html?class=rtl
+ FAIL => PASS   [1/1]  +1  css/css-writing-modes/clearance-calculations-vrl-008.xht
+ FAIL => PASS   [1/1]  +1  css/css-writing-modes/float-contiguous-vrl-006.xht
+ FAIL => FAIL   [6/8]  +1  css/cssom-view/elementFromPoint-negative-z-index-inline.html
- PASS => FAIL   [0/1]  -1  svg/styling/svg-filter-render-cross-origin-frame-in-cross-origin-frame.tentative.sub.https.html
- PASS => FAIL   [0/1]  -1  svg/styling/svg-filter-render-cross-origin-frame-in-same-origin-frame.tentative.https.html
- PASS => FAIL   [0/1]  -1  svg/styling/svg-filter-render-same-origin-frame-in-cross-origin-frame.tentative.sub.https.html
- PASS => FAIL   [0/1]  -1  svg/styling/svg-filter-render-same-origin-frame-reload-as-sandbox.tentative.https.html
- PASS => FAIL   [0/1]  -1  svg/styling/svg-filter-render-sandbox-frame.tentative.https.html
- PASS => FAIL   [0/1]  -1  svg/styling/svg-filter-render-swap.tentative.https.html
- PASS => FAIL   [0/1]  -1  svg/styling/svg-filter-render-web-plugin.tentative.https.html

Generated by the WPT workflow.

Link to Devin session: https://dioxus.staging.devinenterprise.com/sessions/3495a07b81e84e958badc4170c5717af
Open in Devin Desktop: https://dioxus.staging.devinenterprise.com/desktop/session/3495a07b81e84e958badc4170c5717af?variant=devin-insiders

@staging-devin-ai-integration

Copy link
Copy Markdown
Contributor

I'll fix CI failures and address comments from users with write access that start with 'Devin'.

  • Disable automatic comment, CI, and merge conflict monitoring

@staging-devin-ai-integration
staging-devin-ai-integration Bot force-pushed the nico/parley-main-upgrade branch 3 times, most recently from a35b3ed to 18338c9 Compare November 4, 2026 19:45
…s it

Since linebender/parley#902 an in-flow inline box is a U+FFFC cluster in the line,
so hit testing an inline root could find a cluster where only the (clipped) box
overflowed. Fixes css/cssom-view/elementFromPoint-negative-z-index-inline-overflow-clip.html.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant