Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(637)

Unified Diff: chrome/browser/ui/webui/ntp/ntp_user_data_logger.cc

Issue 178253008: Redoing Issue 36073011: Allowing file:/// in Instant Extended's Most Visited links. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Adding and using logNavigation(); updating tests; removing ping and the log.html page. Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 27d1cdf651ba5b6d6dd6c9a8ca92afb0de9c2561..088fcf5f4ec887ec795b9f5c2ba06871cacbff0d 100644
--- a/chrome/browser/ui/webui/ntp/ntp_user_data_logger.cc
+++ b/chrome/browser/ui/webui/ntp/ntp_user_data_logger.cc
@@ -13,6 +13,7 @@
#include "chrome/common/url_constants.h"
#include "content/public/browser/navigation_details.h"
#include "content/public/browser/navigation_entry.h"
+#include "content/public/browser/user_metrics.h"
#include "content/public/browser/web_contents.h"
// Macro to log UMA statistics related to the 8 tiles shown on the NTP.
@@ -33,6 +34,16 @@ enum SuggestionsType {
const char kImpressionHistogramWithProvider[] =
"NewTabPage.SuggestionsImpression.%s";
+// Number of Most Visited elements on the NTP for logging purposes.
+const int kNumMostVisited = 8;
+
+// Name of the histogram keeping track of Most Visited clicks.
+const char kMostVisitedHistogramName[] = "NewTabPage.MostVisited";
+
+// Format string to generate the name for the histogram keeping track of
+// suggestion clicks.
+const char kMostVisitedHistogramWithProvider[] = "NewTabPage.MostVisited.%s";
+
} // namespace
DEFINE_WEB_CONTENTS_USER_DATA_KEY(NTPUserDataLogger);
@@ -58,6 +69,13 @@ NTPUserDataLogger* NTPUserDataLogger::GetOrCreateFromWebContents(
return logger;
}
+// static
+std::string NTPUserDataLogger::GetHistogramNameForProvider(
beaudoin 2014/03/04 21:33:15 GetNavigationHistogramNameForProvider( Maybe add
huangs 2014/03/04 22:10:43 Done; added GetImpressionHistogramNameForProvider(
+ const std::string& provider) {
+ return base::StringPrintf(kMostVisitedHistogramWithProvider,
+ provider.c_str());
+}
+
void NTPUserDataLogger::EmitNtpStatistics() {
UMA_HISTOGRAM_COUNTS("NewTabPage.NumberOfMouseOvers", number_of_mouseovers_);
number_of_mouseovers_ = 0;
@@ -143,12 +161,37 @@ void NTPUserDataLogger::LogImpression(int position,
base::HistogramBase* counter = base::LinearHistogram::FactoryGet(
base::StringPrintf(kImpressionHistogramWithProvider,
base::UTF16ToUTF8(provider).c_str()),
- 1, MostVisitedIframeSource::kNumMostVisited,
- MostVisitedIframeSource::kNumMostVisited + 1,
+ 1,
+ kNumMostVisited,
+ kNumMostVisited + 1,
base::Histogram::kUmaTargetedHistogramFlag);
counter->Add(position);
beaudoin 2014/03/04 21:33:15 I'd be tempted to use the exact same pattern as be
huangs 2014/03/04 22:10:43 Done; added kImpressionHistogramName. Note that t
}
+void NTPUserDataLogger::LogNavigation(int position,
+ const base::string16& provider) {
+ // Log the Most Visited navigation.
beaudoin 2014/03/04 21:33:15 for both navigations that have providers and those
huangs 2014/03/04 22:10:43 Done.
+ UMA_HISTOGRAM_ENUMERATION(kMostVisitedHistogramName, position,
+ kNumMostVisited);
+
+ // If a provider is specified, log the metric specific to it.
+ if (!provider.empty()) {
+ // Cannot rely on UMA histograms macro because the name of the histogram is
+ // generated dynamically.
+ base::HistogramBase* counter = base::LinearHistogram::FactoryGet(
+ GetHistogramNameForProvider(base::UTF16ToUTF8(provider)),
+ 1,
+ kNumMostVisited,
+ kNumMostVisited + 1,
+ base::Histogram::kUmaTargetedHistogramFlag);
+ counter->Add(position);
+ }
+
+ // Records the action. This will be available as a time-stamped stream
+ // server-side and can be used to compute time-to-long-dwell.
+ content::RecordAction(base::UserMetricsAction("MostVisited_Clicked"));
+}
+
// content::WebContentsObserver override
void NTPUserDataLogger::NavigationEntryCommitted(
const content::LoadCommittedDetails& load_details) {

Powered by Google App Engine
This is Rietveld 408576698