| Index: third_party/WebKit/Source/core/fetch/FontResource.h
|
| diff --git a/third_party/WebKit/Source/core/fetch/FontResource.h b/third_party/WebKit/Source/core/fetch/FontResource.h
|
| index e83ab315a525782642b34205c432c2d1cc84114f..ea6b253935656e9096af8042301b064120a9cbed 100644
|
| --- a/third_party/WebKit/Source/core/fetch/FontResource.h
|
| +++ b/third_party/WebKit/Source/core/fetch/FontResource.h
|
| @@ -67,6 +67,8 @@ class CORE_EXPORT FontResource final : public Resource {
|
| bool italic,
|
| FontOrientation = FontOrientation::Horizontal);
|
|
|
| + void willReloadAfterDiskCacheMiss() override;
|
| +
|
| private:
|
| class FontResourceFactory : public ResourceFactory {
|
| public:
|
| @@ -83,12 +85,16 @@ class CORE_EXPORT FontResource final : public Resource {
|
| void checkNotify() override;
|
| void fontLoadShortLimitCallback(TimerBase*);
|
| void fontLoadLongLimitCallback(TimerBase*);
|
| + void notifyClientsShortLimitExceeded();
|
| + void notifyClientsLongLimitExceeded();
|
|
|
| + // This is used in UMA histograms, should not change order.
|
| enum LoadLimitState {
|
| LoadNotStarted,
|
| UnderLimit,
|
| ShortLimitExceeded,
|
| - LongLimitExceeded
|
| + LongLimitExceeded,
|
| + LoadLimitStateEnumMax
|
| };
|
|
|
| std::unique_ptr<FontCustomPlatformData> m_fontData;
|
| @@ -99,6 +105,7 @@ class CORE_EXPORT FontResource final : public Resource {
|
| Timer<FontResource> m_fontLoadLongLimitTimer;
|
|
|
| friend class MemoryCache;
|
| + friend class FontResourceTestHelper;
|
| };
|
|
|
| DEFINE_RESOURCE_TYPE_CASTS(Font);
|
| @@ -110,6 +117,10 @@ class FontResourceClient : public ResourceClient {
|
| return client->getResourceClientType() == FontType;
|
| }
|
| ResourceClientType getResourceClientType() const final { return FontType; }
|
| +
|
| + // If cache-aware loading is activated, both callbacks will be blocked until
|
| + // disk cache miss. Calls to addClient() and removeClient() in both callbacks
|
| + // are prohibited to prevent race issues regarding current loading state.
|
| virtual void fontLoadShortLimitExceeded(FontResource*) {}
|
| virtual void fontLoadLongLimitExceeded(FontResource*) {}
|
| };
|
|
|