Skip to content

Instantly share code, notes, and snippets.

@pandasauce
Last active September 22, 2020 14:22
Show Gist options
  • Save pandasauce/398c080f9054f05bee6e1c465416b53b to your computer and use it in GitHub Desktop.
Save pandasauce/398c080f9054f05bee6e1c465416b53b to your computer and use it in GitHub Desktop.
Chrome 75.0.3770.142 font rendering fix
# 75.0.3770.142
0x04b58615 7626 => 9090 0x04b58615
0x04b5861d 31c0488945 => 9090909090 0x04b5861d
Due to a beautiful bug in Chromium, it turns out you don't need this binary patch and can **enable** subpixel positioning by asking Chrome **to disable it**: https://bugs.chromium.org/p/chromium/issues/detail?id=824153#c39
Needless to say, I won't be maintaining this gist any longer.
@AnwarShah
Copy link

Hi, If I want to make it force hintslight instead of hintfull, what do I need to do?

@pandasauce
Copy link
Author

@AnwarShah, reverse engineer the binary and come up with your own binary patch :)

They changed enough things in v74 to make the binary very different from v72 and v73, so my full hinting patch will take a few nights of reversing too.

@pandasauce
Copy link
Author

pandasauce commented May 1, 2019

This will no longer force full hinting, it just removes the line that would otherwise disable hinting for subpixel positioning. The reason is I switched to using full hinting by default system-wide.

@AnwarShah
Copy link

So, I can use this to use slight hinting system-wide and force chrome to use hinting for subpixel positioning, right?

@pandasauce
Copy link
Author

pandasauce commented May 2, 2019

@AnwarShah, subpixel positioning is different from hinting. They are two different concepts. This binary patch forces params.subpixel_positioning = true similar to how this patch will do it once merged. As of v74, it does not force any hinting settings.

@pandasauce
Copy link
Author

Due to a beautiful bug in Chromium, it turns out you don't need this binary patch and can enable subpixel positioning by asking Chrome to disable it: https://bugs.chromium.org/p/chromium/issues/detail?id=824153#c39

Needless to say, I won't be maintaining this gist any longer.

@AnwarShah
Copy link

Due to a beautiful bug in Chromium, it turns out you don't need this binary patch and can enable subpixel positioning by asking Chrome to disable it: https://bugs.chromium.org/p/chromium/issues/detail?id=824153#c39

Needless to say, I won't be maintaining this gist any longer.

User need to re-compile though, right? Is there any flag ?

@pandasauce
Copy link
Author

@AnwarShah, no. Just add --disable-font-subpixel-positioning as a command line argument when launching Chrome. It will do the exact opposite to what it says and enable subpixel positioning unconditionally.

@AnwarShah
Copy link

@pandasauce That's awesome actually. I'm immediately seeing much improvement on brave browser which is chromium based. The texts are much sharper. Thanks!

@pandasauce
Copy link
Author

Glad you like it. Something that is implied, but maybe I should point it out: this trick applies to all Chromium-based desktop applications too, i.e. Spotify and Slack.

@AnwarShah
Copy link

Yeah. I knew it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment