Consider merging https://chromium.googlesource.com/chromium/blink/+/2b5a2a00fa9f32da8e006d8b3eb5123c7472e782 Treat FontFallbackList as variable-pitch if the primary font does not cover entire unicode range. This fixes the issue that when @font-face has only one segment and that segment is fixed-pitch, characters outside that segment were treated incorrectly as fixed-pitch.
This would be: https://github.com/WebKit/WebKit/blob/8afe31a018b11741abdf9b4d5bb973d7c1d9ff05/Source/WebCore/platform/graphics/FontRanges.h#L70 https://github.com/WebKit/WebKit/blob/44aedc1a545cb3df9c2e3b1e4359355ba247e18d/Source/WebCore/platform/graphics/FontCascadeFonts.cpp#L128 If yes, let me know - I can try to create a pull request. Not super good but happy to learn and work with someone, who can mentor and coach. Thanks!
Although I don't think anything would be required because if I change the test case from patch to JSFiddle: Link - https://jsfiddle.net/jgxmopf0/show All browsers (Safari 15.6.1, Safari Technology Preview 151, Firefox Nightly 105 and Chrome Canary 106) show same this: @font-face should not affect width of characters outside of its unicode-range On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". PASS document.getElementById('test').offsetWidth is document.getElementById('sans').offsetWidth PASS successfullyParsed is true TEST COMPLETE ______ Appreciate if someone else can comment. Thanks!
Nice!