Comment #13 on issue 29861 by [email protected]: Typekit.com and
possibly other font-face sites stall out, don't respond.
http://code.google.com/p/chromium/issues/detail?id=29861
The following revision refers to this bug:
http://src.chromium.org/viewvc/chrome?view=rev&revision=34915
------------------------------------------------------------------------
r34915 | [email protected] | 2009-12-17 17:33:49 -0800 (Thu, 17 Dec 2009)
| 17 lines
Changed paths:
M
http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/renderer_host/render_sandbox_host_linux.cc?r1=34915&r2=34914
M
http://src.chromium.org/viewvc/chrome/trunk/src/skia/ext/SkFontHost_fontconfig_direct.cpp?r1=34915&r2=34914
M
http://src.chromium.org/viewvc/chrome/trunk/src/skia/ext/SkFontHost_fontconfig_impl.h?r1=34915&r2=34914
M
http://src.chromium.org/viewvc/chrome/trunk/src/skia/ext/SkFontHost_fontconfig_ipc.cpp?r1=34915&r2=34914
Returns an error immediately without sending IPC message when a font family
name to resolve is too long.
This change is important when a site has @font-face rule like:
// http://paulirish.com/webkit-fontface-hang.html
@font-face{font-family:testfont;src:url('data:font/ttf;base64,AA.....<<looooooooooong
base64 data>>.....aQ==')}
In such a case, WebCore first calls SkFontHost::CreateTypeface() with the
(possibly very long) data-uri string itself, then calls
SkFontHost::CreateTypefaceFromStream() with decoded byte stream. Since
render_sandbox_host_linux.cc just ignores too long IPC message, the
renderer process could block indefinitely waiting for a reply inside
recvmsg() system call called from SkFontHost::CreateTypeface().
I'm not sure if the WebCore behavior (i.e. calling CreateTypeface with
data-uris) is reasonable, but I believe the Skia part is better to be fixed
anyway. Non data-uri font family names could be very long too:
@font-face{font-family:testfont;src:local('AA........AA');}
BUG=29861
TEST=First, set up your Linux SUID Sandbox binary:
http://code.google.com/p/chromium/wiki/LinuxSUIDSandboxDevelopment. Then
start Chromium and visit http://paulirish.com/webkit-fontface-hang.html or
http://typekit.com/. Verify that the renderer does not freeze.
Review URL: http://codereview.chromium.org/507037
------------------------------------------------------------------------
--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings
--
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/group/chromium-bugs