@font-face Crashes Firefox on Fedora 11
With the release of Firefox 3.5, I decided it was finally time to get serious about setting up a custom headline font on Speed Force. Cross-platform @font-face embedding in CSS is now possible on Firefox, Safari, the beta version of Opera, and (I think) Chrome. So I pulled out some bookmarks, looked for some fonts with licenses that allowed embedding, messed around with a test page and finally settled on two custom fonts: one for the post headlines, and one for the title and the sidebar section headers.
I tested it in a couple of browsers, both on my Linux desktop and on the Mac laptop, and planned to test it on the Windows desktop when Katie was done with it. But then something weird started happening.
Firefox started crashing. Repeatedly. Not quite predictably, but only when that test page was open.
I figured maybe it was a corrupted font, so I removed one, then the other, then both. If the page tried to download an embedded font, Firefox would eventually crash. If not, it was rock solid.
This seemed kind of bizarre for such a high-profile new feature to cause consistent crashing.
I did some searches online but didn’t come up with anything until I tried running Firefox from the command-line, so that I could read the error message. It complained:
firefox: cairo-ft-font.c:554: _cairo_ft_unscaled_font_lock_face: Assertion `!unscaled->from_face' failed.
To make a long story short:
- On Linux, Firefox uses a library called cairo to handle graphics, including fonts.
- An old version of cairo had a bug that would cause crashes with fonts under certain circumstances.
- Cairo fixed the bug in December.
- Fedora 11 is still using the old version of cairo.
So until Fedora ships a newer (or at least patched) version of cairo, my primary browser on my primary desktop will crash on any web page with an embedded font.
I guess I could patch my own system for now and put the fonts up for the benefit of the rest of the Firefox+Safari+Opera-using audience on Windows and Macs (and probably other Linux distributions). But that means causing a crash for anyone else running Fedora 11 when they visit my site. I’m not too thrilled about that idea. I have no problem with adding enhancements that only appear under certain browser+os combinations, but actively crashing a browser? Not something I want to do.
Update (July 21): Aha! Fedora submitted an updated cairo for inclusion in the stable release last night!