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

Side by Side Diff: third_party/WebKit/Source/platform/fonts/FontCache.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, 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2006, 2008 Apple Inc. All rights reserved.
3 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com> 3 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com>
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 8 *
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 bool FontCache::s_lcdTextEnabled = false; 91 bool FontCache::s_lcdTextEnabled = false;
92 float FontCache::s_deviceScaleFactor = 1.0; 92 float FontCache::s_deviceScaleFactor = 1.0;
93 bool FontCache::s_useSkiaFontFallback = false; 93 bool FontCache::s_useSkiaFontFallback = false;
94 #endif // OS(WIN) 94 #endif // OS(WIN)
95 95
96 FontCache* FontCache::fontCache() { 96 FontCache* FontCache::fontCache() {
97 DEFINE_STATIC_LOCAL(FontCache, globalFontCache, ()); 97 DEFINE_STATIC_LOCAL(FontCache, globalFontCache, ());
98 return &globalFontCache; 98 return &globalFontCache;
99 } 99 }
100 100
101 static bool isSystemFontFamily(const FontFaceCreationParams& creationParams) {
102 #if OS(MACOSX)
103 return creationParams.creationType() == CreateFontByFamily &&
104 (creationParams.family() == FontFamilyNames::system_ui ||
105 creationParams.family() == FontCache::legacySystemFontFamily());
106 #else
107 return creationParams.creationType() == CreateFontByFamily &&
108 creationParams.family() == FontFamilyNames::system_ui;
109 #endif
110 }
111
101 FontPlatformData* FontCache::getFontPlatformData( 112 FontPlatformData* FontCache::getFontPlatformData(
102 const FontDescription& fontDescription, 113 const FontDescription& fontDescription,
103 const FontFaceCreationParams& creationParams, 114 const FontFaceCreationParams& originalCreationParams,
104 bool checkingAlternateName) { 115 bool checkingAlternateName) {
105 if (!gFontPlatformDataCache) { 116 if (!gFontPlatformDataCache) {
106 gFontPlatformDataCache = new FontPlatformDataCache; 117 gFontPlatformDataCache = new FontPlatformDataCache;
107 platformInit(); 118 platformInit();
108 } 119 }
109 120
110 float size = fontDescription.effectiveFontSize(); 121 float size = fontDescription.effectiveFontSize();
122 const FontFaceCreationParams& creationParams =
123 isSystemFontFamily(originalCreationParams)
124 ? FontFaceCreationParams(systemFontFamily(size))
125 : originalCreationParams;
111 unsigned roundedSize = size * FontCacheKey::precisionMultiplier(); 126 unsigned roundedSize = size * FontCacheKey::precisionMultiplier();
112 FontCacheKey key = fontDescription.cacheKey(creationParams); 127 FontCacheKey key = fontDescription.cacheKey(creationParams);
113 128
114 // Remove the font size from the cache key, and handle the font size 129 // Remove the font size from the cache key, and handle the font size
115 // separately in the inner HashMap. So that different size of FontPlatformData 130 // separately in the inner HashMap. So that different size of FontPlatformData
116 // can share underlying SkTypeface. 131 // can share underlying SkTypeface.
117 if (RuntimeEnabledFeatures::fontCacheScalingEnabled()) 132 if (RuntimeEnabledFeatures::fontCacheScalingEnabled())
118 key.clearFontSize(); 133 key.clearFontSize();
119 134
120 FontPlatformData* result; 135 FontPlatformData* result;
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 #if ENABLE(ASSERT) 279 #if ENABLE(ASSERT)
265 if (shouldRetain == DoNotRetain) 280 if (shouldRetain == DoNotRetain)
266 ASSERT(m_purgePreventCount); 281 ASSERT(m_purgePreventCount);
267 #endif 282 #endif
268 283
269 return gFontDataCache->get(platformData, shouldRetain); 284 return gFontDataCache->get(platformData, shouldRetain);
270 } 285 }
271 286
272 bool FontCache::isPlatformFontAvailable(const FontDescription& fontDescription, 287 bool FontCache::isPlatformFontAvailable(const FontDescription& fontDescription,
273 const AtomicString& family) { 288 const AtomicString& family) {
289 if (family == FontFamilyNames::system_ui)
290 return true;
291 #if OS(MACOSX)
292 if (family == FontCache::legacySystemFontFamily())
293 return true;
294 #endif
274 bool checkingAlternateName = true; 295 bool checkingAlternateName = true;
275 return getFontPlatformData( 296 return getFontPlatformData(
276 fontDescription, 297 fontDescription,
277 FontFaceCreationParams(adjustFamilyNameToAvoidUnsupportedFonts(family)), 298 FontFaceCreationParams(adjustFamilyNameToAvoidUnsupportedFonts(family)),
278 checkingAlternateName); 299 checkingAlternateName);
279 } 300 }
280 301
281 SimpleFontData* FontCache::getNonRetainedLastResortFallbackFont( 302 SimpleFontData* FontCache::getNonRetainedLastResortFallbackFont(
282 const FontDescription& fontDescription) { 303 const FontDescription& fontDescription) {
283 return getLastResortFallbackFont(fontDescription, DoNotRetain).leakRef(); 304 return getLastResortFallbackFont(fontDescription, DoNotRetain).leakRef();
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
449 for (iter = gFallbackListShaperCache->begin(); 470 for (iter = gFallbackListShaperCache->begin();
450 iter != gFallbackListShaperCache->end(); ++iter) { 471 iter != gFallbackListShaperCache->end(); ++iter) {
451 shapeResultCacheSize += iter->value->byteSize(); 472 shapeResultCacheSize += iter->value->byteSize();
452 } 473 }
453 dump->AddScalar("size", "bytes", shapeResultCacheSize); 474 dump->AddScalar("size", "bytes", shapeResultCacheSize);
454 memoryDump->AddSuballocation(dump->guid(), 475 memoryDump->AddSuballocation(dump->guid(),
455 WTF::Partitions::kAllocatedObjectPoolName); 476 WTF::Partitions::kAllocatedObjectPoolName);
456 } 477 }
457 478
458 } // namespace blink 479 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698