| Index: chrome/browser/search/most_visited_iframe_source.cc
|
| diff --git a/chrome/browser/search/most_visited_iframe_source.cc b/chrome/browser/search/most_visited_iframe_source.cc
|
| index 7afd64cd5ee485a148d10cd9665bf890328dc934..7ba9252fa865afa67a9a14eb99bece3124b55be5 100644
|
| --- a/chrome/browser/search/most_visited_iframe_source.cc
|
| +++ b/chrome/browser/search/most_visited_iframe_source.cc
|
| @@ -6,6 +6,7 @@
|
|
|
| #include "base/metrics/histogram.h"
|
| #include "base/strings/string_number_conversions.h"
|
| +#include "base/strings/stringprintf.h"
|
| #include "chrome/common/url_constants.h"
|
| #include "content/public/browser/user_metrics.h"
|
| #include "grit/browser_resources.h"
|
| @@ -23,6 +24,7 @@ const char kThumbnailJSPath[] = "/thumbnail.js";
|
| const char kUtilJSPath[] = "/util.js";
|
| const char kCommonCSSPath[] = "/common.css";
|
| const char kLogHTMLPath[] = "/log.html";
|
| +const char kMostVisitedHistogramWithProvider[] = "NewTabPage.MostVisited.%s";
|
|
|
| } // namespace
|
|
|
| @@ -69,8 +71,15 @@ void MostVisitedIframeSource::StartDataRequest(
|
| int position;
|
| if (net::GetValueForKeyInQuery(url, "pos", &str_position) &&
|
| base::StringToInt(str_position, &position)) {
|
| + // Log the Most Visited click.
|
| UMA_HISTOGRAM_ENUMERATION(kMostVisitedHistogramName, position,
|
| kNumMostVisited);
|
| + // If a specific provider is specified, log the metric specific to the
|
| + // provider.
|
| + std::string provider;
|
| + if (net::GetValueForKeyInQuery(url, "pr", &provider))
|
| + LogMostVisitedProviderClick(position, provider);
|
| +
|
| // 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(content::UserMetricsAction("MostVisited_Clicked"));
|
| @@ -87,3 +96,23 @@ bool MostVisitedIframeSource::ServesPath(const std::string& path) const {
|
| path == kThumbnailCSSPath || path == kThumbnailJSPath ||
|
| path == kUtilJSPath || path == kCommonCSSPath || path == kLogHTMLPath;
|
| }
|
| +
|
| +void MostVisitedIframeSource::LogMostVisitedProviderClick(
|
| + int position,
|
| + const std::string& provider) {
|
| + std::string histogram_name =
|
| + MostVisitedIframeSource::GetHistogramNameForProvider(provider);
|
| + base::HistogramBase* counter = base::LinearHistogram::FactoryGet(
|
| + histogram_name, 1,
|
| + MostVisitedIframeSource::kNumMostVisited,
|
| + MostVisitedIframeSource::kNumMostVisited + 1,
|
| + base::Histogram::kUmaTargetedHistogramFlag);
|
| + counter->Add(position);
|
| +}
|
| +
|
| +// static
|
| +std::string MostVisitedIframeSource::GetHistogramNameForProvider(
|
| + const std::string& provider) {
|
| + return base::StringPrintf(kMostVisitedHistogramWithProvider,
|
| + provider.c_str());
|
| +}
|
|
|