Index: content/child/dwrite_font_proxy/dwrite_font_proxy_win.cc |
diff --git a/content/child/dwrite_font_proxy/dwrite_font_proxy_win.cc b/content/child/dwrite_font_proxy/dwrite_font_proxy_win.cc |
index d99296ee126519db35e0e0e2f3fe9d41b003176b..d3f17594a75091bab264c0c279deb89334e456d5 100644 |
--- a/content/child/dwrite_font_proxy/dwrite_font_proxy_win.cc |
+++ b/content/child/dwrite_font_proxy/dwrite_font_proxy_win.cc |
@@ -241,6 +241,22 @@ bool DWriteFontCollectionProxy::LoadFamily( |
return SUCCEEDED(hr); |
} |
+bool DWriteFontCollectionProxy::GetFontFamily(UINT32 family_index, |
+ const base::string16& family_name, |
+ IDWriteFontFamily** font_family) { |
+ DCHECK(font_family); |
+ DCHECK(!family_name.empty()); |
+ if (!CreateFamily(family_index)) |
+ return false; |
+ |
+ mswr::ComPtr<DWriteFontFamilyProxy>& family = families_[family_index]; |
+ if (!family->IsLoaded() || family->GetName().empty()) |
+ family->SetName(family_name); |
+ |
+ family.CopyTo(font_family); |
+ return true; |
+} |
+ |
bool DWriteFontCollectionProxy::LoadFamilyNames( |
UINT32 family_index, |
IDWriteLocalizedStrings** localized_strings) { |
@@ -400,6 +416,10 @@ void DWriteFontFamilyProxy::SetName(const base::string16& family_name) { |
family_name_.assign(family_name); |
} |
+const base::string16& DWriteFontFamilyProxy::GetName() { |
+ return family_name_; |
+} |
+ |
bool DWriteFontFamilyProxy::IsLoaded() { |
return family_ != nullptr; |
} |