[ntp][modules] Log histogram for module visibility
The new NewTabPage.Modules.Visible lets us track the ratio of NTP loads
with modules visible.
(cherry picked from commit b13aa4a24c73481c27ce7e257814d8ec9de6e985)
Bug: 1135393
Change-Id: I15a9fd064b7e189420e2eac2e9cecc72587f8fc1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2454733
Commit-Queue: Tibor Goldschwendt <[email protected]>
Auto-Submit: Tibor Goldschwendt <[email protected]>
Reviewed-by: Weilun Shi <[email protected]>
Reviewed-by: Ilya Sherman <[email protected]>
Reviewed-by: Moe Ahmadi <[email protected]>
Cr-Original-Commit-Position: refs/heads/master@{#815244}
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2466485
Reviewed-by: Tibor Goldschwendt <[email protected]>
Cr-Commit-Position: refs/branch-heads/4280@{#315}
Cr-Branched-From: ea420fb963f9658c9969b6513c56b8f47efa1a2a-refs/heads/master@{#812852}
diff --git a/chrome/browser/ui/search/ntp_user_data_logger.cc b/chrome/browser/ui/search/ntp_user_data_logger.cc
index 647773b..be890d922 100644
--- a/chrome/browser/ui/search/ntp_user_data_logger.cc
+++ b/chrome/browser/ui/search/ntp_user_data_logger.cc
@@ -614,6 +614,10 @@
base::UmaHistogramExactLinear("NewTabPage.Modules.Usage." + id, 1, 1);
}
+void NTPUserDataLogger::SetModulesVisible(bool visible) {
+ modules_visible_ = visible;
+}
+
NTPUserDataLogger::NTPUserDataLogger(content::WebContents* contents)
: content::WebContentsObserver(contents),
has_emitted_(false),
@@ -739,6 +743,11 @@
}
}
+ if (base::FeatureList::IsEnabled(ntp_features::kModules)) {
+ base::UmaHistogramBoolean("NewTabPage.Modules.VisibleOnNTPLoad",
+ modules_visible_);
+ }
+
has_emitted_ = true;
during_startup_ = false;
}
diff --git a/chrome/browser/ui/search/ntp_user_data_logger.h b/chrome/browser/ui/search/ntp_user_data_logger.h
index 31946df6..c5800c0 100644
--- a/chrome/browser/ui/search/ntp_user_data_logger.h
+++ b/chrome/browser/ui/search/ntp_user_data_logger.h
@@ -78,6 +78,9 @@
// Logs a navigation on one of the NTP tiles by a given impression.
void LogMostVisitedNavigation(const ntp_tiles::NTPTileImpression& impression);
+ // Sets visibility of modules to be later logged.
+ void SetModulesVisible(bool visible);
+
protected:
explicit NTPUserDataLogger(content::WebContents* contents);
@@ -145,6 +148,8 @@
bool should_record_doodle_load_time_;
+ bool modules_visible_;
+
// Are stats being logged during Chrome startup?
bool during_startup_;
diff --git a/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.cc b/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.cc
index 660693a8..12a7b14 100644
--- a/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.cc
+++ b/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.cc
@@ -388,6 +388,8 @@
OmniboxTabHelper::FromWebContents(web_contents_)->AddObserver(this);
promo_service_observer_.Add(promo_service_);
one_google_bar_service_observer_.Add(one_google_bar_service_);
+ logger_->SetModulesVisible(
+ profile_->GetPrefs()->GetBoolean(kModulesVisiblePrefName));
}
NewTabPageHandler::~NewTabPageHandler() {
diff --git a/tools/metrics/histograms/histograms_xml/new_tab_page/histograms.xml b/tools/metrics/histograms/histograms_xml/new_tab_page/histograms.xml
index cd466fe..1f2f516 100644
--- a/tools/metrics/histograms/histograms_xml/new_tab_page/histograms.xml
+++ b/tools/metrics/histograms/histograms_xml/new_tab_page/histograms.xml
@@ -821,6 +821,14 @@
</summary>
</histogram>
+<histogram name="NewTabPage.Modules.VisibleOnNTPLoad" enum="BooleanVisible"
+ expires_after="M90">
+ <owner>[email protected]</owner>
+ <owner>[email protected]</owner>
+ <owner>[email protected]</owner>
+ <summary>Logs whether the NTP modules are visible at NTP load.</summary>
+</histogram>
+
<histogram name="NewTabPage.MostVisited" enum="MostVisitedTileIndex"
expires_after="never">
<!-- expires-never: part of top-line metric (internal: go/chrome-browser-nsm) -->