Index: Source/core/platform/graphics/GlyphPageTreeNode.cpp |
diff --git a/Source/core/platform/graphics/GlyphPageTreeNode.cpp b/Source/core/platform/graphics/GlyphPageTreeNode.cpp |
index 7a23d137d085c2cc762e9a031ec44be51a346d5e..23a66b7567877fb2c923a652fd6ac4ac08303174 100644 |
--- a/Source/core/platform/graphics/GlyphPageTreeNode.cpp |
+++ b/Source/core/platform/graphics/GlyphPageTreeNode.cpp |
@@ -226,6 +226,14 @@ void GlyphPageTreeNode::initializePage(const FontData* fontData, unsigned pageNu |
int from = max(0, static_cast<int>(range.from()) - static_cast<int>(start)); |
int to = 1 + min(static_cast<int>(range.to()) - static_cast<int>(start), static_cast<int>(GlyphPage::size) - 1); |
if (from < static_cast<int>(GlyphPage::size) && to > 0) { |
+ // If this is a custom font needs to be loaded, kick off |
+ // the load here, and do not fill the page so that |
+ // font fallback is used while loading. |
+ if (range.fontData()->isLoadingFallback()) { |
+ range.fontData()->beginLoadIfNeeded(); |
+ continue; |
+ } |
+ |
if (haveGlyphs && !scratchPage) { |
scratchPage = GlyphPage::createForMixedFontData(this); |
pageToFill = scratchPage.get(); |