Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(476)

Side by Side Diff: third_party/WebKit/Source/platform/fonts/skia/FontCacheSkia.cpp

Issue 2137483004: Enable "system-ui" generic font family (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Refactor and cleanup Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2006, 2007, 2008, 2009 Google Inc. All rights reserved. 2 * Copyright (c) 2006, 2007, 2008, 2009 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 222
223 #if OS(WIN) 223 #if OS(WIN)
224 if (s_sideloadedFonts) { 224 if (s_sideloadedFonts) {
225 HashMap<String, sk_sp<SkTypeface>>::iterator sideloadedFont = 225 HashMap<String, sk_sp<SkTypeface>>::iterator sideloadedFont =
226 s_sideloadedFonts->find(name.data()); 226 s_sideloadedFonts->find(name.data());
227 if (sideloadedFont != s_sideloadedFonts->end()) 227 if (sideloadedFont != s_sideloadedFonts->end())
228 return sideloadedFont->value; 228 return sideloadedFont->value;
229 } 229 }
230 #endif 230 #endif
231 231
232 #if OS(WIN)
233 DCHECK_NE(family, FontFamilyNames::system_ui);
234 const char* familyNameForSkia = name.data();
235 #else
236 // When the system UI font is localized, "system-ui" should have
237 // been replaced to the localied name. Use the Skia default family
drott 2016/10/12 11:01:59 Can you add some explanations where was it replace
kojii 2016/10/12 11:14:52 FontCacheLinux already has setSystemFontFamily() i
238 // if it is not localized by using nullptr.
239 const char* familyNameForSkia =
240 family == FontFamilyNames::system_ui ? nullptr : name.data();
241 #endif
242
232 #if OS(LINUX) || OS(WIN) 243 #if OS(LINUX) || OS(WIN)
233 // On linux if the fontManager has been overridden then we should be calling 244 // On linux if the fontManager has been overridden then we should be calling
234 // the embedder provided font Manager rather than calling 245 // the embedder provided font Manager rather than calling
235 // SkTypeface::CreateFromName which may redirect the call to the default font 246 // SkTypeface::CreateFromName which may redirect the call to the default font
236 // Manager. On Windows the font manager is always present. 247 // Manager. On Windows the font manager is always present.
237 if (m_fontManager) 248 if (m_fontManager) {
238 return sk_sp<SkTypeface>(m_fontManager->matchFamilyStyle( 249 return sk_sp<SkTypeface>(m_fontManager->matchFamilyStyle(
239 name.data(), fontDescription.skiaFontStyle())); 250 familyNameForSkia, fontDescription.skiaFontStyle()));
251 }
240 #endif 252 #endif
241 253
242 // FIXME: Use m_fontManager, matchFamilyStyle instead of 254 // FIXME: Use m_fontManager, matchFamilyStyle instead of
243 // legacyCreateTypeface on all platforms. 255 // legacyCreateTypeface on all platforms.
244 sk_sp<SkFontMgr> fm(SkFontMgr::RefDefault()); 256 sk_sp<SkFontMgr> fm(SkFontMgr::RefDefault());
245 return sk_sp<SkTypeface>( 257 return sk_sp<SkTypeface>(fm->legacyCreateTypeface(
246 fm->legacyCreateTypeface(name.data(), fontDescription.skiaFontStyle())); 258 familyNameForSkia, fontDescription.skiaFontStyle()));
247 } 259 }
248 260
249 #if !OS(WIN) 261 #if !OS(WIN)
250 std::unique_ptr<FontPlatformData> FontCache::createFontPlatformData( 262 std::unique_ptr<FontPlatformData> FontCache::createFontPlatformData(
251 const FontDescription& fontDescription, 263 const FontDescription& fontDescription,
252 const FontFaceCreationParams& creationParams, 264 const FontFaceCreationParams& creationParams,
253 float fontSize) { 265 float fontSize) {
254 CString name; 266 CString name;
255 sk_sp<SkTypeface> tf = createTypeface(fontDescription, creationParams, name); 267 sk_sp<SkTypeface> tf = createTypeface(fontDescription, creationParams, name);
256 if (!tf) 268 if (!tf)
257 return nullptr; 269 return nullptr;
258 270
259 return wrapUnique(new FontPlatformData( 271 return wrapUnique(new FontPlatformData(
260 tf, name.data(), fontSize, (numericFontWeight(fontDescription.weight()) > 272 tf, name.data(), fontSize, (numericFontWeight(fontDescription.weight()) >
261 200 + tf->fontStyle().weight()) || 273 200 + tf->fontStyle().weight()) ||
262 fontDescription.isSyntheticBold(), 274 fontDescription.isSyntheticBold(),
263 ((fontDescription.style() == FontStyleItalic || 275 ((fontDescription.style() == FontStyleItalic ||
264 fontDescription.style() == FontStyleOblique) && 276 fontDescription.style() == FontStyleOblique) &&
265 !tf->isItalic()) || 277 !tf->isItalic()) ||
266 fontDescription.isSyntheticItalic(), 278 fontDescription.isSyntheticItalic(),
267 fontDescription.orientation())); 279 fontDescription.orientation()));
268 } 280 }
269 #endif // !OS(WIN) 281 #endif // !OS(WIN)
270 282
271 } // namespace blink 283 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698