Hi, 

I'd like to give an update on the progress of rolling out the Fontations 
Rust-based font stack:

In Chrome Beta M131 we're now rolling out the combination of steps 2, 3, 
and 4 of the previous announcement to users at a 50% rate and monitoring 
feedback. This phase will inform whether we proceed with releasing on 
Chrome M131 stable.

This means, in case the flag is on for a Chrome installation: 
Fontations is enabled for web fonts on Linux, Android and ChromeOS, Windows 
and Mac. On Linux, Android and ChromeOS it handles all web fonts, on 
Windows and Mac it handles only those web fonts that are not supported by 
the system rasterizer.

Two issues with CFF fonts (372584292 <https://crbug.com/372584292>, 
374181980 <https://crbug.com/374181980>) were promptly addressed and are 
fixed in the latest beta 131.0.6778.14. 

If you are interested in helping with testing, use the M131 Beta and enable 
chrome://flags/#enable-fontations-backend or enable experimental web 
platform features.

Thanks to Chad Brokaw and the Google Fonts team for delivering the 
autohinting functionality and help with ad-hoc fixes at the beginning of 
the Beta phase, which enabled this step. 

If this step succeeds, next we plan to enable system fonts through 
Fontations for Android and Linux. System fonts on Mac and Windows will 
remain being rendered through system rasterisers.

Dominik

On Friday, June 7, 2024 at 5:37:30 PM UTC+3 Dominik Röttsches wrote:

Hi, 

The Blink Style & Fonts, Google Fonts and Skia teams have 
been collaborating on Fontations, a secure set of font processing libraries 
written in Rust. We integrate Fontations into Chrome and use it in a new 
Skia font backend meant as a secure replacement for our usage of FreeType. 
The Fontations integration is available for testing in Chromium Canary 
behind chrome://flags/#enable-fontations-backend .

Our goals with Fontations are to improve Chrome’s security posture in font 
processing, enable unsandboxing of font related tasks, as well as to 
develop a high-performance, modern, extendable, and unified font stack for 
Chrome, Android, and Google Fonts' production tools. 

*Tentative Rollout Plan*

I wanted to provide an update on our tentative rollout plan in Blink and 
Chrome:

Rollout steps:


   1. *Initial limited rollout, less used formats on all platforms (within 
   1-2 weeks): *First we will enable Fontations for web fonts of font 
   formats which account to a small portion of overall web font instantiations 
   in content: These are COLRv0, COLRv1, CFF2, CBDT/CBLC, and SBIX fonts. We 
   will enable the new backend only for situations where we currently use 
   FreeType (as opposed to the system rasterisers which we use for COLRv0 and 
   SBIX in some situations). These are situations which do not rely on 
   TrueType autohinting (which is work-in-progress atm)
   2. *Expand to common formats on Linux*: After monitoring for regressions 
   and completing TrueType autohinting, we'll expand Fontations usage to 
   variable and static monochromatic TrueType web fonts on Linux.
   3. *Extend to Android:  *Extend step 2 to Android.
   4. *Extend to Windows and Mac *in situations where we use FreeType for 
   variable fonts if the system rasteriser does not support it.

After that, in subsequent steps we plan to roll out the Fontations font 
stack for system fonts in content, for Android, Linux and ChromeOS and for 
the Chrome UI. I will go into more details on that in an update at a later 
stage.

*User Impact*

>From a user’s perspective, things stay the same almost 100%: none or only 
very minor changes in text rendering are expected. In some cases in fact 
rendering is expected to improve, for example for vector color fonts. We 
will only switch to Fontations in situations where we used FreeType before. 
At this stage, we do not intend to switch rendering from system rasterisers 
(CoreText, DirectWrite) where they are currently used.
  


*Further references:*

Chromestatus: https://chromestatus.com/feature/5717358869217280
Intro presentation: Crafting new Fontations for Chrome, ATypI 2024 Brisbane 
<https://docs.google.com/presentation/d/1QthJGabv4ep2V89Q1rjUrLCfJpSJOt8ahLciouvbn9A/edit?usp=sharing>
Fontations on GitHub: https://github.com/googlefonts/fontations/
Chromium meta bug: https://issues.chromium.org/issues/40045339
Skia meta bug: https://issues.skia.org/issues/40045335


*Thank you! *

A big thanks to all collaborators and supporters:
Google Fonts: Rod Sheeter, Chad Brokaw, Colin Rofls, Cosimo Lupo
Skia: Heather Miller, Brian Osman, Ben Wagner, Julia Lavrova, Kaylee Lubick
Chrome Security: Adrian Taylor, Dana Jansens, Łukasz Anforowicz, 
Blink Rendering: Chris Harrelson, Philip Jägenstedt

Please get in touch if you any questions,

Dominik

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/e77dabc9-1703-462d-bea3-2bcb068375ebn%40chromium.org.

Reply via email to