Commit 6f885eaf authored by tbansal's avatar tbansal Committed by Commit bot

Log web fonts intervention result more accurately

1) Log result only when there was no CORS error.
2) Log result only when font display was set to auto since
intervention is run only when the font display is auto.
3) Do not log result if the font failed to load.

BUG=656836

Review-Url: https://chromiumcodereview.appspot.com/2431503002
Cr-Commit-Position: refs/heads/master@{#426891}
parent d6efc864
......@@ -60,7 +60,8 @@ RemoteFontFaceSource::RemoteFontFaceSource(FontResource* font,
m_histograms(font->url().protocolIsData()
? FontLoadHistograms::FromDataURL
: font->isLoaded() ? FontLoadHistograms::FromMemoryCache
: FontLoadHistograms::FromUnknown),
: FontLoadHistograms::FromUnknown,
m_display),
m_isInterventionTriggered(false) {
ThreadState::current()->registerPreFinalizer(this);
m_font->addClient(this);
......@@ -112,7 +113,9 @@ void RemoteFontFaceSource::notifyFinished(Resource*) {
? FontLoadHistograms::FromDiskCache
: FontLoadHistograms::FromNetwork);
m_histograms.recordRemoteFont(m_font.get());
m_histograms.fontLoaded(m_isInterventionTriggered);
m_histograms.fontLoaded(m_font->isCORSFailed(),
m_font->getStatus() == Resource::LoadError,
m_isInterventionTriggered);
m_font->ensureCustomFontData();
// FIXME: Provide more useful message such as OTS rejection reason.
......@@ -263,16 +266,21 @@ void RemoteFontFaceSource::FontLoadHistograms::fallbackFontPainted(
}
void RemoteFontFaceSource::FontLoadHistograms::fontLoaded(
bool isCorsFailed,
bool loadError,
bool isInterventionTriggered) {
if (!m_isLongLimitExceeded)
if (!m_isLongLimitExceeded && m_fontDisplay == FontDisplayAuto &&
!isCorsFailed && !loadError) {
recordInterventionResult(isInterventionTriggered);
}
}
void RemoteFontFaceSource::FontLoadHistograms::longLimitExceeded(
bool isInterventionTriggered) {
m_isLongLimitExceeded = true;
maySetDataSource(FromNetwork);
recordInterventionResult(isInterventionTriggered);
if (m_fontDisplay == FontDisplayAuto)
recordInterventionResult(isInterventionTriggered);
}
void RemoteFontFaceSource::FontLoadHistograms::recordFallbackTime(
......
......@@ -76,14 +76,17 @@ class RemoteFontFaceSource final : public CSSFontFaceSource,
FromNetwork
};
FontLoadHistograms(DataSource dataSource)
FontLoadHistograms(DataSource dataSource, FontDisplay fontDisplay)
: m_loadStartTime(0),
m_blankPaintTime(0),
m_isLongLimitExceeded(false),
m_dataSource(dataSource) {}
m_dataSource(dataSource),
m_fontDisplay(fontDisplay) {}
void loadStarted();
void fallbackFontPainted(DisplayPeriod);
void fontLoaded(bool isInterventionTriggered);
void fontLoaded(bool isCorsFailed,
bool loadError,
bool isInterventionTriggered);
void longLimitExceeded(bool isInterventionTriggered);
void recordFallbackTime(const FontResource*);
void recordRemoteFont(const FontResource*);
......@@ -99,6 +102,7 @@ class RemoteFontFaceSource final : public CSSFontFaceSource,
double m_blankPaintTime;
bool m_isLongLimitExceeded;
DataSource m_dataSource;
FontDisplay m_fontDisplay;
};
void switchToSwapPeriod();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment