Chromites and Blinkers,
- will start a per web font countdown (3 seconds) as soon as the download starts
- during the countdown, the text is rendered with the fallback font but is not visible (unchanged)
- when the countdown runs off, Chrome/Blink will reveal the text rendered with the fallback font if the given web font takes more than 3 seconds to download.
- when the web font becomes available, Chrome/Blink will re-render the text with the web font.
This is largely similar to Firefox's behavior. The main difference I'm aware of is the fact that Firefox has extra logic to extend the countdown if the web font is almost there. We'll keep an eye on feedback and metrics to decide if we need a less stringent countdown.
We looked at our web font metrics and found out that the 3s value currently affects about 4% of web font downloads. For reference, here are some completion ratios for different values of the timeout:
- 3.5s = 96.6% (Android), 96.8% (Desktop)
- 3s = 95.8% (Android), 96.2% (Desktop)
- 2s = 92.5% (Android), 93.9% (Desktop)
- 1s = 81.2% (Android), 87.5% (Desktop)
In short, we believe that the 3s value is a reasonable choice because not only the completion ratio is reasonable on both mobile and desktop but it's also consistent with Firefox's timeout. However, as the performance of web fonts improves, we'll regularly revisit this topic and we'll keep you informed of any changes.
Finally, let me note that you can achieve your own web font fallback behavior by taking advantage of the
CSS Font Loading API which also ships in M35.
Best,
--
Kenji BAHEUXProduct Manager - Chrome
Google Japan