Source/WebCore/ChangeLog

 12016-06-24 Myles C. Maxfield <mmaxfield@apple.com>
 2
 3 [macOS] Generic font families should not map to fonts which aren't installed
 4 https://bugs.webkit.org/show_bug.cgi?id=159111
 5 <rdar://problem/25807529>
 6
 7 Reviewed by NOBODY (OOPS!).
 8
 9 Osaka-Mono does not come preinstalled on macOS Sierra. However, many Japanese users
 10 will have the font installed. Before setting the generic font family, we should check
 11 to see if the font is present.
 12
 13 * page/cocoa/SettingsCocoa.mm:
 14 (WebCore::osakaMonoIsInstalled):
 15 (WebCore::Settings::initializeDefaultFontFamilies):
 16
1172016-06-24 Jer Noble <jer.noble@apple.com>
218
319 Consider exposing or hiding knowledge of a redirect from clients of WebCoreNSURLSession

Source/WebCore/page/cocoa/SettingsCocoa.mm

@@static inline const char* sansSerifSimplifiedHanFontFamily()
5151
5252#if PLATFORM(MAC)
5353
 54static bool osakaMonoIsInstalled()
 55{
 56 RetainPtr<CFDictionaryRef> attributes = adoptCF(CFDictionaryCreate(kCFAllocatorDefault, nullptr, nullptr, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks));
 57 RetainPtr<CTFontDescriptorRef> emptyDescriptor = adoptCF(CTFontDescriptorCreateWithAttributes(attributes.get()));
 58 RetainPtr<CFArrayRef> fontDescriptors = adoptCF(CTFontDescriptorCreateMatchingFontDescriptors(emptyDescriptor.get(), nullptr));
 59 for (CFIndex i = 0; i < CFArrayGetCount(fontDescriptors.get()); ++i) {
 60 CTFontDescriptorRef fontDescriptor = static_cast<CTFontDescriptorRef>(CFArrayGetValueAtIndex(fontDescriptors.get(), i));
 61 RetainPtr<CFStringRef> name = adoptCF(static_cast<CFStringRef>(CTFontDescriptorCopyAttribute(fontDescriptor, kCTFontNameAttribute)));
 62 if (name && CFEqual(name.get(), CFSTR("Osaka-Mono")))
 63 return true;
 64 }
 65 return false;
 66}
 67
5468void Settings::initializeDefaultFontFamilies()
5569{
5670 setStandardFontFamily("Songti TC", USCRIPT_TRADITIONAL_HAN);

@@void Settings::initializeDefaultFontFamilies()
6478 setSansSerifFontFamily(sansSerifSimplifiedHanFontFamily(), USCRIPT_SIMPLIFIED_HAN);
6579
6680 setStandardFontFamily("Hiragino Mincho ProN", USCRIPT_KATAKANA_OR_HIRAGANA);
67  setFixedFontFamily("Osaka-Mono", USCRIPT_KATAKANA_OR_HIRAGANA);
 81 setFixedFontFamily(osakaMonoIsInstalled() ? "Osaka-Mono" : "Hiragino Sans", USCRIPT_KATAKANA_OR_HIRAGANA);
6882 setSerifFontFamily("Hiragino Mincho ProN", USCRIPT_KATAKANA_OR_HIRAGANA);
6983 setSansSerifFontFamily("Hiragino Kaku Gothic ProN", USCRIPT_KATAKANA_OR_HIRAGANA);
7084