Bug 183210

Summary: [FreeType] Remove FontPlatformData fallbacks
Product: WebKit Reporter: Carlos Garcia Campos <cgarcia>
Component: PlatformAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: bugs-noreply, ews-watchlist, mcatanzaro, mmaxfield, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=183155
https://bugs.webkit.org/show_bug.cgi?id=203544
Attachments:
Description Flags
Patch
none
Patch mcatanzaro: review+

Carlos Garcia Campos
Reported 2018-02-28 05:44:37 PST
They are only used by FontCache::systemFallbackForCharacters() where a direct FcFontMatch provides the same results in a more efficient way. This produces better results in 3 tests: fast/text/international/bidi-LDB-2-CSS.html fast/text/international/bidi-LDB-2-HTML.html fast/text/international/bidi-LDB-2-formatting-characters.html For some reason when using the fallbacks to get the system fallback font the non-bold font is selected for H1, while using FcFontMatch returns the right bold font. I can only reproduce this inside the testing environment, so maybe it's not actually a bug, but in the best case removing the fallbacks doesn't regress.
Attachments
Patch (11.49 KB, patch)
2018-03-01 03:37 PST, Carlos Garcia Campos
no flags
Patch (434.47 KB, patch)
2018-03-01 03:38 PST, Carlos Garcia Campos
mcatanzaro: review+
Carlos Garcia Campos
Comment 1 2018-02-28 09:14:49 PST
Ok, I know why. When using the fallbacks we use FcFontSort() to ge the list of patterns for all fonts in the system, but sorted by better matching the given pattern. But we are passing True for the trim parameter, which for some reason makes dejavu sans bold to not be included in the list. That's why the best match is not bold. Passing False to FcFontSort also makes the test use the bold font, but then, again, it's effectively the same than using FcFontMatch directly. Another interesting thing is that the pattern we use has the default font settings, so it's always using dejavu sans, I would expect in the tests to end up using liberation. And Liberation is probably the first one in the sorted set, but since out pattern has dejavu it ends up matching dejavu.
Carlos Garcia Campos
Comment 2 2018-03-01 03:37:27 PST
Carlos Garcia Campos
Comment 3 2018-03-01 03:38:52 PST
Created attachment 334805 [details] Patch Include binary diffs
Carlos Garcia Campos
Comment 4 2018-03-01 22:41:09 PST
Radar WebKit Bug Importer
Comment 5 2018-03-01 22:42:35 PST
Note You need to log in before you can comment on or make changes to this bug.