Safari vs. your font manager

Posted by scottstoel on July 31, 2011 at 5:55 pm.

With the release of Lion, some users are encountering a seemingly bizarre font problem where the text is replaced with a series of “boxy” letters like the example below:

picture-46

In the past when we have seen this issue, it was usually attributable to corrupt font caches, but that can be easily remedied in most situations by clearing font caches with an app like Smasher.

This new issue with Safari appears because Webkit (the engine under Safari and Chrome) now has “sandbox” restrictions that allow read-only permissions to certain folders. This in and of itself is not harmful, but most often the locations where most font mangers store their fonts are not included in the list.

The “boxy” letters are actually characters from the font Last Resort. Last Resort is a Mac OS X font that is invisible Mac users, but is used by the system to display glyphs that are not available in any other font activated on the system, thus the name Last Resort. The symbols provided by Last Resort place glyphs into categories based on their location in the Unicode system and provide a clue to the user about which encoding is required to view the unavailable characters. The glyphs provided by Last Resort are square with rounded corners with a bold outline.

It appears that when a user activates a font in their font manager, Safari is aware of the activation of the font, and attempts to use it, but because the application does not have read permissions to the font, it displays Last Resort. Safari does not have access to the font file for proper display.

What this means is that if you are using a font manager to handle activation and deactivation of your fonts, any font activated by the manager can exhibit this annoying behavior in Safari if the page viewed includes any of those fonts.

What to do?

To resolve this issue, FontGeek suggests switching to another browser, such as Firefox, that does not hobble your workflow.

It is ridiculous that an application like Safari cannot allow display of fonts activated by the user though a third-party application. There are few in the design profession that don’t use a font manager, and most regard the tool as absolutely necessary for their work. This is probably the biggest slap in the face to the graphic designer community since the insistence of the inclusion of Helvetica as a required system font.

A workaround…

If you wish to continue using Safari you can edit the preferences of the application using the instructions below.

Note: Proceed with caution. Editing the default preferences of an application is not recommended. If you are not familiar with editing preference files this may cause unintended consequences. Also, the example listed below is for FontAgent Pro. If you use a different font manager, insert the path to where your font manager stores its fonts.

Edit the file listed below. You will need administrative privileges to perform the operation.

/System/Library /PrivateFrameworks/WebKit2.framework/WebProcess.app/Contents/Resources/com.apple.WebProcess.sb

After the line that contains the text below:

(home-subpath “/Library/Fonts”)

insert the text below:

(home-subpath “/FontAgent Pro Fonts”)
(home-subpath “/Library/FontAgent Pro”)
(subpath “/Library/FontAgent Pro”)

Quit and restart Safari, and text in the browser should now appear as intended.

A special thanks goes out to fellow FontGeek Erik Tollefsrud for nailing down this issue.