New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.
Starred by 63 users
Status: Verified
Last visit > 30 days ago
Closed: Jul 2010
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug

  • Only users with EditIssue permission may comment.

Sign in to add a comment
Chrome sandbox blocks loading of fonts stored outside stock system locations
Reported by, Dec 8 2009 Back to list
Chrome Version       :
URLs (if applicable) : Any URL using a non-system standard font installed 
via FontExplorer X Pro - for example (Century 
Gothic in the headlines).
OS version               : 10.6.2
Behavior in Safari 3.x/4.x (if applicable): OK
Behavior in Firefox 3.x (if applicable): OK
Behavior in Chrome for Windows: n/a

What steps will reproduce the problem?
1. View a site using a non-system font (installed locally via FontExplorer X 
Pro) set as its primary typeface.
2. Have that font installed and working on your system.

What is the expected result?
Chrome displays the font correctly, and if it is not installed locally and/or is 
not functioning properly, falls back to a backup font (see font-family code 
example below).

What happens instead?
Chrome fails to render the font correctly (displaying a "broken font" 
symbol [letter A in a square]), and fails to use a fallback font.  For instance, 
font-family: "Century Gothic", Helvetica, Verdana, sans-serif; displays 
broken font as opposed to displaying in Helvetica.

Also: Tested this out with a few other fonts... occurs with any non-system 
font installed via FontExplorer X Pro v. 2.0.3.  FontExplorer is passing fonts 
along fine to all other browsers/programs, so it doesn't appear to be the 
Screen shot 2009-12-08 at 2.24.07 PM.png
346 KB View Download
Comment 1 by, Dec 15 2009
I can verify this happens on my system; I also run FontExplorer X Pro 2.0.3 on Mac OS
X 10.6.2. See attached screenshot of the Google homepage rendered in Google Chrome

All of my fonts are activated/deactivated through FontExplorer X Pro; I'm not sure
how the type mechanism works in OSX, but it's possible Chrome is using fonts directly
from their directory as theorized here:

The below might be uesful:

$ ls /System/Library/Fonts/
Apple Braille Outline 6 Dot.ttf		HelveLTMM				Times LT MM
Apple Braille Outline 8 Dot.ttf		Helvetica LT MM				Times.dfont
Apple Braille Pinpoint 6 Dot.ttf	Helvetica.dfont				TimesLTMM
Apple Braille Pinpoint 8 Dot.ttf	HelveticaNeue.ttc			儷黑 Pro.ttf
Apple Braille.ttf			Keyboard.ttf				华文细黑.ttf
Apple Symbols.ttf			LastResort.ttf				华文黑体.ttf
AppleGothic.ttf				LucidaGrande.ttc			ヒラギノ明朝 ProN W3.otf
Courier.dfont				Menlo.ttc				ヒラギノ明朝 ProN W6.otf
Geeza Pro Bold.ttf			Monaco.dfont				ヒラギノ角ゴ ProN W3.otf
Geeza Pro.ttf				Thonburi.ttf				ヒラギノ角ゴ ProN W6.otf
Geneva.dfont				ThonburiBold.ttf
$ ls /Library/Fonts/
$ ls ~/Library/Fonts/

131 KB View Download
Comment 2 Deleted
Comment 3 by Deleted ...@, Jan 2 2010
This is a problem for me too. Using build (34444)

See for example. 
Screen shot 2010-01-02 at 10.01.03 AM.jpg
207 KB View Download
Status: Untriaged
Labels: Mstone-6
Status: Available
Comment 6 by Deleted ...@, Jan 6 2010
same issue for me, how do i fix this? help.
Screen shot 2010-01-06 at 5.22.20 PM.png
256 KB View Download
The fixed width fonts on (which many of us use daily!) also has this 
problem. I'm running the latest dev-channel nightly build. 

Screen shot 2010-01-08 at 10.11.27 AM.png
190 KB View Download
Comment 8 by Deleted ...@, Jan 8 2010
I am suffering from this issue as well. Mac OS X 10.62, FontExplorer X, about 1500
fonts active... total mess as seen by screenshot
Screen shot 2010-01-08 at 1.29.37 PM.pdf
155 KB Download
Comment 9 by, Jan 11 2010
A relevant log entry:

1/11/10 11:16:29 AM	sandboxd[49060]	Google Chrome He(49093) deny file-read-data 

This implies that the problem is not with FontExplorer X per se, but that Google Chrome has restricted children processes from 
reading files made accessible through the font activation system. Hence this problem will occur with any font-management 
program that keeps font files outside of the three font directories.

To get around this for now, you could disable the sandboxing feature with the `--no-sandbox' option.

I'm using this alias for the time being:

alias chrome='ps axo ucomm | grep -q "Google Chrome" || "/Applications/Google 
Chrome" --no-sandbox &>/dev/null &'
That's correct. From the renderer sandbox (
revision=28541&view=markup ):

; Needed for Fonts.
(allow file-read-data (regex #"^/System/Library/Fonts"))  ; 10.5.6
;10.6_ONLY (allow file-read-data (regex #"^/Library/Fonts"))  ; 10.6
(allow mach-lookup (global-name ""))  ; 10.5.6
;10.6_ONLY (allow mach-lookup (global-name ""))  ; 10.6
I've recently compiled chromium (svn) on my Mac; and was quite puzzled to see no fonts at all ... thankfully I found this bug report ;)
(Situation was worse for me as I had installed the MS 'Core fonts for the web' in non-standard locations) ...

Taking a look at the sandbox "configuration file" (located in " Framework.framework/Resources", Chrome users 
will surely find a similar location, I guess?) I would assume that adding the lines

(allow file-read-data (regex #"ttf$"))
(allow file-read-data (regex #"otf$"))

(below the "; Needed for Fonts." block) would allow the rendering processes to access all files ending in ttf / otf (TrueType/OpenType Fonts); without deactivating the sandbox 
security model alltogether.
Those lines fix the problem for me.
Maybe a developer could comment whether it's safe to do it that way?
I think; for a workaround, it would be better to keep the sandboxing system active and just allow access to all fonts. (As fonts are normally not extremely confidental data ;))
Labels: HelpWanted
So it's clear from everyone's comments that the issue is that users with FontExplorer installed have 
fonts which are stored outside /System/Library/Fonts & /Library/Fonts which are the only directories 
that the Sandbox allows reading from.

We need to take a closer look at FontExplorer X's behavior and see which paths it allows storing fonts 
under and how we can integrate support for this into the Sandbox.

Christian: The sandbox rules you've added allow opening any file with a ttf or otf extension regardless 
of it's position on disk which is probably a bad idea.

I think we have all the information we need at the moment, I'd appreciate it if people refrained from 
adding "me too" comments to this bug since it only serves to spam the people who've starred the bug 
and are waiting to be updated on progress.
I can confirm that this issue is not FontExplorer specific. I use FontAgent Pro to manage 
my fonts and am experiencing the same problems.  

From searching forums, etc. it appears pretty much everybody who uses a font 
management software (and some who don't) are experiencing this. 
348 KB View Download
 Issue 34999  has been merged into this issue.
Labels: -Area-Misc Area-Internals
Summary: Conflict between font managers and Chrome (was: NULL)
Summary: Chrome sandbox blocks loading of fonts stored in nonstandard locations by font managers (was: NULL)
(more descriptive summary)
 Issue 33035  has been merged into this issue.
Comment 18 by Deleted ...@, Feb 25 2010
I can confirm that this happens with Suitcase Fusion as well.
Comment 19 by, Feb 25 2010
Confirmation here that the font application is completely independent of the problem. 
Any app that activates fonts outside the sandbox results in this error. I have tested it 
with 4 font managers so far.

Incidentally, the fix posted by Christian above only partially fixes the problem.  There 
are still small patches of the errors that pop up.
Please see comment #12 - we know what the issue is, every time you comment here everyone who's starred the 
bug gets an email.  Please hold tight and we'll update the bug when we have a fix.
That was happening to me with Microsoft core web fonts and standard OS X font manager (see duplicate issue 
33035). Deactivate fonts/stop font server/cleanup databases/start font server/enable fonts helps, but after next 
system reboot I have the same issue.
 Issue 35896  has been merged into this issue.
Labels: wasm6kg Mstone-X
Status: Started
Labels: -HelpWanted
Status: Available
Comment 27 by, Mar 17 2010
Here is the help forum thread about this issue:
Any plans to fix that?
I do NOT have any font manager installed apart from Font Book, and I also have this issue.

The "broken font" symbol (letter A within a square) appears for fonts installed at ~/Library/Fonts/ whereas the correct font displays for fonts at 

On my machine Helvetica is installed at /System/Library/Fonts and Arial at ~/Library/Fonts/
For sites with font-family: Helvetica, Arial, sans-serif; (for example the font displays correctly. 
For sites with font-family: Arial, Helvetica, sans-serif; (for example I get the broken font. also shows the broken font on my machine as it is font-family: arial, sans-serif;

I am on Mac OS X 10.6.2 (10C540) Kernel Version: Darwin 10.2.0
Google Chrome for Mac (5.0.307.11)

I had this issue some time ago (I commented on  issue 11269 ). Some time after that post the issue disappeared and has now re-appeared.
I mostly use Safari on OS X due to this issue. On MS Windows (at work) I use Chrome almost exclusively.
Exactly the same here. Every font installed in ~/Library/Fonts appears broken in Chrome.

Please don't use the issue tracker as a discussion forum!
You are spamming all the people starred on this bug + developers every time you post a message here.

We are aware of this issue and have all the information we need to reproduce it. If we need any more we'll ask. 
Please be patient till we can get a fix out.
Status: Started
Stacktrace at which font loading is failing:

	4   libFontParser.dylib                 0x9161c181 TFileDataReference::TFileDataReference(char const*) + 77
	5   libFontParser.dylib                 0x9161bf6f TFileDataSurrogate::TFileDataSurrogate(char const*, bool) + 135
	6   libFontParser.dylib                 0x916686ee TFont::CreateFontEntitiesForFile(char const*, bool, TSimpleArray<TFont*>&, bool, short, char const*) + 3378
	7   libFontParser.dylib                 0x9161b5b8 FPFontCreateFontsWithPath + 232
	8   libCGXType.A.dylib                  0x915a5fdf create_private_data_with_path + 26
	9   CoreGraphics                        0x94f7ac6c CGFontCreateFontsWithPath + 43
	10  CoreGraphics                        0x94f7a867 CGFontCreateFontsWithURL + 452
	11  CoreText                            0x9930ada4 TCGFont::TCGFont(__CFURL const*, bool) + 60
	12  CoreText                            0x9930ab7b TCGFontCache::CopyFont(__CFURL const*) const + 103
	13  CoreText                            0x9930a9c2 TBaseFont::CopyNativeFont() const + 44
	14  CoreText                            0x9931c74c CTFontCopyGraphicsFont + 46
	15  Chromium Framework                  0x017e9850 WebCore::FontPlatformData::FontPlatformData(NSFont*, bool, bool) + 180
	16  Chromium Framework                  0x017e66f7 WebCore::FontCache::createFontPlatformData(WebCore::FontDescription const&, WebCore::AtomicString const&) + 519
	17  Chromium Framework                  0x0180322b WebCore::FontCache::getCachedFontPlatformData(WebCore::FontDescription const&, WebCore::AtomicString const&, bool) + 341
	18  Chromium Framework                  0x0180339b WebCore::FontCache::getCachedFontData(WebCore::FontDescription const&, WebCore::AtomicString const&, bool) + 45
	19  Chromium Framework                  0x018034db WebCore::FontCache::getFontData(WebCore::Font const&, int&, WebCore::FontSelector*) + 275
	20  Chromium Framework                  0x0180cdf3 WebCore::FontFallbackList::fontDataAt(WebCore::Font const*, unsigned int) const + 319
	21  Chromium Framework                  0x018020a0 WebCore::FontFallbackList::primaryFontData(WebCore::Font const*) const + 32
	22  Chromium Framework                  0x01802113 WebCore::FontFallbackList::primarySimpleFontData(WebCore::Font const*) + 113
	23  Chromium Framework                  0x01800c04 WebCore::Font::primaryFont() const + 122
	24  Chromium Framework                  0x019475a1 WebCore::Font::lineSpacing() const + 17
	25  Chromium Framework                  0x0198a8fe WebCore::RenderTextControlSingleLine::createInnerTextStyle(WebCore::RenderStyle const*) const + 376
	26  Chromium Framework                  0x0198818b WebCore::RenderTextControl::createSubtreeIfNeeded(WebCore::TextControlInnerElement*) + 225
	27  Chromium Framework                  0x0198aacb WebCore::RenderTextControlSingleLine::createSubtreeIfNeeded() + 71
	28  Chromium Framework                  0x0198ada7 WebCore::RenderTextControlSingleLine::updateFromElement() + 25
	29  Chromium Framework                  0x01607834 WebCore::HTMLFormControlElement::attach() + 146
	30  Chromium Framework                  0x0161fc1b WebCore::HTMLInputElement::attach() + 133
	31  Chromium Framework                  0x016402c1 WebCore::HTMLParser::insertNode(WebCore::Node*, bool) + 937
	32  Chromium Framework                  0x01645389 WebCore::HTMLParser::insertNodeAfterLimitBlockDepth(WebCore::Node*, bool) + 61
	33  Chromium Framework                  0x01642d0d WebCore::HTMLParser::parseToken(WebCore::Token*) + 1471
	34  Chromium Framework                  0x01655d8a WebCore::HTMLTokenizer::processToken() + 594
	35  Chromium Framework                  0x0165bf96 WebCore::HTMLTokenizer::parseTag(WebCore::SegmentedString&, WebCore::HTMLTokenizer::State) + 7036
	36  Chromium Framework                  0x0165cced WebCore::HTMLTokenizer::write(WebCore::SegmentedString const&, bool) + 1783
	37  Chromium Framework                  0x016e5d76 WebCore::DocumentWriter::addData(char const*, int, bool) + 1302
	38  Chromium Framework                  0x016f2a4f WebCore::FrameLoader::addData(char const*, int) + 309
	39  Chromium Framework                  0x01309915 WebKit::WebFrameImpl::commitDocumentData(char const*, unsigned long) + 209
	40  Chromium Framework                  0x012e3182 WebKit::FrameLoaderClientImpl::committedLoad(WebCore::DocumentLoader*, char const*, int) + 176
	41  Chromium Framework                  0x016ef3d0 WebCore::FrameLoader::committedLoad(WebCore::DocumentLoader*, char const*, int) + 84
	42  Chromium Framework                  0x016dc177 WebCore::DocumentLoader::commitLoad(char const*, int) + 87
	43  Chromium Framework                  0x016dc1d0 WebCore::DocumentLoader::receivedData(char const*, int) + 76
	44  Chromium Framework                  0x016f11eb WebCore::FrameLoader::receivedData(char const*, int) + 41
	45  Chromium Framework                  0x01708f80 WebCore::MainResourceLoader::addData(char const*, int, bool) + 80
	46  Chromium Framework                  0x01713ed3 WebCore::ResourceLoader::didReceiveData(char const*, int, long long, bool) + 83
	47  Chromium Framework                  0x01708730 WebCore::MainResourceLoader::didReceiveData(char const*, int, long long, bool) + 372
	48  Chromium Framework                  0x017132ec WebCore::ResourceLoader::didReceiveData(WebCore::ResourceHandle*, char const*, int, int) + 182
	49  Chromium Framework                  0x012ed3fe WebCore::ResourceHandleInternal::didReceiveData(WebKit::WebURLLoader*, char const*, int) + 210
	50  Chromium Framework                  0x012c3237 webkit_glue::WebURLLoaderImpl::Context::OnReceivedData(char const*, int) + 197
	51  Chromium Framework                  0x0004402a ResourceDispatcher::OnReceivedData(IPC::Message const&, int, base::FileDescriptor, int) + 632
	52  Chromium Framework                  0x00046fdb bool IPC::MessageWithTuple<Tuple3<int, base::FileDescriptor, int> >::Dispatch<ResourceDispatcher, int, base::FileDescriptor, int>(IPC::Message const*, ResourceDispatcher*, void (ResourceDispatcher::*)(IPC::Message const&, int, base::FileDescriptor, int)) 
+ 142
	53  Chromium Framework                  0x000430dc ResourceDispatcher::DispatchMessage(IPC::Message const&) + 374
	54  Chromium Framework                  0x0004456c ResourceDispatcher::OnMessageReceived(IPC::Message const&) + 878
	55  Chromium Framework                  0x000624f6 ChildThread::OnMessageReceived(IPC::Message const&) + 40
	56  Chromium Framework                  0x010e1828 IPC::ChannelProxy::Context::OnDispatchMessage(IPC::Message const&) + 144
	57  Chromium Framework                  0x010e28d6 void DispatchToMethod<IPC::ChannelProxy::Context, void (IPC::ChannelProxy::Context::*)(IPC::Message const&), IPC::Message>(IPC::ChannelProxy::Context*, void (IPC::ChannelProxy::Context::*)(IPC::Message const&), Tuple1<IPC::Message> const&) + 63
	58  Chromium Framework                  0x010e2911 RunnableMethod<IPC::ChannelProxy::Context, void (IPC::ChannelProxy::Context::*)(IPC::Message const&), Tuple1<IPC::Message> >::Run() + 57
	59  Chromium Framework                  0x0097ec4a MessageLoop::RunTask(Task*) + 220
	60  Chromium Framework                  0x0097f329 MessageLoop::DeferOrRunPendingTask(MessageLoop::PendingTask const&) + 53
	61  Chromium Framework                  0x0097f5b9 MessageLoop::DoWork() + 253

Jeremy wrote, back in January:

"We need to take a closer look at FontExplorer X's behavior and see which paths it 
allows storing fonts under and how we can integrate support for this into the 

Since then, it has become apparent that all third-party font management applications 
which have this capability trigger the problem. I wanted to let y'all know that these 
apps do generally allow *arbitrary font file locations* (at least on the local 
system), so it seems to me that if you want to fix this, you too need to support 
arbitrary font file locations.

BTW, I am the product manager for Suitcase Fusion.
Summary: Chrome sandbox blocks loading of fonts stored outside stock system locations (was: NULL)
thomas: Thanks for chiming in.  As we've seen since this bug was filed, you don't necessarily even need a font 
manager to trigger this failure case.  I've updated the summary accordingly.
Comment 37 by, May 25 2010
Labels: -Mstone-X Mstone-6
 Issue 45456  has been merged into this issue.
 Issue 43399  has been merged into this issue.
I need a volunteer whose seeing this consistently to help test a potential fix.
Please contact me by mail if you're experiencing this and would be willing to try out an experimental build.
Got a volunteer, thanks all!
Comment 42 by, Jun 13 2010
is anyone know, when this issue will be fixed?
The following revision refers to this bug: 

r50076 | | 2010-06-16 20:29:26 -0700 (Wed, 16 Jun 2010) | 10 lines
Changed paths:

Mac: More pluming for OOP font loading

* Add font_descriptor and corresponding pluming to send an NSFont over IPC.

* Rejigger font_loader to accept an NSFont as input and output an ATSFontContainerRef.  The reasoning behind this is that WebKit ultimately controls the font lifetime and we can only deactivate the font container once the font is no longer in use.

BUG= 29729 
Test=Unit tests should pass.

Review URL:

The following revision refers to this bug: 

r50321 | | 2010-06-19 22:20:25 -0700 (Sat, 19 Jun 2010) | 8 lines
Changed paths:

Mac: Infrastructure for serialization of OS fonts over IPC.

Renderer & Browser bits to send and receive IPC message for OOP font loading.

BUG= 29729 
TEST=All unit tests should pass.

Review URL:

Status: Fixed
This has landed in the tree and the bug should be fixed in the next dev channel release.

I've filed issue 48050 to track a related problem.

How to test:
* You need to be on 10.6.
* Copy Arial.ttf from /Library/Fonts to ~/Library/Fonts.
* Open the chrome bundle and edit Contents/Versions/<latest version>/Google Chrome Framework.framework/Resources/ in a text editor.
* Delete the line that contains USER_HOMEDIR/Library/Fonts
* Launch Chrome and navigate to

Expected result:
Google homepage should render correctly.

Result without this patch:
Google homepage will render in last resort font (boxes instead of characters).

Status: Verified
Verified in 6.0.460.0 (Official Build 51834)
I have a similar problem. For me, the default font is a bunch of rectangles.


OpenSuse 11.3
Google Chrome 8

The language is default English, no special fonts of any kind.
433 KB View Download
Comment 49 by, Jan 25 2011
This bug is about mac. If you see this on linux, pleas file a new issue. (you can mention your issue # here and I will triage it for you)
Thank you. #70804
Comment 51 by, Feb 11 2011
related: #72727

FYI, in the dev channel this isn't really fixed. It no longer shows the As in boxes, but it doesn't follow the CSS font chain. For example, on my system I have Helvetica Neue activated in Suitcase Fusion, but Chrome doesn't ever render Helvetica Neue, instead substituting Times New Roman, which is nowhere in the given site's CSS font declarations.
Comment 53 by, Feb 11 2011
@comment 52
Since this bug is closed, I opended a seperate bug about that here: #72727
Comment 54 Deleted
The bug is not fixed at all (or its' a regression since the update 18.0.1025.142).

I use a goole web font called Signika / Signika negative in my websites, and i also have it installed in my Mac (via FontExplorer). Chrome displays a lot of glyphs instead of expected text.

When i deactivate my Signikas in FontExplorer, Chrome displays properly the font.

The problems occurs too on Google web Font page as the screenshot below shows (so it doesn't involve a problem on how i could use Google Web Fonts in my websites)
9.9 KB View Download
14.3 KB View Download
105 KB View Download
Comment 56 by Deleted ...@, Apr 2 2012
@55 I have the same problem (mac, fontexplorer, google Webfont). But the font ist "Asap".
Comment 57 by, Apr 4 2012
Same problem, strange glyphs everywhere.
It was fixed, but recently broke again in chrome 18. That's tracked in  issue 108645 .
Labels: Restrict-AddIssueComment-Commit
Project Member Comment 60 by, Mar 10 2013
Labels: -Area-Internals -Mstone-6 Cr-Internals M-6
Project Member Comment 61 by, Mar 13 2013
Labels: -Restrict-AddIssueComment-Commit Restrict-AddIssueComment-EditIssue
Sign in to add a comment