| 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 6773db8f0576592b652752373fffc45cf165fe34..16f07deb6d65b1268e970763d13c5cfb7f3c306b 100644
|
| --- a/chrome/browser/ui/webui/ntp/ntp_user_data_logger.cc
|
| +++ b/chrome/browser/ui/webui/ntp/ntp_user_data_logger.cc
|
| @@ -100,27 +100,21 @@ NTPUserDataLogger* NTPUserDataLogger::GetOrCreateFromWebContents(
|
| void NTPUserDataLogger::LogEvent(NTPLoggingEventType event,
|
| base::TimeDelta time) {
|
| switch (event) {
|
| - // It is possible that our page gets update with a different set of
|
| - // suggestions if the NTP is left open enough time.
|
| - // In either case, we want to flush our stats before recounting again.
|
| case NTP_SERVER_SIDE_SUGGESTION:
|
| - if (has_client_side_suggestions_)
|
| - EmitNtpStatistics(EmitReason::INTERNAL_FLUSH);
|
| has_server_side_suggestions_ = true;
|
| break;
|
| case NTP_CLIENT_SIDE_SUGGESTION:
|
| - if (has_server_side_suggestions_)
|
| - EmitNtpStatistics(EmitReason::INTERNAL_FLUSH);
|
| has_client_side_suggestions_ = true;
|
| break;
|
| case NTP_TILE:
|
| + // TODO(sfiera): remove NTP_TILE and use NTP_*_SIDE_SUGGESTION.
|
| number_of_tiles_++;
|
| break;
|
| case NTP_TILE_LOADED:
|
| - // The time at which the last tile has loaded (title, thumbnail or single)
|
| - // is a good proxy for the total load time of the NTP, therefore we keep
|
| - // the max as the load time.
|
| - load_time_ = std::max(load_time_, time);
|
| + // We no longer emit statistics for the multi-iframe NTP.
|
| + break;
|
| + case NTP_ALL_TILES_LOADED:
|
| + EmitNtpStatistics(time);
|
| break;
|
| default:
|
| NOTREACHED();
|
| @@ -165,17 +159,8 @@ void NTPUserDataLogger::LogMostVisitedNavigation(
|
| content::RecordAction(base::UserMetricsAction("MostVisited_Clicked"));
|
| }
|
|
|
| -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),
|
| + : has_server_side_suggestions_(false),
|
| has_client_side_suggestions_(false),
|
| number_of_tiles_(0),
|
| has_emitted_(false),
|
| @@ -201,40 +186,25 @@ NTPUserDataLogger::NTPUserDataLogger(content::WebContents* contents)
|
| }
|
| }
|
|
|
| -// content::WebContentsObserver override
|
| -void NTPUserDataLogger::NavigationEntryCommitted(
|
| - const content::LoadCommittedDetails& load_details) {
|
| - if (!load_details.previous_url.is_valid())
|
| - return;
|
| -
|
| - if (search::MatchesOriginAndPath(ntp_url_, load_details.previous_url))
|
| - EmitNtpStatistics(EmitReason::NAVIGATED_AWAY);
|
| -}
|
| -
|
| -void NTPUserDataLogger::EmitNtpStatistics(EmitReason reason) {
|
| +void NTPUserDataLogger::EmitNtpStatistics(base::TimeDelta load_time) {
|
| // We only send statistics once per page.
|
| - // And we don't send if there are no tiles recorded.
|
| - if (has_emitted_ || !number_of_tiles_)
|
| + if (has_emitted_)
|
| 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_);
|
| + 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 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_);
|
| + // 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);
|
| - }
|
| has_server_side_suggestions_ = false;
|
| has_client_side_suggestions_ = false;
|
| UMA_HISTOGRAM_CUSTOM_COUNTS(
|
|
|