| 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
|
| // 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);
|
| + 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) {
|
| }
|
|
|