I don't get the point of this. I really don't. While far from perfect, web fonts have largely been a solved problem for a while now, so why are Google reinventing this wheel? This seems to happen all the time with the web; people taking old ideas and reinventing them again and again, in yet more bloated ways, breaking things for millions.
</grumpy rant>
Just for reference, I was running ArchLinux with the Infinality font bungles.
I didn't have the infinality fonts. I wonder what the bug was.
Sorry about that. The missing character detection can be a little finicky. Can I get a browser version / OS?
We'll take a look.
* Firefox 47
* Debian unstable
* freetype 2.6.3
* fontconfig 2.11I use infinality-bundle fontconfig preset.
Chromium 49.0.2623.87 built on Debian stretch/sid, running on Debian stretch/sid (64-bit)
font-family: Something
Instead of: font-family: 'Something'
FF has given me this issue for years. font-family: "Jaldi script=latin rev=2"
However, they are replacing what they think is a missing glyph with an image. For example, if I type the letter "r" while keeping the DOM inspector open, I see the text node containing the letter for a moment before it is replaced with an image element: <img class="content-editable-missing" data-missing-character="r" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==">
This is most likely a javascript bug doing a false negative failed progressive enhancement.My browser, Edge, is simply blocked on Google Fonts.
It seems like Google is more and more dependent on automated testing for all if it's deployments, perhaps since everyone internally uses Chrome, nobody notices when those tests are lacking on other browsers. Google would do well to reintroduce "humans" into their development process, and maybe open their new websites once in each major browser before they push a release.
I've worked for companies with no defined browser support, and other clients which required us to test in IE6-9, FF, Chrome, Safari, Mac FF, Mac Chrome, Mac Safari. It took FOREVER, so we ended up automating a lot of it.
Don't hesitate to add issues to https://www.github.com/google/fonts/issues if you see any other strangeness.
I noticed my font rendering in Chrome started to be terrible a couple of days ago, so might be on me.
On the console there's this:
21:07:34.420 Error: The operation is insecure. Fc@java/com/google/fonts/directory/ui/app_js.js:78:634 l/<.instantiate@java/com/google/fonts/directory/ui/angular_js.js:36:424 Zb/v.$provide.service</<@java/com/google/fonts/directory/ui/angular_js.js:37:182 l/<.invoke@java/com/google/fonts/directory/ui/angular_js.js:36:321 e/<@java/com/google/fonts/directory/ui/angular_js.js:33:486 l/<.invoke@java/com/google/fonts/directory/ui/angular_js.js:36:321 Zb/cb<@java/com/google/fonts/directory/ui/angular_js.js:38:93 d@java/com/google/fonts/directory/ui/angular_js.js:35:294 e@java/com/google/fonts/directory/ui/angular_js.js:36:1 l/<.invoke@java/com/google/fonts/directory/ui/angular_js.js:36:111 bf/this.$get</</<@java/com/google/fonts/directory/ui/angular_js.js:84:434 t@java/com/google/fonts/directory/ui/angular_js.js:59:434 h@java/com/google/fonts/directory/ui/angular_js.js:53:339 H/<@java/com/google/fonts/directory/ui/angular_js.js:52:482 jc/c/</<@java/com/google/fonts/directory/ui/angular_js.js:16:99 qf/this.$get</t.prototype.$eval@java/com/google/fonts/directory/ui/angular_js.js:140:215 qf/this.$get</t.prototype.$apply@java/com/google/fonts/directory/ui/angular_js.js:140:447 jc/c/<@java/com/google/fonts/directory/ui/angular_js.js:16:57 l/<.invoke@java/com/google/fonts/directory/ui/angular_js.js:36:321 jc/c@java/com/google/fonts/directory/ui/angular_js.js:15:1 jc@java/com/google/fonts/directory/ui/angular_js.js:16:274 Bc@java/com/google/fonts/directory/ui/angular_js.js:15:83 @java/com/google/fonts/directory/ui/angular_js.js:309:165 b@java/com/google/fonts/directory/ui/angular_js.js:183:63 Kf@java/com/google/fonts/directory/ui/angular_js.js:31:474 Jf/d@java/com/google/fonts/directory/ui/angular_js.js:31:423 undefined1 angular_js.js:113:8 e/<() angular_js.js:113 df/this.$get</<() angular_js.js:85 b/<() app_js.js:157 qf/this.$get</t.prototype.$apply() angular_js.js:140 jc/c/<() angular_js.js:16 l/<.invoke() angular_js.js:36 jc/c() angular_js.js:15 jc() angular_js.js:16 Bc() angular_js.js:15 <anonymous> angular_js.js:309 b() angular_js.js:183 Kf() angular_js.js:31 Jf/d() angular_js.js:31