| Index: Source/core/css/CSSSegmentedFontFace.cpp
|
| diff --git a/Source/core/css/CSSSegmentedFontFace.cpp b/Source/core/css/CSSSegmentedFontFace.cpp
|
| index cabce858a839c7f55856833155a24d1336e1f227..82cfdfceb043efe0fa6c3decbafb550ec537ceef 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,10 @@ bool CSSSegmentedFontFace::checkFont() const
|
|
|
| void CSSSegmentedFontFace::loadFont(const FontDescription& fontDescription, PassRefPtr<LoadFontCallback> callback)
|
| {
|
| - getFontData(fontDescription); // Kick off the load.
|
| + RefPtr<SegmentedFontData> fontData = toSegmentedFontData(getFontData(fontDescription).get());
|
| + unsigned numRanges = fontData->numRanges();
|
| + for (unsigned i = 0; i < numRanges; i++)
|
| + fontData->rangeAt(i).fontData()->beginLoadIfNeeded();
|
|
|
| if (callback) {
|
| if (isLoading())
|
|
|