Index: Source/platform/fonts/FontFallbackList.cpp |
diff --git a/Source/platform/fonts/FontFallbackList.cpp b/Source/platform/fonts/FontFallbackList.cpp |
index d8eb999702eb9a4d9966a73bb086c4fe1a0bad31..b08441d13815cfedfded42bc0000d0dc5575ba34 100644 |
--- a/Source/platform/fonts/FontFallbackList.cpp |
+++ b/Source/platform/fonts/FontFallbackList.cpp |
@@ -46,6 +46,7 @@ FontFallbackList::FontFallbackList() |
, m_familyIndex(0) |
, m_generation(FontCache::fontCache()->generation()) |
, m_hasLoadingFallback(false) |
+ , m_hasCustomFont(false) |
{ |
} |
@@ -58,6 +59,7 @@ void FontFallbackList::invalidate(PassRefPtrWillBeRawPtr<FontSelector> fontSelec |
m_cachedPrimarySimpleFontData = 0; |
m_familyIndex = 0; |
m_hasLoadingFallback = false; |
+ m_hasCustomFont = false; |
m_fontSelector = fontSelector; |
m_fontSelectorVersion = m_fontSelector ? m_fontSelector->version() : 0; |
m_generation = FontCache::fontCache()->generation(); |
@@ -90,14 +92,15 @@ bool FontFallbackList::loadingCustomFonts() const |
bool FontFallbackList::shouldSkipDrawing() const |
{ |
- if (!m_hasLoadingFallback) |
- return false; |
- |
- unsigned numFonts = m_fontList.size(); |
- for (unsigned i = 0; i < numFonts; ++i) { |
- if (m_fontList[i]->shouldSkipDrawing()) |
- return true; |
+ if (m_hasLoadingFallback) { |
+ unsigned numFonts = m_fontList.size(); |
+ for (unsigned i = 0; i < numFonts; ++i) { |
+ if (m_fontList[i]->shouldSkipDrawing()) |
+ return true; |
+ } |
} |
+ if (m_fontSelector) |
+ m_fontSelector->reportFirstNonBlankText(m_hasCustomFont); |
return false; |
} |
@@ -210,6 +213,8 @@ const FontData* FontFallbackList::fontDataAt(const FontDescription& fontDescript |
m_fontList.append(result); |
if (result->isLoadingFallback()) |
m_hasLoadingFallback = true; |
+ if (result->isCustomFont()) |
+ m_hasCustomFont = true; |
} |
return result.get(); |
} |