| Index: Source/core/platform/graphics/SimpleFontData.cpp | 
| diff --git a/Source/core/platform/graphics/SimpleFontData.cpp b/Source/core/platform/graphics/SimpleFontData.cpp | 
| index 7276f15eea7fdf515f590afe3cdb671ab0e07bdb..8dcc30f78a7955b0f368b3018b7edf9b10fcd9d9 100644 | 
| --- a/Source/core/platform/graphics/SimpleFontData.cpp | 
| +++ b/Source/core/platform/graphics/SimpleFontData.cpp | 
| @@ -30,6 +30,7 @@ | 
| #include "config.h" | 
| #include "core/platform/graphics/SimpleFontData.h" | 
|  | 
| +#include "core/css/CSSFontFaceSource.h" | 
| #include "core/platform/graphics/opentype/OpenTypeVerticalData.h" | 
|  | 
| #include "wtf/MathExtras.h" | 
| @@ -42,19 +43,18 @@ namespace WebCore { | 
| const float smallCapsFontSizeMultiplier = 0.7f; | 
| const float emphasisMarkFontSizeMultiplier = 0.5f; | 
|  | 
| -SimpleFontData::SimpleFontData(const FontPlatformData& platformData, bool isCustomFont, bool isLoading, bool isTextOrientationFallback) | 
| +SimpleFontData::SimpleFontData(const FontPlatformData& platformData, bool isCustomFont, bool isLoadingFallback, bool isTextOrientationFallback) | 
| : m_maxCharWidth(-1) | 
| , m_avgCharWidth(-1) | 
| , m_platformData(platformData) | 
| , m_treatAsFixedPitch(false) | 
| -    , m_isCustomFont(isCustomFont) | 
| -    , m_isLoading(isLoading) | 
| , m_isTextOrientationFallback(isTextOrientationFallback) | 
| , m_isBrokenIdeographFallback(false) | 
| #if ENABLE(OPENTYPE_VERTICAL) | 
| , m_verticalData(0) | 
| #endif | 
| , m_hasVerticalGlyphs(false) | 
| +    , m_customFontData(isCustomFont, isLoadingFallback) | 
| { | 
| platformInit(); | 
| platformGlyphInit(); | 
| @@ -71,14 +71,13 @@ SimpleFontData::SimpleFontData(PassOwnPtr<AdditionalFontData> fontData, float fo | 
| : m_platformData(FontPlatformData(fontSize, syntheticBold, syntheticItalic)) | 
| , m_fontData(fontData) | 
| , m_treatAsFixedPitch(false) | 
| -    , m_isCustomFont(true) | 
| -    , m_isLoading(false) | 
| , m_isTextOrientationFallback(false) | 
| , m_isBrokenIdeographFallback(false) | 
| #if ENABLE(OPENTYPE_VERTICAL) | 
| , m_verticalData(0) | 
| #endif | 
| , m_hasVerticalGlyphs(false) | 
| +    , m_customFontData(true, false) | 
| { | 
| m_fontData->initializeFontData(this, fontSize); | 
| } | 
| @@ -226,6 +225,14 @@ PassRefPtr<SimpleFontData> SimpleFontData::brokenIdeographFontData() const | 
| return m_derivedFontData->brokenIdeograph; | 
| } | 
|  | 
| +void SimpleFontData::beginLoadIfNeeded() const | 
| +{ | 
| +    if (!m_customFontData.isUsed && m_customFontData.isLoadingFallback && m_customFontData.fontFaceSource) { | 
| +        m_customFontData.isUsed = true; | 
| +        m_customFontData.fontFaceSource->beginLoadingFontSoon(); | 
| +    } | 
| +} | 
| + | 
| #ifndef NDEBUG | 
| String SimpleFontData::description() const | 
| { | 
|  |