| Index: chrome/browser/ui/webui/ntp/ntp_user_data_logger.cc
|
| diff --git a/chrome/browser/ui/webui/ntp/ntp_user_data_logger.cc b/chrome/browser/ui/webui/ntp/ntp_user_data_logger.cc
|
| index 9bf00d2e6a2a3120c203671d3e575c05678276f4..1df61bd20da86efe0741dd821dbf52832543d374 100644
|
| --- a/chrome/browser/ui/webui/ntp/ntp_user_data_logger.cc
|
| +++ b/chrome/browser/ui/webui/ntp/ntp_user_data_logger.cc
|
| @@ -109,60 +109,6 @@ NTPUserDataLogger* NTPUserDataLogger::GetOrCreateFromWebContents(
|
| return logger;
|
| }
|
|
|
| -void NTPUserDataLogger::EmitNtpStatistics() {
|
| - // We only send statistics once per page.
|
| - // And we don't send if there are no tiles recorded.
|
| - if (has_emitted_ || !number_of_tiles_)
|
| - return;
|
| -
|
| - // LoadTime only gets update once per page, so we don't have it on reloads.
|
| - if (load_time_ > base::TimeDelta::FromMilliseconds(0)) {
|
| - logLoadTimeHistogram("NewTabPage.LoadTime", load_time_);
|
| -
|
| - // Split between ML and MV.
|
| - std::string type = has_server_side_suggestions_ ?
|
| - "MostLikely" : "MostVisited";
|
| - logLoadTimeHistogram("NewTabPage.LoadTime." + type, load_time_);
|
| - // Split between Web and Local.
|
| - std::string source = ntp_url_.SchemeIsHTTPOrHTTPS() ? "Web" : "LocalNTP";
|
| - logLoadTimeHistogram("NewTabPage.LoadTime." + source, load_time_);
|
| -
|
| - // Split between Startup and non-startup.
|
| - std::string status = during_startup_ ? "Startup" : "NewTab";
|
| - logLoadTimeHistogram("NewTabPage.LoadTime." + status, load_time_);
|
| -
|
| - load_time_ = base::TimeDelta::FromMilliseconds(0);
|
| - }
|
| - UMA_HISTOGRAM_ENUMERATION(
|
| - "NewTabPage.SuggestionsType",
|
| - has_server_side_suggestions_ ? SERVER_SIDE : CLIENT_SIDE,
|
| - SUGGESTIONS_TYPE_COUNT);
|
| - has_server_side_suggestions_ = false;
|
| - has_client_side_suggestions_ = false;
|
| - UMA_HISTOGRAM_NTP_TILES("NewTabPage.NumberOfTiles", number_of_tiles_);
|
| - number_of_tiles_ = 0;
|
| - UMA_HISTOGRAM_NTP_TILES("NewTabPage.NumberOfThumbnailTiles",
|
| - number_of_thumbnail_tiles_);
|
| - number_of_thumbnail_tiles_ = 0;
|
| - UMA_HISTOGRAM_NTP_TILES("NewTabPage.NumberOfGrayTiles",
|
| - number_of_gray_tiles_);
|
| - number_of_gray_tiles_ = 0;
|
| - UMA_HISTOGRAM_NTP_TILES("NewTabPage.NumberOfExternalTiles",
|
| - number_of_external_tiles_);
|
| - number_of_external_tiles_ = 0;
|
| - UMA_HISTOGRAM_NTP_TILES("NewTabPage.NumberOfThumbnailErrors",
|
| - number_of_thumbnail_errors_);
|
| - number_of_thumbnail_errors_ = 0;
|
| - UMA_HISTOGRAM_NTP_TILES("NewTabPage.NumberOfGrayTileFallbacks",
|
| - number_of_gray_tile_fallbacks_);
|
| - number_of_gray_tile_fallbacks_ = 0;
|
| - UMA_HISTOGRAM_NTP_TILES("NewTabPage.NumberOfExternalTileFallbacks",
|
| - number_of_external_tile_fallbacks_);
|
| - number_of_external_tile_fallbacks_ = 0;
|
| - has_emitted_ = true;
|
| - during_startup_ = false;
|
| -}
|
| -
|
| void NTPUserDataLogger::LogEvent(NTPLoggingEventType event,
|
| base::TimeDelta time) {
|
| switch (event) {
|
| @@ -171,12 +117,12 @@ void NTPUserDataLogger::LogEvent(NTPLoggingEventType event,
|
| // In either case, we want to flush our stats before recounting again.
|
| case NTP_SERVER_SIDE_SUGGESTION:
|
| if (has_client_side_suggestions_)
|
| - EmitNtpStatistics();
|
| + EmitNtpStatistics(EmitReason::INTERNAL_FLUSH);
|
| has_server_side_suggestions_ = true;
|
| break;
|
| case NTP_CLIENT_SIDE_SUGGESTION:
|
| if (has_server_side_suggestions_)
|
| - EmitNtpStatistics();
|
| + EmitNtpStatistics(EmitReason::INTERNAL_FLUSH);
|
| has_client_side_suggestions_ = true;
|
| break;
|
| case NTP_TILE:
|
| @@ -256,10 +202,18 @@ void NTPUserDataLogger::NavigationEntryCommitted(
|
| return;
|
|
|
| if (search::MatchesOriginAndPath(ntp_url_, load_details.previous_url)) {
|
| - EmitNtpStatistics();
|
| + EmitNtpStatistics(EmitReason::NAVIGATED_AWAY);
|
| }
|
| }
|
|
|
| +void NTPUserDataLogger::TabDeactivated() {
|
| + EmitNtpStatistics(EmitReason::CLOSED);
|
| +}
|
| +
|
| +void NTPUserDataLogger::MostVisitedItemsChanged() {
|
| + EmitNtpStatistics(EmitReason::MV_CHANGED);
|
| +}
|
| +
|
| NTPUserDataLogger::NTPUserDataLogger(content::WebContents* contents)
|
| : content::WebContentsObserver(contents),
|
| has_server_side_suggestions_(false),
|
| @@ -293,3 +247,57 @@ NTPUserDataLogger::NTPUserDataLogger(content::WebContents* contents)
|
| }
|
| }
|
| }
|
| +
|
| +void NTPUserDataLogger::EmitNtpStatistics(EmitReason reason) {
|
| + // We only send statistics once per page.
|
| + // And we don't send if there are no tiles recorded.
|
| + if (has_emitted_ || !number_of_tiles_)
|
| + return;
|
| +
|
| + // LoadTime only gets update once per page, so we don't have it on reloads.
|
| + if (load_time_ > base::TimeDelta::FromMilliseconds(0)) {
|
| + logLoadTimeHistogram("NewTabPage.LoadTime", load_time_);
|
| +
|
| + // Split between ML and MV.
|
| + std::string type = has_server_side_suggestions_ ?
|
| + "MostLikely" : "MostVisited";
|
| + logLoadTimeHistogram("NewTabPage.LoadTime." + type, load_time_);
|
| + // Split between Web and Local.
|
| + std::string source = ntp_url_.SchemeIsHTTPOrHTTPS() ? "Web" : "LocalNTP";
|
| + logLoadTimeHistogram("NewTabPage.LoadTime." + source, load_time_);
|
| +
|
| + // Split between Startup and non-startup.
|
| + std::string status = during_startup_ ? "Startup" : "NewTab";
|
| + logLoadTimeHistogram("NewTabPage.LoadTime." + status, load_time_);
|
| +
|
| + load_time_ = base::TimeDelta::FromMilliseconds(0);
|
| + }
|
| + UMA_HISTOGRAM_ENUMERATION(
|
| + "NewTabPage.SuggestionsType",
|
| + has_server_side_suggestions_ ? SERVER_SIDE : CLIENT_SIDE,
|
| + SUGGESTIONS_TYPE_COUNT);
|
| + has_server_side_suggestions_ = false;
|
| + has_client_side_suggestions_ = false;
|
| + UMA_HISTOGRAM_NTP_TILES("NewTabPage.NumberOfTiles", number_of_tiles_);
|
| + number_of_tiles_ = 0;
|
| + UMA_HISTOGRAM_NTP_TILES("NewTabPage.NumberOfThumbnailTiles",
|
| + number_of_thumbnail_tiles_);
|
| + number_of_thumbnail_tiles_ = 0;
|
| + UMA_HISTOGRAM_NTP_TILES("NewTabPage.NumberOfGrayTiles",
|
| + number_of_gray_tiles_);
|
| + number_of_gray_tiles_ = 0;
|
| + UMA_HISTOGRAM_NTP_TILES("NewTabPage.NumberOfExternalTiles",
|
| + number_of_external_tiles_);
|
| + number_of_external_tiles_ = 0;
|
| + UMA_HISTOGRAM_NTP_TILES("NewTabPage.NumberOfThumbnailErrors",
|
| + number_of_thumbnail_errors_);
|
| + number_of_thumbnail_errors_ = 0;
|
| + UMA_HISTOGRAM_NTP_TILES("NewTabPage.NumberOfGrayTileFallbacks",
|
| + number_of_gray_tile_fallbacks_);
|
| + number_of_gray_tile_fallbacks_ = 0;
|
| + UMA_HISTOGRAM_NTP_TILES("NewTabPage.NumberOfExternalTileFallbacks",
|
| + number_of_external_tile_fallbacks_);
|
| + number_of_external_tile_fallbacks_ = 0;
|
| + has_emitted_ = true;
|
| + during_startup_ = false;
|
| +}
|
|
|