Chromium Code Reviews| 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 35f90b67ef4dccbfc9c5e942c4f0e85dad7b7476..6486c77395d2485f8b2ab5616a1d92f4bce9a142 100644 |
| --- a/chrome/browser/ui/webui/ntp/ntp_user_data_logger.cc |
| +++ b/chrome/browser/ui/webui/ntp/ntp_user_data_logger.cc |
| @@ -93,38 +93,51 @@ void NTPUserDataLogger::EmitNtpStatistics() { |
| UMA_HISTOGRAM_COUNTS("NewTabPage.NumberOfMouseOvers", number_of_mouseovers_); |
| number_of_mouseovers_ = 0; |
| + // We already sent statistics for this page once. |
| + if (has_emitted_) { |
| + return; |
| + } |
| + |
| // Only log the following statistics if at least one tile is recorded. This |
| // check is required because the statistics are emitted whenever the user |
| // changes tab away from the NTP. However, if the user comes back to that NTP |
|
Mathieu
2015/03/16 19:49:45
amend comment
fserb
2015/03/16 20:08:36
Done.
|
| // later the statistics are not regenerated (i.e. they are all 0). If we log |
| // them again we get a strong bias. |
| - if (number_of_tiles_ > 0) { |
| - UMA_HISTOGRAM_ENUMERATION( |
| - "NewTabPage.SuggestionsType", |
| - has_server_side_suggestions_ ? SERVER_SIDE : CLIENT_SIDE, |
| - SUGGESTIONS_TYPE_COUNT); |
| - has_server_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; |
| + if (!number_of_tiles_) { |
| + return; |
| } |
| + |
| + UMA_HISTOGRAM_ENUMERATION( |
| + "NewTabPage.SuggestionsType", |
| + has_server_side_suggestions_ ? SERVER_SIDE : CLIENT_SIDE, |
| + SUGGESTIONS_TYPE_COUNT); |
| + has_server_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; |
| + UMA_HISTOGRAM_CUSTOM_TIMES("NewTabPage.LoadTime", |
| + base::TimeDelta::FromMilliseconds(load_time_), |
| + base::TimeDelta::FromMilliseconds(1), |
| + base::TimeDelta::FromSeconds(60), 100); |
| + load_time_ = 0; |
| + has_emitted_ = true; |
| } |
| void NTPUserDataLogger::LogEvent(NTPLoggingEventType event, uint64 time) { |
| @@ -162,6 +175,9 @@ void NTPUserDataLogger::LogEvent(NTPLoggingEventType event, uint64 time) { |
| case NTP_MOUSEOVER: |
| number_of_mouseovers_++; |
| break; |
| + case NTP_TILE_LOADED: |
| + load_time_ = std::max(load_time_, time); |
|
beaudoin
2015/03/16 19:39:36
Add a comment here to indicate that the time at wh
fserb
2015/03/16 19:47:38
Done.
|
| + break; |
| default: |
| NOTREACHED(); |
| } |
| @@ -236,5 +252,7 @@ NTPUserDataLogger::NTPUserDataLogger(content::WebContents* contents) |
| number_of_thumbnail_errors_(0), |
| number_of_gray_tile_fallbacks_(0), |
| number_of_external_tile_fallbacks_(0), |
| - number_of_mouseovers_(0) { |
| + number_of_mouseovers_(0), |
| + load_time_(0), |
| + has_emitted_(false) { |
| } |