Chromium Code Reviews| Index: ppapi/shared_impl/private/ppb_font_shared.cc |
| diff --git a/ppapi/shared_impl/private/ppb_font_shared.cc b/ppapi/shared_impl/private/ppb_font_shared.cc |
| index 36c9ed2272b7e91ed032fb6c22d50d61e7409e4f..c08fe515fa62099391503101ed9318f8127c0623 100644 |
| --- a/ppapi/shared_impl/private/ppb_font_shared.cc |
| +++ b/ppapi/shared_impl/private/ppb_font_shared.cc |
| @@ -4,6 +4,8 @@ |
| #include "ppapi/shared_impl/private/ppb_font_shared.h" |
| +#include <unicode/uscript.h> |
|
viettrungluu
2012/05/15 17:21:17
What I said previously.
|
| + |
| #include "base/debug/trace_event.h" |
| #include "base/string_util.h" |
| #include "base/utf_string_conversions.h" |
| @@ -40,6 +42,18 @@ namespace ppapi { |
| namespace { |
| +const char* kCommonScript = uscript_getShortName(USCRIPT_COMMON); |
| + |
| +string16 GetFontFromMap( |
| + const webkit_glue::WebPreferences::ScriptFontFamilyMap& map, |
| + const std::string& script) { |
| + webkit_glue::WebPreferences::ScriptFontFamilyMap::const_iterator it = |
| + map.find(script); |
| + if (it != map.end()) |
| + return it->second; |
| + return string16(); |
| +} |
| + |
| // Converts the given PP_TextRun to a TextRun, returning true on success. |
| // False means the input was invalid. |
| bool PPTextRunToTextRun(const PP_TextRun_Dev* run, |
| @@ -92,17 +106,21 @@ WebFontDescription PPFontDescToWebFontDesc(const PP_FontDescription_Dev& font, |
| // Resolve the generic family. |
| switch (font.family) { |
| case PP_FONTFAMILY_SERIF: |
| - resolved_family = prefs.serif_font_family; |
| + resolved_family = GetFontFromMap(prefs.serif_font_family_map, |
| + kCommonScript); |
| break; |
| case PP_FONTFAMILY_SANSSERIF: |
| - resolved_family = prefs.sans_serif_font_family; |
| + resolved_family = GetFontFromMap(prefs.sans_serif_font_family_map, |
| + kCommonScript); |
| break; |
| case PP_FONTFAMILY_MONOSPACE: |
| - resolved_family = prefs.fixed_font_family; |
| + resolved_family = GetFontFromMap(prefs.fixed_font_family_map, |
| + kCommonScript); |
| break; |
| case PP_FONTFAMILY_DEFAULT: |
| default: |
| - resolved_family = prefs.standard_font_family; |
| + resolved_family = GetFontFromMap(prefs.standard_font_family_map, |
| + kCommonScript); |
| break; |
| } |
| } else { |
| @@ -119,7 +137,8 @@ WebFontDescription PPFontDescToWebFontDesc(const PP_FontDescription_Dev& font, |
| // level to detect if the requested font is fixed width, so we only apply |
| // the alternate font size to the default fixed font family. |
| if (StringToLowerASCII(resolved_family) == |
| - StringToLowerASCII(prefs.fixed_font_family)) |
| + StringToLowerASCII(GetFontFromMap(prefs.fixed_font_family_map, |
| + kCommonScript))) |
| result.size = static_cast<float>(prefs.default_fixed_font_size); |
| else |
| result.size = static_cast<float>(prefs.default_font_size); |
| @@ -401,4 +420,3 @@ int32_t PPB_Font_Shared::PixelOffsetForCharacter(const PP_TextRun_Dev* text, |
| } |
| } // namespace ppapi |
| - |