| Index: third_party/WebKit/Source/platform/fonts/win/FontCacheSkiaWin.cpp | 
| diff --git a/third_party/WebKit/Source/platform/fonts/win/FontCacheSkiaWin.cpp b/third_party/WebKit/Source/platform/fonts/win/FontCacheSkiaWin.cpp | 
| index ddaadd6acb74065fc9110dea7aa420929d4d0afc..6b8b3c71e69c760f66964a7e0bcf1f02f60ccca1 100644 | 
| --- a/third_party/WebKit/Source/platform/fonts/win/FontCacheSkiaWin.cpp | 
| +++ b/third_party/WebKit/Source/platform/fonts/win/FontCacheSkiaWin.cpp | 
| @@ -33,6 +33,7 @@ | 
|  | 
| #include "SkFontMgr.h" | 
| #include "SkTypeface_win.h" | 
| +#include "platform/Language.h" | 
| #include "platform/RuntimeEnabledFeatures.h" | 
| #include "platform/fonts/FontDescription.h" | 
| #include "platform/fonts/FontFaceCreationParams.h" | 
| @@ -142,6 +143,37 @@ PassRefPtr<SimpleFontData> FontCache::fallbackFontForCharacter( | 
| data = getFontPlatformData(fontDescription, createByFamily); | 
| } | 
|  | 
| +    if ((!data || !data->fontContainsCharacter(character)) && s_useSkiaFontFallback) { | 
| +        const char* bcp47Locale = nullptr; | 
| +        int localeCount = 0; | 
| +        CString fontLocale; | 
| +        // If the font description has a locale, use that. Otherwise, Skia will | 
| +        // fall back on the user's default locale. | 
| +        // TODO(kulshin): extract locale fallback logic from | 
| +        //   FontCacheAndroid.cpp and share that code | 
| +        if (!fontDescription.locale().isEmpty()) { | 
| +            fontLocale = toSkFontMgrLocale(fontDescription.locale()); | 
| +            bcp47Locale = fontLocale.data(); | 
| +            localeCount = 1; | 
| +        } | 
| + | 
| +        CString familyName = fontDescription.family().family().utf8(); | 
| + | 
| +        SkTypeface* typeface = m_fontManager->matchFamilyStyleCharacter( | 
| +            familyName.data(), | 
| +            fontDescription.skiaFontStyle(), | 
| +            &bcp47Locale, | 
| +            localeCount, | 
| +            character); | 
| +        if (typeface) { | 
| +            SkString skiaFamily; | 
| +            typeface->getFamilyName(&skiaFamily); | 
| +            FontFaceCreationParams createByFamily( | 
| +                AtomicString(skiaFamily.c_str())); | 
| +            data = getFontPlatformData(fontDescription, createByFamily); | 
| +        } | 
| +    } | 
| + | 
| // Last resort font list : PanUnicode. CJK fonts have a pretty | 
| // large repertoire. Eventually, we need to scan all the fonts | 
| // on the system to have a Firefox-like coverage. | 
|  |