Chromium Code Reviews| Index: third_party/WebKit/Source/core/css/RemoteFontFaceSource.cpp |
| diff --git a/third_party/WebKit/Source/core/css/RemoteFontFaceSource.cpp b/third_party/WebKit/Source/core/css/RemoteFontFaceSource.cpp |
| index 57e48b357383b9e79a6dbd8d8a53cf995dde2af5..90acf155d7352c5e0bea0b5fc7406aa034035246 100644 |
| --- a/third_party/WebKit/Source/core/css/RemoteFontFaceSource.cpp |
| +++ b/third_party/WebKit/Source/core/css/RemoteFontFaceSource.cpp |
| @@ -56,7 +56,7 @@ RemoteFontFaceSource::RemoteFontFaceSource(FontResource* font, |
| : m_font(font), |
| m_fontSelector(fontSelector), |
| m_display(display), |
| - m_period(display == FontDisplaySwap ? SwapPeriod : BlockPeriod), |
| + m_period(BlockPeriod), |
| m_histograms(font->url().protocolIsData() |
| ? FontLoadHistograms::FromDataURL |
| : font->isLoaded() ? FontLoadHistograms::FromMemoryCache |
| @@ -138,6 +138,9 @@ void RemoteFontFaceSource::notifyFinished(Resource*) { |
| } |
| void RemoteFontFaceSource::fontLoadShortLimitExceeded(FontResource*) { |
| + if (m_font->resourceRequest().isCacheAwareLoadingActivated()) |
| + return; |
| + |
| if (m_display == FontDisplayFallback) |
| switchToSwapPeriod(); |
| else if (m_display == FontDisplayOptional) |
| @@ -145,6 +148,9 @@ void RemoteFontFaceSource::fontLoadShortLimitExceeded(FontResource*) { |
| } |
| void RemoteFontFaceSource::fontLoadLongLimitExceeded(FontResource*) { |
| + if (m_font->resourceRequest().isCacheAwareLoadingActivated()) |
| + return; |
| + |
| if (m_display == FontDisplayBlock || |
| (!m_isInterventionTriggered && m_display == FontDisplayAuto)) |
| switchToSwapPeriod(); |
| @@ -154,6 +160,18 @@ void RemoteFontFaceSource::fontLoadLongLimitExceeded(FontResource*) { |
| m_histograms.longLimitExceeded(m_isInterventionTriggered); |
| } |
| +void RemoteFontFaceSource::willReloadAfterDiskCacheMiss(const FontResource*) { |
| + if (m_display == FontDisplaySwap) |
| + switchToSwapPeriod(); |
| + |
| + DCHECK(!m_font->resourceRequest().isCacheAwareLoadingActivated()); |
| + if (m_font->loadLimitState() == FontResource::ShortLimitExceeded || |
|
Kunihiko Sakamoto
2016/10/12 01:38:46
Now we know that the font have to be fetched from
|
| + m_font->loadLimitState() == FontResource::LongLimitExceeded) |
| + fontLoadShortLimitExceeded(m_font.get()); |
| + if (m_font->loadLimitState() == FontResource::LongLimitExceeded) |
| + fontLoadLongLimitExceeded(m_font.get()); |
| +} |
| + |
| void RemoteFontFaceSource::switchToSwapPeriod() { |
| ASSERT(m_period == BlockPeriod); |
| m_period = SwapPeriod; |