| 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 2f951928ce058327bdeba6ea6ba98de201a02824..d249c9df5633eddf0a5135c3b1e74dfa8263d85c 100644
|
| --- a/chrome/browser/ui/webui/ntp/ntp_user_data_logger.cc
|
| +++ b/chrome/browser/ui/webui/ntp/ntp_user_data_logger.cc
|
| @@ -54,6 +54,21 @@ std::string GetSourceName(NTPLoggingTileSource tile_source) {
|
| return std::string();
|
| }
|
|
|
| +void RecordSyncSessionMetrics(content::WebContents* contents) {
|
| + if (!contents)
|
| + return;
|
| + browser_sync::ProfileSyncService* sync =
|
| + ProfileSyncServiceFactory::GetForProfile(
|
| + Profile::FromBrowserContext(contents->GetBrowserContext()));
|
| + if (!sync)
|
| + return;
|
| + sync_sessions::SessionsSyncManager* sessions =
|
| + static_cast<sync_sessions::SessionsSyncManager*>(
|
| + sync->GetSessionsSyncableService());
|
| + sync_sessions::SyncSessionsMetrics::RecordYoungestForeignTabAgeOnNTP(
|
| + sessions);
|
| +}
|
| +
|
| } // namespace
|
|
|
| DEFINE_WEB_CONTENTS_USER_DATA_KEY(NTPUserDataLogger);
|
| @@ -62,7 +77,7 @@ DEFINE_WEB_CONTENTS_USER_DATA_KEY(NTPUserDataLogger);
|
| // Log a time event for a given |histogram| at a given |value|. This
|
| // routine exists because regular histogram macros are cached thus can't be used
|
| // if the name of the histogram will change at a given call site.
|
| -void logLoadTimeHistogram(const std::string& histogram, base::TimeDelta value) {
|
| +void LogLoadTimeHistogram(const std::string& histogram, base::TimeDelta value) {
|
| base::HistogramBase* counter = base::Histogram::FactoryTimeGet(
|
| histogram,
|
| base::TimeDelta::FromMilliseconds(1),
|
| @@ -110,23 +125,17 @@ void NTPUserDataLogger::LogEvent(NTPLoggingEventType event,
|
| switch (event) {
|
| case NTP_SERVER_SIDE_SUGGESTION:
|
| has_server_side_suggestions_ = true;
|
| - break;
|
| + number_of_tiles_++;
|
| + return;
|
| case NTP_CLIENT_SIDE_SUGGESTION:
|
| 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:
|
| - // We no longer emit statistics for the multi-iframe NTP.
|
| - break;
|
| + return;
|
| case NTP_ALL_TILES_LOADED:
|
| EmitNtpStatistics(time);
|
| - break;
|
| - default:
|
| - NOTREACHED();
|
| + return;
|
| }
|
| + NOTREACHED();
|
| }
|
|
|
| void NTPUserDataLogger::LogMostVisitedImpression(
|
| @@ -178,27 +187,12 @@ NTPUserDataLogger::NTPUserDataLogger(content::WebContents* contents)
|
| has_client_side_suggestions_(false),
|
| number_of_tiles_(0),
|
| has_emitted_(false),
|
| - during_startup_(false) {
|
| - during_startup_ = !AfterStartupTaskUtils::IsBrowserStartupComplete();
|
| -
|
| + during_startup_(!AfterStartupTaskUtils::IsBrowserStartupComplete()) {
|
| // We record metrics about session data here because when this class typically
|
| // emits metrics it is too late. This session data would theoretically have
|
| // been used to populate the page, and we want to learn about its state when
|
| // the NTP is being generated.
|
| - if (contents) {
|
| - browser_sync::ProfileSyncService* sync =
|
| - ProfileSyncServiceFactory::GetForProfile(
|
| - Profile::FromBrowserContext(contents->GetBrowserContext()));
|
| - if (sync) {
|
| - sync_sessions::SessionsSyncManager* sessions =
|
| - static_cast<sync_sessions::SessionsSyncManager*>(
|
| - sync->GetSessionsSyncableService());
|
| - if (sessions) {
|
| - sync_sessions::SyncSessionsMetrics::RecordYoungestForeignTabAgeOnNTP(
|
| - sessions);
|
| - }
|
| - }
|
| - }
|
| + RecordSyncSessionMetrics(contents);
|
| }
|
|
|
| // content::WebContentsObserver override
|
| @@ -228,19 +222,19 @@ void NTPUserDataLogger::EmitNtpStatistics(base::TimeDelta load_time) {
|
| DVLOG(1) << "Emitting NTP load time: " << load_time << ", "
|
| << "number of tiles: " << number_of_tiles_;
|
|
|
| - 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);
|
| + 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);
|
| + 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);
|
| + LogLoadTimeHistogram("NewTabPage.LoadTime." + status, load_time);
|
|
|
| has_server_side_suggestions_ = false;
|
| has_client_side_suggestions_ = false;
|
|
|