fast/forms/text-control-intrinsic-widths.html fails on Mac if Word/Office fonts are...
authorsimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 30 Sep 2011 22:53:53 +0000 (22:53 +0000)
committersimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 30 Sep 2011 22:53:53 +0000 (22:53 +0000)
commit7f9a01459761174affd510647895a75aca23ad36
tree3af24307eb0f643d681c2a46de2c8caa44dea407
parented3dce05473a135b3bcaf173aa63a33430bc8a76
fast/forms/text-control-intrinsic-widths.html fails on Mac if Word/Office fonts are installed
https://bugs.webkit.org/show_bug.cgi?id=35273

Reviewed by Dan Bernstein.

There are two types of font issue that can cause layout test failure.
First, the user may have non-standard fonts installed that affect the layout
of some tests. For example, some tests use the MS Gothic font if installed.

Secondly, the user may have duplicate fonts installed in ~/Library/Fonts,
which override the system fonts (e.g. a copy of Arial from MS Office). For
some tests, this can affect font metrics or fallback behavior.

This change addresses the first problem only. It limits the set of fonts
available through NSFontManager, by swizzling some methods to return
a list of fonts or font families which only include fonts from a hardcoded
whitelist.

* DumpRenderTree/mac/DumpRenderTree.mm:
(allowedFontFamilySet):
(drt_NSFontManager_availableFontFamilies):
(drt_NSFontManager_availableFonts):
(swizzleNSFontManagerMethods):
(activateTestingFonts):
(adjustFonts):
(createWebViewAndOffscreenWindow):
(prepareConsistentTestingEnvironment):
* WebKitTestRunner/InjectedBundle/mac/InjectedBundleMac.mm:
(WTR::allowedFontFamilySet):
(WTR::drt_NSFontManager_availableFontFamilies):
(WTR::drt_NSFontManager_availableFonts):
(WTR::swizzleNSFontManagerMethods):
(WTR::InjectedBundle::platformInitialize):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@96434 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Tools/ChangeLog
Tools/DumpRenderTree/mac/DumpRenderTree.mm
Tools/WebKitTestRunner/InjectedBundle/mac/InjectedBundleMac.mm