Bug 125835

Summary: @font-face should not affect width of characters outside of its unicode-range
Product: WebKit Reporter: Ryosuke Niwa <rniwa>
Component: TextAssignee: Nobody <webkit-unassigned>
Status: RESOLVED CONFIGURATION CHANGED    
Severity: Normal CC: ahmad.saleem792, ap, bfulgham, enrica, koivisto, mitz, mmaxfield, rniwa, simon.fraser, zalan
Priority: P2 Keywords: BlinkMergeCandidate
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   

Description Ryosuke Niwa 2013-12-16 22:16:39 PST
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.
Comment 1 Ahmad Saleem 2022-08-21 09:43:29 PDT
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!
Comment 2 Ahmad Saleem 2022-08-21 09:48:07 PDT
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!
Comment 3 Alexey Proskuryakov 2022-08-21 13:35:19 PDT
Nice!