Index: third_party/WebKit/Source/core/fetch/FontResource.cpp |
diff --git a/third_party/WebKit/Source/core/fetch/FontResource.cpp b/third_party/WebKit/Source/core/fetch/FontResource.cpp |
index 53d9d05c20c865717a827298590ac6423983865e..068ad3b72359bb56b2df16c1a76c6de1a0ff6486 100644 |
--- a/third_party/WebKit/Source/core/fetch/FontResource.cpp |
+++ b/third_party/WebKit/Source/core/fetch/FontResource.cpp |
@@ -38,7 +38,8 @@ |
namespace blink { |
-static const double fontLoadWaitLimitSec = 3.0; |
+static const double fontLoadWaitShortLimitSec = 0.1; |
+static const double fontLoadWaitLongLimitSec = 3.0; |
kinuko
2015/11/01 16:32:04
I assume this corresponds to "'100ms' or less is r
Kunihiko Sakamoto
2015/11/02 05:30:16
Done.
|
enum FontPackageFormat { |
PackageFormatUnknown, |
@@ -77,9 +78,9 @@ ResourcePtr<FontResource> FontResource::fetch(FetchRequest& request, ResourceFet |
FontResource::FontResource(const ResourceRequest& resourceRequest) |
: Resource(resourceRequest, Font) |
, m_state(Unloaded) |
- , m_exceedsFontLoadWaitLimit(false) |
, m_corsFailed(false) |
- , m_fontLoadWaitLimitTimer(this, &FontResource::fontLoadWaitLimitCallback) |
+ , m_fontLoadShortLimitTimer(this, &FontResource::fontLoadShortLimitCallback) |
+ , m_fontLoadLongLimitTimer(this, &FontResource::fontLoadLongLimitCallback) |
{ |
} |
@@ -121,7 +122,8 @@ void FontResource::beginLoadIfNeeded(ResourceFetcher* dl) |
if (m_state != LoadInitiated) { |
m_state = LoadInitiated; |
Resource::load(dl, m_options); |
- m_fontLoadWaitLimitTimer.startOneShot(fontLoadWaitLimitSec, BLINK_FROM_HERE); |
+ m_fontLoadShortLimitTimer.startOneShot(fontLoadWaitShortLimitSec, BLINK_FROM_HERE); |
+ m_fontLoadLongLimitTimer.startOneShot(fontLoadWaitLongLimitSec, BLINK_FROM_HERE); |
ResourceClientWalker<FontResourceClient> walker(m_clients); |
while (FontResourceClient* client = walker.next()) |
@@ -156,14 +158,22 @@ bool FontResource::isSafeToUnlock() const |
return m_data->hasOneRef(); |
} |
-void FontResource::fontLoadWaitLimitCallback(Timer<FontResource>*) |
+void FontResource::fontLoadShortLimitCallback(Timer<FontResource>*) |
{ |
if (!isLoading()) |
return; |
- m_exceedsFontLoadWaitLimit = true; |
ResourceClientWalker<FontResourceClient> walker(m_clients); |
while (FontResourceClient* client = walker.next()) |
- client->fontLoadWaitLimitExceeded(this); |
+ client->fontLoadShortLimitExceeded(this); |
+} |
+ |
+void FontResource::fontLoadLongLimitCallback(Timer<FontResource>*) |
+{ |
+ if (!isLoading()) |
+ return; |
+ ResourceClientWalker<FontResourceClient> walker(m_clients); |
+ while (FontResourceClient* client = walker.next()) |
+ client->fontLoadLongLimitExceeded(this); |
} |
void FontResource::allClientsRemoved() |
@@ -174,7 +184,8 @@ void FontResource::allClientsRemoved() |
void FontResource::checkNotify() |
{ |
- m_fontLoadWaitLimitTimer.stop(); |
+ m_fontLoadShortLimitTimer.stop(); |
+ m_fontLoadLongLimitTimer.stop(); |
ResourceClientWalker<FontResourceClient> w(m_clients); |
while (FontResourceClient* c = w.next()) |
c->fontLoaded(this); |