New issue
Advanced search Search tips

Issue 1654 link

Starred by 8 users

Issue metadata

Status: Accepted
Area: Font
NextAction: ----
Priority: Medium
Type: Defect

issue chromium:55281

Sign in to add a comment

GDI FontHost does not control GDI fake bolding.

Project Member Reported by, Sep 18 2013

Issue description

When GDI chooses a font in a font family and a weight is specified on the logfont (FW_XXX) it appears to pick the closest matching font which does not exceed the requested weight (OS/2::usWeightClass). Since most fonts come in 400 (normal) and 700 (bold) a request for 600 normally resolves to the 400 version. The issue is that if the requested weight exceeds the actual weight by 200 or more, GDI applies its own fake bold. The larger issue with this is that GDI's fake bold is both wider and much heavier. In the case of 'Times New Roman', requesting bold (700) gives an actual bold, but requesting 600 gives 400 with fake bold which is both heavier and wider than the actual bold.

This is particularly bad on some very light fonts, since they may come in a single face marked as having a weight of 200. When such fonts are requested with normal (400) weight then GDI will fake bold them.

Since Skia can do its own fake bold and also allows the user to control when fake bold may be applicable, it would be best to control this behavior. We could, for instance, try to create the font with the requested weight, then attempt to determine the actual weight of the font and re-request with that weight.

Firefox currently only selects local fonts through the system enumeration, so it never asks for a weight which isn't present (unless it needs a bold and there is no bold, in which case it asks for 700 and allows the system to do fake bold). This is similar to having Blink use our new FontMgr. For webfonts Firefox uses 700 if bold is actually desired and lets the system figure out what to do, and uses 200 otherwise so that the lightest (and only) version of the font will be used without fake bold.

See also and .
Blocking: chromium:55281
Project Member

Comment 2 by, Sep 22 2014

Labels: Area-Font
Project Member

Comment 3 by, Dec 7 2015

Labels: Hotlist-Fixit

Sign in to add a comment