Index: third_party/WebKit/Source/platform/fonts/android/FontCacheAndroid.cpp |
diff --git a/third_party/WebKit/Source/platform/fonts/android/FontCacheAndroid.cpp b/third_party/WebKit/Source/platform/fonts/android/FontCacheAndroid.cpp |
index 4a5521003683722aebd3769c2c024ad48bd1d514..48ef9a0e882684f69606affddad75bfa9dfdfb49 100644 |
--- a/third_party/WebKit/Source/platform/fonts/android/FontCacheAndroid.cpp |
+++ b/third_party/WebKit/Source/platform/fonts/android/FontCacheAndroid.cpp |
@@ -41,49 +41,10 @@ |
namespace blink { |
-// SkFontMgr requires script-based locale names, like "zh-Hant" and "zh-Hans", |
-// instead of "zh-CN" and "zh-TW". |
-static CString toSkFontMgrLocale(const String& locale) |
-{ |
- if (!locale.startsWith("zh", TextCaseInsensitive)) |
- return locale.ascii(); |
- |
- switch (localeToScriptCodeForFontSelection(locale)) { |
- case USCRIPT_SIMPLIFIED_HAN: |
- return "zh-Hans"; |
- case USCRIPT_TRADITIONAL_HAN: |
- return "zh-Hant"; |
- default: |
- return locale.ascii(); |
- } |
-} |
- |
-static AtomicString getFamilyNameForCharacter(UChar32 c, const FontDescription& fontDescription) |
-{ |
- RefPtr<SkFontMgr> fm = adoptRef(SkFontMgr::RefDefault()); |
- const char* bcp47Locales[3]; |
- int localeCount = 0; |
- if (const char* hanLocale = AcceptLanguagesResolver::preferredHanSkFontMgrLocale()) |
- bcp47Locales[localeCount++] = hanLocale; |
- CString defaultLocale = toSkFontMgrLocale(defaultLanguage()); |
- bcp47Locales[localeCount++] = defaultLocale.data(); |
- CString fontLocale; |
- if (!fontDescription.locale().isEmpty()) { |
- fontLocale = toSkFontMgrLocale(fontDescription.locale()); |
- bcp47Locales[localeCount++] = fontLocale.data(); |
- } |
- RefPtr<SkTypeface> typeface = adoptRef(fm->matchFamilyStyleCharacter(0, SkFontStyle(), bcp47Locales, localeCount, c)); |
- if (!typeface) |
- return emptyAtom; |
- |
- SkString skiaFamilyName; |
- typeface->getFamilyName(&skiaFamilyName); |
- return skiaFamilyName.c_str(); |
-} |
- |
PassRefPtr<SimpleFontData> FontCache::fallbackFontForCharacter(const FontDescription& fontDescription, UChar32 c, const SimpleFontData*) |
{ |
- AtomicString familyName = getFamilyNameForCharacter(c, fontDescription); |
+ RefPtr<SkFontMgr> fm = adoptRef(SkFontMgr::RefDefault()); |
+ AtomicString familyName = getFamilyNameForCharacter(fm.get(), c, fontDescription); |
if (familyName.isEmpty()) |
return getLastResortFallbackFont(fontDescription, DoNotRetain); |
return fontDataFromFontPlatformData(getFontPlatformData(fontDescription, FontFaceCreationParams(familyName)), DoNotRetain); |
@@ -109,7 +70,8 @@ AtomicString FontCache::getGenericFamilyNameForScript(const AtomicString& family |
return familyName; |
} |
- return getFamilyNameForCharacter(examplerChar, fontDescription); |
+ RefPtr<SkFontMgr> fm = adoptRef(SkFontMgr::RefDefault()); |
+ return getFamilyNameForCharacter(fm.get(), examplerChar, fontDescription); |
} |
} // namespace blink |