Chromium Code Reviews| Index: Source/core/css/CSSSegmentedFontFace.cpp |
| diff --git a/Source/core/css/CSSSegmentedFontFace.cpp b/Source/core/css/CSSSegmentedFontFace.cpp |
| index 515d6f6382f9f13e8c5bf18037084ce0a30c4d23..211e93a9ee4846d66ba6248ad6f6c5553cd7ed3a 100644 |
| --- a/Source/core/css/CSSSegmentedFontFace.cpp |
| +++ b/Source/core/css/CSSSegmentedFontFace.cpp |
| @@ -92,14 +92,9 @@ void CSSSegmentedFontFace::appendFontFace(PassRefPtr<CSSFontFace> fontFace) |
| m_fontFaces.append(fontFace); |
| } |
| -static void appendFontDataWithInvalidUnicodeRangeIfLoading(SegmentedFontData* newFontData, PassRefPtr<SimpleFontData> prpFaceFontData, const Vector<CSSFontFace::UnicodeRange>& ranges) |
| +static void appendFontData(SegmentedFontData* newFontData, PassRefPtr<SimpleFontData> prpFaceFontData, const Vector<CSSFontFace::UnicodeRange>& ranges) |
| { |
| RefPtr<SimpleFontData> faceFontData = prpFaceFontData; |
| - if (faceFontData->isLoading()) { |
| - newFontData->appendRange(FontDataRange(0, 0, faceFontData)); |
| - return; |
| - } |
| - |
| unsigned numRanges = ranges.size(); |
| if (!numRanges) { |
| newFontData->appendRange(FontDataRange(0, 0x7FFFFFFF, faceFontData)); |
| @@ -136,7 +131,7 @@ PassRefPtr<FontData> CSSSegmentedFontFace::getFontData(const FontDescription& fo |
| continue; |
| if (RefPtr<SimpleFontData> faceFontData = m_fontFaces[i]->getFontData(fontDescription, syntheticBold, syntheticItalic)) { |
| ASSERT(!faceFontData->isSegmented()); |
| - appendFontDataWithInvalidUnicodeRangeIfLoading(fontData.get(), faceFontData.release(), m_fontFaces[i]->ranges()); |
| + appendFontData(fontData.get(), faceFontData.release(), m_fontFaces[i]->ranges()); |
| } |
| } |
| if (fontData->numRanges()) |
| @@ -184,7 +179,12 @@ bool CSSSegmentedFontFace::checkFont() const |
| void CSSSegmentedFontFace::loadFont(const FontDescription& fontDescription, PassRefPtr<LoadFontCallback> callback) |
| { |
| - getFontData(fontDescription); // Kick off the load. |
| + RefPtr<FontData> fontData = getFontData(fontDescription); |
| + ASSERT(fontData->isSegmented()); |
| + SegmentedFontData* segmentedFontData = static_cast<SegmentedFontData*>(fontData.get()); |
|
eseidel
2013/09/16 17:20:17
Do we have a toSegmentedFontData()?
Kunihiko Sakamoto
2013/09/17 06:16:30
Added.
|
| + unsigned numRanges = segmentedFontData->numRanges(); |
| + for (unsigned i = 0; i < numRanges; i++) |
| + segmentedFontData->rangeAt(i).fontData()->beginLoadIfNeeded(); |
| if (callback) { |
| if (isLoading()) |