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

Side by Side Diff: third_party/WebKit/Source/platform/fonts/mac/FontCacheMac.mm

Issue 2581083003: Initial OpenType Font Variations Support (Closed)
Patch Set: Fix hash collision tests, adjust test expectations Created 4 years 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 Apple Inc. All rights reserved. 2 * Copyright (C) 2006, 2007, 2008, 2009 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 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 // Bold emoji look the same as normal emoji, so syntheticBold isn't needed. 209 // Bold emoji look the same as normal emoji, so syntheticBold isn't needed.
210 bool syntheticBold = 210 bool syntheticBold =
211 isAppKitFontWeightBold(weight) && 211 isAppKitFontWeightBold(weight) &&
212 !isAppKitFontWeightBold(substituteFontWeight) && 212 !isAppKitFontWeightBold(substituteFontWeight) &&
213 ![substituteFont.familyName isEqual:@"Apple Color Emoji"]; 213 ![substituteFont.familyName isEqual:@"Apple Color Emoji"];
214 214
215 FontPlatformData alternateFont( 215 FontPlatformData alternateFont(
216 substituteFont, platformData.size(), syntheticBold, 216 substituteFont, platformData.size(), syntheticBold,
217 (traits & NSFontItalicTrait) && 217 (traits & NSFontItalicTrait) &&
218 !(substituteFontTraits & NSFontItalicTrait), 218 !(substituteFontTraits & NSFontItalicTrait),
219 platformData.orientation()); 219 platformData.orientation(),
220 nullptr); // No variation paramaters in fallback.
220 221
221 return fontDataFromFontPlatformData(&alternateFont, DoNotRetain); 222 return fontDataFromFontPlatformData(&alternateFont, DoNotRetain);
222 } 223 }
223 224
224 PassRefPtr<SimpleFontData> FontCache::getLastResortFallbackFont( 225 PassRefPtr<SimpleFontData> FontCache::getLastResortFallbackFont(
225 const FontDescription& fontDescription, 226 const FontDescription& fontDescription,
226 ShouldRetain shouldRetain) { 227 ShouldRetain shouldRetain) {
227 DEFINE_STATIC_LOCAL(AtomicString, timesStr, ("Times")); 228 DEFINE_STATIC_LOCAL(AtomicString, timesStr, ("Times"));
228 229
229 // FIXME: Would be even better to somehow get the user's default font here. 230 // FIXME: Would be even better to somehow get the user's default font here.
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 fontDescription.isSyntheticBold(); 275 fontDescription.isSyntheticBold();
275 276
276 bool syntheticItalic = 277 bool syntheticItalic =
277 ((traits & NSFontItalicTrait) && !(actualTraits & NSFontItalicTrait)) || 278 ((traits & NSFontItalicTrait) && !(actualTraits & NSFontItalicTrait)) ||
278 fontDescription.isSyntheticItalic(); 279 fontDescription.isSyntheticItalic();
279 280
280 // FontPlatformData::typeface() is null in the case of Chromium out-of-process 281 // FontPlatformData::typeface() is null in the case of Chromium out-of-process
281 // font loading failing. Out-of-process loading occurs for registered fonts 282 // font loading failing. Out-of-process loading occurs for registered fonts
282 // stored in non-system locations. When loading fails, we do not want to use 283 // stored in non-system locations. When loading fails, we do not want to use
283 // the returned FontPlatformData since it will not have a valid SkTypeface. 284 // the returned FontPlatformData since it will not have a valid SkTypeface.
284 std::unique_ptr<FontPlatformData> platformData = WTF::wrapUnique( 285 std::unique_ptr<FontPlatformData> platformData =
285 new FontPlatformData(platformFont, size, syntheticBold, syntheticItalic, 286 WTF::wrapUnique(new FontPlatformData(
kojii 2016/12/21 14:53:12 nit: nice to change to makeUnique in this opportun
drott 2016/12/21 15:22:00 Done.
286 fontDescription.orientation())); 287 platformFont, size, syntheticBold, syntheticItalic,
288 fontDescription.orientation(), fontDescription.variationSettings()));
287 if (!platformData->typeface()) { 289 if (!platformData->typeface()) {
288 return nullptr; 290 return nullptr;
289 } 291 }
290 return platformData; 292 return platformData;
291 } 293 }
292 294
293 } // namespace blink 295 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698