| Index: chrome/browser/android/vr_shell/textures/ui_texture.cc
|
| diff --git a/chrome/browser/android/vr_shell/textures/ui_texture.cc b/chrome/browser/android/vr_shell/textures/ui_texture.cc
|
| index 3b0743239bb1edb9ba772efe3ed8168d085e5f2a..b5edf11cafcede42e9f3c72f548c09787a5aa0e8 100644
|
| --- a/chrome/browser/android/vr_shell/textures/ui_texture.cc
|
| +++ b/chrome/browser/android/vr_shell/textures/ui_texture.cc
|
| @@ -44,6 +44,10 @@ gfx::FontList UiTexture::GetFontList(int size, base::string16 text) {
|
| gfx::Font default_font(kDefaultFontFamily, size);
|
| std::vector<gfx::Font> fonts{default_font};
|
|
|
| + std::set<wchar_t> characters;
|
| + for (base::i18n::UTF16CharIterator it(&text); !it.end(); it.Advance()) {
|
| + characters.insert(it.get());
|
| + }
|
| // TODO(acondor): Obtain fallback fonts with gfx::GetFallbackFonts
|
| // (which is not implemented for android yet) in order to avoid
|
| // querying per character.
|
| @@ -51,10 +55,10 @@ gfx::FontList UiTexture::GetFontList(int size, base::string16 text) {
|
| sk_sp<SkFontMgr> font_mgr(SkFontMgr::RefDefault());
|
| std::set<std::string> names;
|
| // TODO(acondor): Query BrowserProcess to obtain the application locale.
|
| - for (base::i18n::UTF16CharIterator it(&text); !it.end(); it.Advance()) {
|
| + for (wchar_t character : characters) {
|
| sk_sp<SkTypeface> tf(font_mgr->matchFamilyStyleCharacter(
|
| - default_font.GetFontName().c_str(), SkFontStyle(), nullptr, 0,
|
| - it.get()));
|
| + kDefaultFontFamily, SkFontStyle(), nullptr, 0, character));
|
| +
|
| // TODO(acondor): How should we handle no matching font?
|
| if (!tf)
|
| continue;
|
|
|