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

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

Issue 275913005: Remove usePrinterFont() property of FontDescription (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebaselinining small caps cases, and subpixel virtual set Created 6 years, 7 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 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 13 matching lines...) Expand all
24 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
25 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 */ 28 */
29 29
30 #import "config.h" 30 #import "config.h"
31 #import "platform/fonts/FontCache.h" 31 #import "platform/fonts/FontCache.h"
32 32
33 #import <AppKit/AppKit.h> 33 #import <AppKit/AppKit.h>
34 #import "platform/LayoutTestSupport.h"
34 #import "platform/fonts/FontDescription.h" 35 #import "platform/fonts/FontDescription.h"
35 #import "platform/fonts/FontPlatformData.h" 36 #import "platform/fonts/FontPlatformData.h"
36 #import "platform/fonts/SimpleFontData.h" 37 #import "platform/fonts/SimpleFontData.h"
37 #import "platform/mac/WebFontCache.h" 38 #import "platform/mac/WebFontCache.h"
38 #import <wtf/MainThread.h> 39 #import <wtf/MainThread.h>
39 #import <wtf/StdLibExtras.h> 40 #import <wtf/StdLibExtras.h>
40 41
41 // Forward declare Mac SPIs. 42 // Forward declare Mac SPIs.
42 // Request for public API: rdar://13803570 43 // Request for public API: rdar://13803570
43 @interface NSFont (WebKitSPI) 44 @interface NSFont (WebKitSPI)
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 NSInteger substituteFontWeight = [fontManager weightOfFont:substituteFont]; 154 NSInteger substituteFontWeight = [fontManager weightOfFont:substituteFont];
154 155
155 if (traits != substituteFontTraits || weight != substituteFontWeight || !nsF ont) { 156 if (traits != substituteFontTraits || weight != substituteFontWeight || !nsF ont) {
156 if (NSFont *bestVariation = [fontManager fontWithFamily:[substituteFont familyName] traits:traits weight:weight size:size]) { 157 if (NSFont *bestVariation = [fontManager fontWithFamily:[substituteFont familyName] traits:traits weight:weight size:size]) {
157 if (!nsFont || (([fontManager traitsOfFont:bestVariation] != substit uteFontTraits || [fontManager weightOfFont:bestVariation] != substituteFontWeigh t) 158 if (!nsFont || (([fontManager traitsOfFont:bestVariation] != substit uteFontTraits || [fontManager weightOfFont:bestVariation] != substituteFontWeigh t)
158 && [[bestVariation coveredCharacterSet] longCharacterIsMember:ch aracter])) 159 && [[bestVariation coveredCharacterSet] longCharacterIsMember:ch aracter]))
159 substituteFont = bestVariation; 160 substituteFont = bestVariation;
160 } 161 }
161 } 162 }
162 163
163 substituteFont = fontDescription.usePrinterFont() ? [substituteFont printerF ont] : [substituteFont screenFont]; 164 // Enable hinting, which is equivalent to using the screen font,
165 // only when running the set of standard non-subpixel layout tests,
166 // otherwise use subpixel glyph positioning.
167 substituteFont = !isRunningLayoutTest() || isFontAntialiasingEnabledForTest( ) ? [substituteFont printerFont] : [substituteFont screenFont];
164 168
165 substituteFontTraits = [fontManager traitsOfFont:substituteFont]; 169 substituteFontTraits = [fontManager traitsOfFont:substituteFont];
166 substituteFontWeight = [fontManager weightOfFont:substituteFont]; 170 substituteFontWeight = [fontManager weightOfFont:substituteFont];
167 171
168 FontPlatformData alternateFont(substituteFont, platformData.size(), platform Data.isPrinterFont(), 172 FontPlatformData alternateFont(substituteFont, platformData.size(),
169 isAppKitFontWeightBold(weight) && !isAppKitFontWeightBold(substituteFont Weight), 173 isAppKitFontWeightBold(weight) && !isAppKitFontWeightBold(substituteFont Weight),
170 (traits & NSFontItalicTrait) && !(substituteFontTraits & NSFontItalicTra it), 174 (traits & NSFontItalicTrait) && !(substituteFontTraits & NSFontItalicTra it),
171 platformData.m_orientation); 175 platformData.m_orientation);
172 176
173 return fontDataFromFontPlatformData(&alternateFont, DoNotRetain); 177 return fontDataFromFontPlatformData(&alternateFont, DoNotRetain);
174 } 178 }
175 179
176 PassRefPtr<SimpleFontData> FontCache::getLastResortFallbackFont(const FontDescri ption& fontDescription, ShouldRetain shouldRetain) 180 PassRefPtr<SimpleFontData> FontCache::getLastResortFallbackFont(const FontDescri ption& fontDescription, ShouldRetain shouldRetain)
177 { 181 {
178 DEFINE_STATIC_LOCAL(AtomicString, timesStr, ("Times", AtomicString::Construc tFromLiteral)); 182 DEFINE_STATIC_LOCAL(AtomicString, timesStr, ("Times", AtomicString::Construc tFromLiteral));
(...skipping 21 matching lines...) Expand all
200 NSFont *nsFont = [WebFontCache fontWithFamily:family traits:traits weight:we ight size:size]; 204 NSFont *nsFont = [WebFontCache fontWithFamily:family traits:traits weight:we ight size:size];
201 if (!nsFont) 205 if (!nsFont)
202 return 0; 206 return 0;
203 207
204 NSFontManager *fontManager = [NSFontManager sharedFontManager]; 208 NSFontManager *fontManager = [NSFontManager sharedFontManager];
205 NSFontTraitMask actualTraits = 0; 209 NSFontTraitMask actualTraits = 0;
206 if (fontDescription.style()) 210 if (fontDescription.style())
207 actualTraits = [fontManager traitsOfFont:nsFont]; 211 actualTraits = [fontManager traitsOfFont:nsFont];
208 NSInteger actualWeight = [fontManager weightOfFont:nsFont]; 212 NSInteger actualWeight = [fontManager weightOfFont:nsFont];
209 213
210 NSFont *platformFont = fontDescription.usePrinterFont() ? [nsFont printerFon t] : [nsFont screenFont]; 214 // Enable hinting, which is equivalent to using the screen font,
215 // only when running the set of standard non-subpixel layout tests,
216 // otherwise use subpixel glyph positioning.
217 NSFont *platformFont = !isRunningLayoutTest() || isFontAntialiasingEnabledFo rTest() ? [nsFont printerFont] : [nsFont screenFont];
211 bool syntheticBold = (isAppKitFontWeightBold(weight) && !isAppKitFontWeightB old(actualWeight)) || fontDescription.isSyntheticBold(); 218 bool syntheticBold = (isAppKitFontWeightBold(weight) && !isAppKitFontWeightB old(actualWeight)) || fontDescription.isSyntheticBold();
212 bool syntheticOblique = ((traits & NSFontItalicTrait) && !(actualTraits & NS FontItalicTrait)) || fontDescription.isSyntheticItalic(); 219 bool syntheticOblique = ((traits & NSFontItalicTrait) && !(actualTraits & NS FontItalicTrait)) || fontDescription.isSyntheticItalic();
213 220
214 // FontPlatformData::font() can be null for the case of Chromium out-of-proc ess font loading. 221 // FontPlatformData::font() can be null for the case of Chromium out-of-proc ess font loading.
215 // In that case, we don't want to use the platformData. 222 // In that case, we don't want to use the platformData.
216 OwnPtr<FontPlatformData> platformData = adoptPtr(new FontPlatformData(platfo rmFont, size, fontDescription.usePrinterFont(), syntheticBold, syntheticOblique, fontDescription.orientation(), fontDescription.widthVariant())); 223 OwnPtr<FontPlatformData> platformData = adoptPtr(new FontPlatformData(platfo rmFont, size, syntheticBold, syntheticOblique, fontDescription.orientation(), fo ntDescription.widthVariant()));
217 if (!platformData->font()) 224 if (!platformData->font())
218 return 0; 225 return 0;
219 return platformData.leakPtr(); 226 return platformData.leakPtr();
220 } 227 }
221 228
222 } // namespace WebCore 229 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/platform/fonts/mac/ComplexTextControllerCoreText.mm ('k') | Source/platform/fonts/mac/SimpleFontDataMac.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698