| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2007, 2008, 2010, 2011 Apple Inc. All rights reserved. | 2 * Copyright (C) 2007, 2008, 2010, 2011 Apple 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 | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 119 void CSSFontFaceSource::fontLoaded(FontResource*) | 119 void CSSFontFaceSource::fontLoaded(FontResource*) |
| 120 { | 120 { |
| 121 if (!m_fontDataTable.isEmpty()) | 121 if (!m_fontDataTable.isEmpty()) |
| 122 m_histograms.recordRemoteFont(m_font.get()); | 122 m_histograms.recordRemoteFont(m_font.get()); |
| 123 | 123 |
| 124 pruneTable(); | 124 pruneTable(); |
| 125 if (m_face) | 125 if (m_face) |
| 126 m_face->fontLoaded(this); | 126 m_face->fontLoaded(this); |
| 127 } | 127 } |
| 128 | 128 |
| 129 void CSSFontFaceSource::fontLoadWaitLimitExceeded(FontResource*) |
| 130 { |
| 131 pruneTable(); |
| 132 if (m_face) |
| 133 m_face->fontLoadWaitLimitExceeded(this); |
| 134 } |
| 135 |
| 129 PassRefPtr<SimpleFontData> CSSFontFaceSource::getFontData(const FontDescription&
fontDescription) | 136 PassRefPtr<SimpleFontData> CSSFontFaceSource::getFontData(const FontDescription&
fontDescription) |
| 130 { | 137 { |
| 131 // If the font hasn't loaded or an error occurred, then we've got nothing. | 138 // If the font hasn't loaded or an error occurred, then we've got nothing. |
| 132 if (!isValid()) | 139 if (!isValid()) |
| 133 return nullptr; | 140 return nullptr; |
| 134 | 141 |
| 135 if (isLocal()) { | 142 if (isLocal()) { |
| 136 // We're local. Just return a SimpleFontData from the normal cache. | 143 // We're local. Just return a SimpleFontData from the normal cache. |
| 137 // We don't want to check alternate font family names here, so pass true
as the checkingAlternateName parameter. | 144 // We don't want to check alternate font family names here, so pass true
as the checkingAlternateName parameter. |
| 138 RefPtr<SimpleFontData> fontData = FontCache::fontCache()->getFontData(fo
ntDescription, m_string, true); | 145 RefPtr<SimpleFontData> fontData = FontCache::fontCache()->getFontData(fo
ntDescription, m_string, true); |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 216 #endif | 223 #endif |
| 217 } | 224 } |
| 218 } else { | 225 } else { |
| 219 // This temporary font is not retained and should not be returned. | 226 // This temporary font is not retained and should not be returned. |
| 220 FontCachePurgePreventer fontCachePurgePreventer; | 227 FontCachePurgePreventer fontCachePurgePreventer; |
| 221 SimpleFontData* temporaryFont = FontCache::fontCache()->getNonRetainedLa
stResortFallbackFont(fontDescription); | 228 SimpleFontData* temporaryFont = FontCache::fontCache()->getNonRetainedLa
stResortFallbackFont(fontDescription); |
| 222 if (!temporaryFont) { | 229 if (!temporaryFont) { |
| 223 ASSERT_NOT_REACHED(); | 230 ASSERT_NOT_REACHED(); |
| 224 return nullptr; | 231 return nullptr; |
| 225 } | 232 } |
| 226 RefPtr<CSSCustomFontData> cssFontData = CSSCustomFontData::create(true); | 233 RefPtr<CSSCustomFontData> cssFontData = CSSCustomFontData::create(true,
m_font->exceedsFontLoadWaitLimit() ? CustomFontData::VisibleFallback : CustomFon
tData::InvisibleFallback); |
| 227 cssFontData->setCSSFontFaceSource(this); | 234 cssFontData->setCSSFontFaceSource(this); |
| 228 fontData = SimpleFontData::create(temporaryFont->platformData(), cssFont
Data); | 235 fontData = SimpleFontData::create(temporaryFont->platformData(), cssFont
Data); |
| 229 } | 236 } |
| 230 | 237 |
| 231 return fontData; // No release, because fontData is a reference to a RefPtr
that is held in the m_fontDataTable. | 238 return fontData; // No release, because fontData is a reference to a RefPtr
that is held in the m_fontDataTable. |
| 232 } | 239 } |
| 233 | 240 |
| 234 #if ENABLE(SVG_FONTS) | 241 #if ENABLE(SVG_FONTS) |
| 235 SVGFontFaceElement* CSSFontFaceSource::svgFontFaceElement() const | 242 SVGFontFaceElement* CSSFontFaceSource::svgFontFaceElement() const |
| 236 { | 243 { |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 312 if (size < 50 * 1024) | 319 if (size < 50 * 1024) |
| 313 return "WebFont.DownloadTime.1.10KBTo50KB"; | 320 return "WebFont.DownloadTime.1.10KBTo50KB"; |
| 314 if (size < 100 * 1024) | 321 if (size < 100 * 1024) |
| 315 return "WebFont.DownloadTime.2.50KBTo100KB"; | 322 return "WebFont.DownloadTime.2.50KBTo100KB"; |
| 316 if (size < 1024 * 1024) | 323 if (size < 1024 * 1024) |
| 317 return "WebFont.DownloadTime.3.100KBTo1MB"; | 324 return "WebFont.DownloadTime.3.100KBTo1MB"; |
| 318 return "WebFont.DownloadTime.4.Over1MB"; | 325 return "WebFont.DownloadTime.4.Over1MB"; |
| 319 } | 326 } |
| 320 | 327 |
| 321 } | 328 } |
| OLD | NEW |