OLD | NEW |
1 /* | 1 /* |
2 * This file is part of the internal font implementation. | 2 * This file is part of the internal font implementation. |
3 * | 3 * |
4 * Copyright (C) 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved. | 4 * Copyright (C) 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved. |
5 * Copyright (c) 2010 Google Inc. All rights reserved. | 5 * Copyright (c) 2010 Google Inc. All rights reserved. |
6 * | 6 * |
7 * This library is free software; you can redistribute it and/or | 7 * This library is free software; you can redistribute it and/or |
8 * modify it under the terms of the GNU Library General Public | 8 * modify it under the terms of the GNU Library General Public |
9 * License as published by the Free Software Foundation; either | 9 * License as published by the Free Software Foundation; either |
10 * version 2 of the License, or (at your option) any later version. | 10 * version 2 of the License, or (at your option) any later version. |
11 * | 11 * |
12 * This library is distributed in the hope that it will be useful, | 12 * This library is distributed in the hope that it will be useful, |
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
15 * Library General Public License for more details. | 15 * Library General Public License for more details. |
16 * | 16 * |
17 * You should have received a copy of the GNU Library General Public License | 17 * You should have received a copy of the GNU Library General Public License |
18 * along with this library; see the file COPYING.LIB. If not, write to | 18 * along with this library; see the file COPYING.LIB. If not, write to |
19 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | 19 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
20 * Boston, MA 02110-1301, USA. | 20 * Boston, MA 02110-1301, USA. |
21 * | 21 * |
22 */ | 22 */ |
23 | 23 |
24 #import "platform/fonts/FontPlatformData.h" | 24 #import "platform/fonts/FontPlatformData.h" |
25 | 25 |
26 #import "platform/LayoutTestSupport.h" | 26 #import "platform/LayoutTestSupport.h" |
27 #import "platform/fonts/Font.h" | 27 #import "platform/fonts/Font.h" |
28 #import "platform/fonts/shaping/HarfBuzzFace.h" | 28 #import "platform/fonts/shaping/HarfBuzzFace.h" |
| 29 #import "platform/graphics/skia/SkiaUtils.h" |
29 #import "public/platform/Platform.h" | 30 #import "public/platform/Platform.h" |
30 #import "public/platform/mac/WebSandboxSupport.h" | 31 #import "public/platform/mac/WebSandboxSupport.h" |
31 #import "third_party/skia/include/ports/SkTypeface_mac.h" | 32 #import "third_party/skia/include/ports/SkTypeface_mac.h" |
32 #import "wtf/RetainPtr.h" | 33 #import "wtf/RetainPtr.h" |
33 #import "wtf/text/WTFString.h" | 34 #import "wtf/text/WTFString.h" |
34 #import <AppKit/NSFont.h> | 35 #import <AppKit/NSFont.h> |
35 #import <AvailabilityMacros.h> | 36 #import <AvailabilityMacros.h> |
36 | 37 |
37 namespace blink { | 38 namespace blink { |
38 | 39 |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
125 | 126 |
126 if (LayoutTestSupport::isRunningLayoutTest()) { | 127 if (LayoutTestSupport::isRunningLayoutTest()) { |
127 shouldSmoothFonts = false; | 128 shouldSmoothFonts = false; |
128 shouldAntialias = shouldAntialias && LayoutTestSupport::isFontAntialiasi
ngEnabledForTest(); | 129 shouldAntialias = shouldAntialias && LayoutTestSupport::isFontAntialiasi
ngEnabledForTest(); |
129 } | 130 } |
130 | 131 |
131 paint->setAntiAlias(shouldAntialias); | 132 paint->setAntiAlias(shouldAntialias); |
132 paint->setEmbeddedBitmapText(false); | 133 paint->setEmbeddedBitmapText(false); |
133 const float ts = m_textSize >= 0 ? m_textSize : 12; | 134 const float ts = m_textSize >= 0 ? m_textSize : 12; |
134 paint->setTextSize(SkFloatToScalar(ts)); | 135 paint->setTextSize(SkFloatToScalar(ts)); |
135 paint->setTypeface(typeface()); | 136 paint->setTypeface(toSkSp(m_typeface)); |
136 paint->setFakeBoldText(m_syntheticBold); | 137 paint->setFakeBoldText(m_syntheticBold); |
137 paint->setTextSkewX(m_syntheticItalic ? -SK_Scalar1 / 4 : 0); | 138 paint->setTextSkewX(m_syntheticItalic ? -SK_Scalar1 / 4 : 0); |
138 paint->setLCDRenderText(shouldSmoothFonts); | 139 paint->setLCDRenderText(shouldSmoothFonts); |
139 paint->setSubpixelText(true); | 140 paint->setSubpixelText(true); |
140 | 141 |
141 // When rendering using CoreGraphics, disable hinting when webkit-font-smoot
hing:antialiased or | 142 // When rendering using CoreGraphics, disable hinting when webkit-font-smoot
hing:antialiased or |
142 // text-rendering:geometricPrecision is used. | 143 // text-rendering:geometricPrecision is used. |
143 // See crbug.com/152304 | 144 // See crbug.com/152304 |
144 if (font && (font->getFontDescription().fontSmoothing() == Antialiased || fo
nt->getFontDescription().textRendering() == GeometricPrecision)) | 145 if (font && (font->getFontDescription().fontSmoothing() == Antialiased || fo
nt->getFontDescription().textRendering() == GeometricPrecision)) |
145 paint->setHinting(SkPaint::kNo_Hinting); | 146 paint->setHinting(SkPaint::kNo_Hinting); |
(...skipping 11 matching lines...) Expand all Loading... |
157 m_typeface = adoptRef(SkCreateTypefaceFromCTFont(toCTFontRef(nsFont))); | 158 m_typeface = adoptRef(SkCreateTypefaceFromCTFont(toCTFontRef(nsFont))); |
158 } else { | 159 } else { |
159 // In process loading fails for cases where third party font manager sof
tware | 160 // In process loading fails for cases where third party font manager sof
tware |
160 // registers fonts in non system locations such as /Library/Fonts | 161 // registers fonts in non system locations such as /Library/Fonts |
161 // and ~/Library Fonts, see crbug.com/72727 or crbug.com/108645. | 162 // and ~/Library Fonts, see crbug.com/72727 or crbug.com/108645. |
162 m_typeface = loadFromBrowserProcess(nsFont, size); | 163 m_typeface = loadFromBrowserProcess(nsFont, size); |
163 } | 164 } |
164 } | 165 } |
165 | 166 |
166 } // namespace blink | 167 } // namespace blink |
OLD | NEW |