Repository navigation
fonts: Compute applied variations depending on originating @font-face rule - #40647
Conversation
2acbf6a to
441ed93
Compare
mrobinson
left a comment
There was a problem hiding this comment.
Sorry for the delay in reviewing. I really meant to get to this sooner. This looks good to me, apart from a few nit-picky things which I've outlined below. Great work!
| Stylesheet( | ||
| Box<FontFaceRuleInitiator>, | ||
| StylesheetWebFontLoadFinishedCallback, | ||
| ), |
There was a problem hiding this comment.
I think we shouldn't add an intermediate type here and just keep these separate for clarity:
| Stylesheet( | |
| Box<FontFaceRuleInitiator>, | |
| StylesheetWebFontLoadFinishedCallback, | |
| ), | |
| Stylesheet { | |
| stylesheet: DocumentStyleSheet, | |
| font_face_rule: FontFaceRule, | |
| callback: StylesheetWebFontLoadFinishedCallback, | |
| }, |
There was a problem hiding this comment.
That makes clippy unhappy because the two enum variants now have a great difference in size. We have to Box something. I'll try and make it a bit cleaner.
|
Thanks for the review ^^ |
441ed93 to
6de185a
Compare
6de185a to
80aabfe
Compare
|
80aabfe to
c761b39
Compare
c761b39 to
481f47a
Compare
|
🔨 Triggering try run (#19598489099) for Linux (Unit Tests, Build libservo, WPT, Bencher), Windows (Unit Tests, Build libservo), Android, OpenHarmony, Lint |
|
|
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
…rule Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
0188406 to
1df26eb
Compare
|
🔨 Triggering try run (#19599310713) for Linux (Unit Tests, Build libservo, WPT, Bencher), Windows (Unit Tests, Build libservo), Android, OpenHarmony, Lint |
|
| Branch | 40647/PR |
| Testbed | self-hosted-image:servo-ubuntu2204-bench |
⚠️ WARNING: No Threshold found!Without a Threshold, no Alerts will ever be generated.
- score (Measure (units))
- Throughput (operations / second (ops/s))
- File Size (bytes (B))
- Latency (nanoseconds (ns))
Click here to create a new Threshold
For more information, see the Threshold documentation.
To only post results if a Threshold exists, set the--ci-only-thresholdsflag.
Click to view all benchmark results
| Benchmark | File Size | megabytes (MB) | Latency | milliseconds (ms) | Throughput | operations / second (ops/s) | score | Measure (units) |
|---|---|---|---|---|---|---|---|---|
| linux-release | 📈 view plot | 204.19 MB | ||||||
| release/Dromaeo/dom | 📈 view plot | 739.58 ops/s | ||||||
| release/Dromaeo/dom-attr | 📈 view plot | 5,092.80 ops/s | ||||||
| release/Dromaeo/dom-attr/element_expando | 📈 view plot | 79,607.20 ops/s | ||||||
| release/Dromaeo/dom-attr/element_expando = value | 📈 view plot | 20,489.40 ops/s | ||||||
| release/Dromaeo/dom-attr/element_property | 📈 view plot | 21,585.00 ops/s | ||||||
| release/Dromaeo/dom-attr/element_property = value | 📈 view plot | 124.03 ops/s | ||||||
| release/Dromaeo/dom-attr/getAttribute | 📈 view plot | 43,476.40 ops/s | ||||||
| release/Dromaeo/dom-attr/setAttribute | 📈 view plot | 91.90 ops/s | ||||||
| release/Dromaeo/dom-modify | 📈 view plot | 94.63 ops/s | ||||||
| release/Dromaeo/dom-modify/appendChild | 📈 view plot | 47.73 ops/s | ||||||
| release/Dromaeo/dom-modify/cloneNode | 📈 view plot | 46.42 ops/s | ||||||
| release/Dromaeo/dom-modify/createElement | 📈 view plot | 519.91 ops/s | ||||||
| release/Dromaeo/dom-modify/createTextNode | 📈 view plot | 346.53 ops/s | ||||||
| release/Dromaeo/dom-modify/innerHTML | 📈 view plot | 13.51 ops/s | ||||||
| release/Dromaeo/dom-modify/insertBefore | 📈 view plot | 133.15 ops/s | ||||||
| release/Dromaeo/dom-query | 📈 view plot | 1,356.97 ops/s | ||||||
| release/Dromaeo/dom-query/getElementById | 📈 view plot | 536.28 ops/s | ||||||
| release/Dromaeo/dom-query/getElementById (not in document) | 📈 view plot | 651.88 ops/s | ||||||
| release/Dromaeo/dom-query/getElementsByName | 📈 view plot | 0.15 ops/s | ||||||
| release/Dromaeo/dom-query/getElementsByName (not in document) | 📈 view plot | 0.24 ops/s | ||||||
| release/Dromaeo/dom-query/getElementsByTagName (not in document) | 📈 view plot | 78,086.00 ops/s | ||||||
| release/Dromaeo/dom-query/getElementsByTagName(*) | 📈 view plot | 63,754.00 ops/s | ||||||
| release/Dromaeo/dom-query/getElementsByTagName(a) | 📈 view plot | 63,242.40 ops/s | ||||||
| release/Dromaeo/dom-query/getElementsByTagName(div) | 📈 view plot | 63,510.40 ops/s | ||||||
| release/Dromaeo/dom-query/getElementsByTagName(p) | 📈 view plot | 63,339.20 ops/s | ||||||
| release/Dromaeo/dom-traverse | 📈 view plot | 288.74 ops/s | ||||||
| release/Dromaeo/dom-traverse/childNodes | 📈 view plot | 216.98 ops/s | ||||||
| release/Dromaeo/dom-traverse/firstChild | 📈 view plot | 282.66 ops/s | ||||||
| release/Dromaeo/dom-traverse/lastChild | 📈 view plot | 132.39 ops/s | ||||||
| release/Dromaeo/dom-traverse/nextSibling | 📈 view plot | 493.20 ops/s | ||||||
| release/Dromaeo/dom-traverse/previousSibling | 📈 view plot | 501.10 ops/s | ||||||
| release/Speedometer/Charts-observable-plot | 📈 view plot | 103.39 ms | ||||||
| release/Speedometer/Charts-observable-plot/Dotted | 📈 view plot | 23.36 ms | ||||||
| release/Speedometer/Charts-observable-plot/Dotted/Async | 📈 view plot | 4.81 ms | ||||||
| release/Speedometer/Charts-observable-plot/Dotted/Sync | 📈 view plot | 18.55 ms | ||||||
| release/Speedometer/Charts-observable-plot/Stacked by 20 | 📈 view plot | 44.87 ms | ||||||
| release/Speedometer/Charts-observable-plot/Stacked by 20/Async | 📈 view plot | 8.52 ms | ||||||
| release/Speedometer/Charts-observable-plot/Stacked by 20/Sync | 📈 view plot | 36.35 ms | ||||||
| release/Speedometer/Charts-observable-plot/Stacked by 6 | 📈 view plot | 35.17 ms | ||||||
| release/Speedometer/Charts-observable-plot/Stacked by 6/Async | 📈 view plot | 4.00 ms | ||||||
| release/Speedometer/Charts-observable-plot/Stacked by 6/Sync | 📈 view plot | 31.17 ms | ||||||
| release/Speedometer/Geomean | 📈 view plot | 132.24 ms | ||||||
| release/Speedometer/Iteration-0-Total | 📈 view plot | 248.26 ms | ||||||
| release/Speedometer/Iteration-1-Total | 📈 view plot | 229.27 ms | ||||||
| release/Speedometer/Iteration-2-Total | 📈 view plot | 232.51 ms | ||||||
| release/Speedometer/Iteration-3-Total | 📈 view plot | 229.95 ms | ||||||
| release/Speedometer/Iteration-4-Total | 📈 view plot | 228.62 ms | ||||||
| release/Speedometer/Iteration-5-Total | 📈 view plot | 233.47 ms | ||||||
| release/Speedometer/Iteration-6-Total | 📈 view plot | 232.17 ms | ||||||
| release/Speedometer/Iteration-7-Total | 📈 view plot | 229.15 ms | ||||||
| release/Speedometer/Iteration-8-Total | 📈 view plot | 228.75 ms | ||||||
| release/Speedometer/Iteration-9-Total | 📈 view plot | 231.09 ms | ||||||
| release/Speedometer/Score | 📈 view plot | 7.57 units | ||||||
| release/Speedometer/TodoMVC-Angular | 📈 view plot | 101.84 ms | ||||||
| release/Speedometer/TodoMVC-Angular/Adding100Items | 📈 view plot | 61.18 ms | ||||||
| release/Speedometer/TodoMVC-Angular/Adding100Items/Async | 📈 view plot | 5.77 ms | ||||||
| release/Speedometer/TodoMVC-Angular/Adding100Items/Sync | 📈 view plot | 55.41 ms | ||||||
| release/Speedometer/TodoMVC-Angular/CompletingAllItems | 📈 view plot | 22.16 ms | ||||||
| release/Speedometer/TodoMVC-Angular/CompletingAllItems/Async | 📈 view plot | 5.91 ms | ||||||
| release/Speedometer/TodoMVC-Angular/CompletingAllItems/Sync | 📈 view plot | 16.25 ms | ||||||
| release/Speedometer/TodoMVC-Angular/DeletingAllItems | 📈 view plot | 18.50 ms | ||||||
| release/Speedometer/TodoMVC-Angular/DeletingAllItems/Async | 📈 view plot | 2.14 ms | ||||||
| release/Speedometer/TodoMVC-Angular/DeletingAllItems/Sync | 📈 view plot | 16.36 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES5 | 📈 view plot | 558.13 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES5/Adding100Items | 📈 view plot | 458.74 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES5/Adding100Items/Async | 📈 view plot | 16.34 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES5/Adding100Items/Sync | 📈 view plot | 442.40 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES5/CompletingAllItems | 📈 view plot | 60.34 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES5/CompletingAllItems/Async | 📈 view plot | 6.87 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES5/CompletingAllItems/Sync | 📈 view plot | 53.46 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES5/DeletingAllItems | 📈 view plot | 39.05 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES5/DeletingAllItems/Async | 📈 view plot | 2.22 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES5/DeletingAllItems/Sync | 📈 view plot | 36.84 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES6-Webpack | 📈 view plot | 792.88 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/Adding100Items | 📈 view plot | 651.01 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/Adding100Items/Async | 📈 view plot | 8.13 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/Adding100Items/Sync | 📈 view plot | 642.87 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/CompletingAllItems | 📈 view plot | 86.27 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/CompletingAllItems/Async | 📈 view plot | 6.57 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/CompletingAllItems/Sync | 📈 view plot | 79.70 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/DeletingAllItems | 📈 view plot | 55.61 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/DeletingAllItems/Async | 📈 view plot | 2.19 ms | ||||||
| release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/DeletingAllItems/Sync | 📈 view plot | 53.42 ms | ||||||
| release/Speedometer/TodoMVC-Preact | 📈 view plot | 40.88 ms | ||||||
| release/Speedometer/TodoMVC-Preact/Adding100Items | 📈 view plot | 22.53 ms | ||||||
| release/Speedometer/TodoMVC-Preact/Adding100Items/Async | 📈 view plot | 19.11 ms | ||||||
| release/Speedometer/TodoMVC-Preact/Adding100Items/Sync | 📈 view plot | 3.42 ms | ||||||
| release/Speedometer/TodoMVC-Preact/CompletingAllItems | 📈 view plot | 12.69 ms | ||||||
| release/Speedometer/TodoMVC-Preact/CompletingAllItems/Async | 📈 view plot | 8.64 ms | ||||||
| release/Speedometer/TodoMVC-Preact/CompletingAllItems/Sync | 📈 view plot | 4.05 ms | ||||||
| release/Speedometer/TodoMVC-Preact/DeletingAllItems | 📈 view plot | 5.65 ms | ||||||
| release/Speedometer/TodoMVC-Preact/DeletingAllItems/Async | 📈 view plot | 3.98 ms | ||||||
| release/Speedometer/TodoMVC-Preact/DeletingAllItems/Sync | 📈 view plot | 1.67 ms | ||||||
| release/Speedometer/TodoMVC-React | 📈 view plot | 102.45 ms | ||||||
| release/Speedometer/TodoMVC-React-Redux | 📈 view plot | 117.90 ms | ||||||
| release/Speedometer/TodoMVC-React-Redux/Adding100Items | 📈 view plot | 54.50 ms | ||||||
| release/Speedometer/TodoMVC-React-Redux/Adding100Items/Async | 📈 view plot | 8.28 ms | ||||||
| release/Speedometer/TodoMVC-React-Redux/Adding100Items/Sync | 📈 view plot | 46.23 ms | ||||||
| release/Speedometer/TodoMVC-React-Redux/CompletingAllItems | 📈 view plot | 40.47 ms | ||||||
| release/Speedometer/TodoMVC-React-Redux/CompletingAllItems/Async | 📈 view plot | 7.38 ms | ||||||
| release/Speedometer/TodoMVC-React-Redux/CompletingAllItems/Sync | 📈 view plot | 33.09 ms | ||||||
| release/Speedometer/TodoMVC-React-Redux/DeletingAllItems | 📈 view plot | 22.92 ms | ||||||
| release/Speedometer/TodoMVC-React-Redux/DeletingAllItems/Async | 📈 view plot | 2.15 ms | ||||||
| release/Speedometer/TodoMVC-React-Redux/DeletingAllItems/Sync | 📈 view plot | 20.77 ms | ||||||
| release/Speedometer/TodoMVC-React/Adding100Items | 📈 view plot | 51.87 ms | ||||||
| release/Speedometer/TodoMVC-React/Adding100Items/Async | 📈 view plot | 7.11 ms | ||||||
| release/Speedometer/TodoMVC-React/Adding100Items/Sync | 📈 view plot | 44.76 ms | ||||||
| release/Speedometer/TodoMVC-React/CompletingAllItems | 📈 view plot | 31.50 ms | ||||||
| release/Speedometer/TodoMVC-React/CompletingAllItems/Async | 📈 view plot | 7.42 ms | ||||||
| release/Speedometer/TodoMVC-React/CompletingAllItems/Sync | 📈 view plot | 24.08 ms | ||||||
| release/Speedometer/TodoMVC-React/DeletingAllItems | 📈 view plot | 19.08 ms | ||||||
| release/Speedometer/TodoMVC-React/DeletingAllItems/Async | 📈 view plot | 2.24 ms | ||||||
| release/Speedometer/TodoMVC-React/DeletingAllItems/Sync | 📈 view plot | 16.84 ms | ||||||
| release/Speedometer/TodoMVC-Svelte | 📈 view plot | 41.13 ms | ||||||
| release/Speedometer/TodoMVC-Svelte/Adding100Items | 📈 view plot | 23.65 ms | ||||||
| release/Speedometer/TodoMVC-Svelte/Adding100Items/Async | 📈 view plot | 18.51 ms | ||||||
| release/Speedometer/TodoMVC-Svelte/Adding100Items/Sync | 📈 view plot | 5.15 ms | ||||||
| release/Speedometer/TodoMVC-Svelte/CompletingAllItems | 📈 view plot | 11.15 ms | ||||||
| release/Speedometer/TodoMVC-Svelte/CompletingAllItems/Async | 📈 view plot | 7.24 ms | ||||||
| release/Speedometer/TodoMVC-Svelte/CompletingAllItems/Sync | 📈 view plot | 3.91 ms | ||||||
| release/Speedometer/TodoMVC-Svelte/DeletingAllItems | 📈 view plot | 6.33 ms | ||||||
| release/Speedometer/TodoMVC-Svelte/DeletingAllItems/Async | 📈 view plot | 4.43 ms | ||||||
| release/Speedometer/TodoMVC-Svelte/DeletingAllItems/Sync | 📈 view plot | 1.90 ms |
|
Test results for linux-wpt from try job (#19599310713): Flaky unexpected result (29)
Stable unexpected results that are known to be intermittent (27)
Stable unexpected results (1)
|
|
|
…e` rule (#40647) This change gives the font selection code access to the data from the `@font-face` rule that defined the font - and uses it to apply `font-variation-settings` inside `@font-face` rules. Testing: We don't run wpt with `layout_variable_fonts_enabled=true` yet. I've attached a test case that is fixed by this PR. Part of #37236 <details><summary>Testcase</summary> ```html <!DOCTYPE html> <html lang="en"><head> <style> h1, h2, h3, h4, h5, h6 { font-family: 'Montserrat', sans-serif; } </style> <style> @font-face { font-family: 'Montserrat'; font-display: swap; font-variation-settings: "wght" 500; src: url(https://fonts.gstatic.com/s/montserrat/v30/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format('woff2'); } </style> <h2>The hackfest</h2> </body></html> ``` </details> --------- Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
This change gives the font selection code access to the data from the
@font-facerule that defined the font - and uses it to applyfont-variation-settingsinside@font-facerules.Testing: We don't run wpt with
layout_variable_fonts_enabled=trueyet. I've attached a test case that is fixed by this PR.Part of #37236
Testcase