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

Side by Side Diff: chrome/browser/ui/webui/ntp/ntp_user_data_logger.cc

Issue 2117373002: Cleanup: Change LogMostVisitedImpression|Navigation APIs to take an enum (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ntp_uma_cleanup
Patch Set: rebase Created 4 years, 5 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/webui/ntp/ntp_user_data_logger.h" 5 #include "chrome/browser/ui/webui/ntp/ntp_user_data_logger.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/metrics/histogram.h" 9 #include "base/metrics/histogram.h"
10 #include "base/strings/stringprintf.h" 10 #include "base/strings/stringprintf.h"
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 51
52 // Name of the histogram keeping track of suggestion navigations. 52 // Name of the histogram keeping track of suggestion navigations.
53 const char kMostVisitedNavigationHistogramName[] = 53 const char kMostVisitedNavigationHistogramName[] =
54 "NewTabPage.MostVisited"; 54 "NewTabPage.MostVisited";
55 55
56 // Format string to generate the name for the histogram keeping track of 56 // Format string to generate the name for the histogram keeping track of
57 // suggestion navigations. 57 // suggestion navigations.
58 const char kMostVisitedNavigationHistogramWithProvider[] = 58 const char kMostVisitedNavigationHistogramWithProvider[] =
59 "NewTabPage.MostVisited.%s"; 59 "NewTabPage.MostVisited.%s";
60 60
61 std::string GetSourceName(NTPLoggingTileSource tile_source) {
62 switch (tile_source) {
63 case NTPLoggingTileSource::CLIENT:
64 return "client";
65 case NTPLoggingTileSource::SERVER:
66 return "server";
67 }
68 NOTREACHED();
69 return std::string();
70 }
71
61 } // namespace 72 } // namespace
62 73
63 DEFINE_WEB_CONTENTS_USER_DATA_KEY(NTPUserDataLogger); 74 DEFINE_WEB_CONTENTS_USER_DATA_KEY(NTPUserDataLogger);
64 75
65 76
66 // Log a time event for a given |histogram| at a given |value|. This 77 // Log a time event for a given |histogram| at a given |value|. This
67 // routine exists because regular histogram macros are cached thus can't be used 78 // routine exists because regular histogram macros are cached thus can't be used
68 // if the name of the histogram will change at a given call site. 79 // if the name of the histogram will change at a given call site.
69 void logLoadTimeHistogram(const std::string& histogram, base::TimeDelta value) { 80 void logLoadTimeHistogram(const std::string& histogram, base::TimeDelta value) {
70 base::HistogramBase* counter = base::Histogram::FactoryTimeGet( 81 base::HistogramBase* counter = base::Histogram::FactoryTimeGet(
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 // is a good proxy for the total load time of the NTP, therefore we keep 211 // is a good proxy for the total load time of the NTP, therefore we keep
201 // the max as the load time. 212 // the max as the load time.
202 load_time_ = std::max(load_time_, time); 213 load_time_ = std::max(load_time_, time);
203 break; 214 break;
204 default: 215 default:
205 NOTREACHED(); 216 NOTREACHED();
206 } 217 }
207 } 218 }
208 219
209 void NTPUserDataLogger::LogMostVisitedImpression( 220 void NTPUserDataLogger::LogMostVisitedImpression(
210 int position, const base::string16& provider) { 221 int position, NTPLoggingTileSource tile_source) {
211 // Log the Most Visited navigation for navigations that have providers and
212 // those that dont.
213 UMA_HISTOGRAM_ENUMERATION(kMostVisitedImpressionHistogramName, position, 222 UMA_HISTOGRAM_ENUMERATION(kMostVisitedImpressionHistogramName, position,
214 kNumMostVisited); 223 kNumMostVisited);
215 224
216 // If a provider is specified, log the metric specific to it. 225 // Cannot rely on UMA histograms macro because the name of the histogram is
217 if (!provider.empty()) { 226 // generated dynamically.
218 // Cannot rely on UMA histograms macro because the name of the histogram is 227 base::HistogramBase* counter = base::LinearHistogram::FactoryGet(
219 // generated dynamically. 228 base::StringPrintf(kMostVisitedImpressionHistogramWithProvider,
220 base::HistogramBase* counter = base::LinearHistogram::FactoryGet( 229 GetSourceName(tile_source).c_str()),
221 base::StringPrintf(kMostVisitedImpressionHistogramWithProvider, 230 1,
222 base::UTF16ToUTF8(provider).c_str()), 231 kNumMostVisited,
223 1, 232 kNumMostVisited + 1,
224 kNumMostVisited, 233 base::Histogram::kUmaTargetedHistogramFlag);
225 kNumMostVisited + 1, 234 counter->Add(position);
226 base::Histogram::kUmaTargetedHistogramFlag);
227 counter->Add(position);
228 }
229 } 235 }
230 236
231 void NTPUserDataLogger::LogMostVisitedNavigation( 237 void NTPUserDataLogger::LogMostVisitedNavigation(
232 int position, const base::string16& provider) { 238 int position, NTPLoggingTileSource tile_source) {
233 // Log the Most Visited navigation for navigations that have providers and
234 // those that dont.
235 UMA_HISTOGRAM_ENUMERATION(kMostVisitedNavigationHistogramName, position, 239 UMA_HISTOGRAM_ENUMERATION(kMostVisitedNavigationHistogramName, position,
236 kNumMostVisited); 240 kNumMostVisited);
237 241
238 // If a provider is specified, log the metric specific to it. 242 // Cannot rely on UMA histograms macro because the name of the histogram is
239 if (!provider.empty()) { 243 // generated dynamically.
240 // Cannot rely on UMA histograms macro because the name of the histogram is 244 base::HistogramBase* counter = base::LinearHistogram::FactoryGet(
241 // generated dynamically. 245 base::StringPrintf(kMostVisitedNavigationHistogramWithProvider,
242 base::HistogramBase* counter = base::LinearHistogram::FactoryGet( 246 GetSourceName(tile_source).c_str()),
243 base::StringPrintf(kMostVisitedNavigationHistogramWithProvider, 247 1,
244 base::UTF16ToUTF8(provider).c_str()), 248 kNumMostVisited,
245 1, 249 kNumMostVisited + 1,
246 kNumMostVisited, 250 base::Histogram::kUmaTargetedHistogramFlag);
247 kNumMostVisited + 1, 251 counter->Add(position);
248 base::Histogram::kUmaTargetedHistogramFlag);
249 counter->Add(position);
250 }
251 252
252 // Records the action. This will be available as a time-stamped stream 253 // Records the action. This will be available as a time-stamped stream
253 // server-side and can be used to compute time-to-long-dwell. 254 // server-side and can be used to compute time-to-long-dwell.
254 content::RecordAction(base::UserMetricsAction("MostVisited_Clicked")); 255 content::RecordAction(base::UserMetricsAction("MostVisited_Clicked"));
255 } 256 }
256 257
257 // content::WebContentsObserver override 258 // content::WebContentsObserver override
258 void NTPUserDataLogger::NavigationEntryCommitted( 259 void NTPUserDataLogger::NavigationEntryCommitted(
259 const content::LoadCommittedDetails& load_details) { 260 const content::LoadCommittedDetails& load_details) {
260 if (!load_details.previous_url.is_valid()) 261 if (!load_details.previous_url.is_valid())
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 browser_sync::SessionsSyncManager* sessions = 293 browser_sync::SessionsSyncManager* sessions =
293 static_cast<browser_sync::SessionsSyncManager*>( 294 static_cast<browser_sync::SessionsSyncManager*>(
294 sync->GetSessionsSyncableService()); 295 sync->GetSessionsSyncableService());
295 if (sessions) { 296 if (sessions) {
296 sync_sessions::SyncSessionsMetrics::RecordYoungestForeignTabAgeOnNTP( 297 sync_sessions::SyncSessionsMetrics::RecordYoungestForeignTabAgeOnNTP(
297 sessions); 298 sessions);
298 } 299 }
299 } 300 }
300 } 301 }
301 } 302 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/ntp/ntp_user_data_logger.h ('k') | chrome/browser/ui/webui/ntp/ntp_user_data_logger_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698