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

Unified Diff: chrome/browser/google/google_search_counter.cc

Issue 342053002: Add UMA metrics for Android Chrome Google Search. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Removed dupe check and updated omnibox search accesspoint check. Created 6 years, 6 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/google/google_search_counter.cc
diff --git a/chrome/browser/google/google_search_counter.cc b/chrome/browser/google/google_search_counter.cc
index ecf670c87bb36916af32af0739f62b6559c7e703..84279b723fa6deba3676a8b11fac88b6bb701ead 100644
--- a/chrome/browser/google/google_search_counter.cc
+++ b/chrome/browser/google/google_search_counter.cc
@@ -12,29 +12,6 @@
#include "content/public/browser/notification_service.h"
#include "content/public/browser/notification_types.h"
-namespace {
-
-// Returns true iff |entry| represents a Google search from the Omnibox.
-// This method assumes that we have already verified that |entry|'s URL is a
-// Google search URL.
-bool IsOmniboxGoogleSearchNavigation(const content::NavigationEntry& entry) {
- const content::PageTransition stripped_transition =
- PageTransitionStripQualifier(entry.GetTransitionType());
- DCHECK(google_util::IsGoogleSearchUrl(entry.GetURL()));
- return stripped_transition == content::PAGE_TRANSITION_GENERATED;
-}
-
-// Returns true iff |entry| represents a Google search from the Google Search
-// App. This method assumes that we have already verified that |entry|'s URL is
-// a Google search URL.
-bool IsSearchAppGoogleSearchNavigation(const content::NavigationEntry& entry) {
- DCHECK(google_util::IsGoogleSearchUrl(entry.GetURL()));
- return entry.GetURL().query().find("source=search_app") !=
- std::string::npos;
-}
-
-} // namespace
-
// static
void GoogleSearchCounter::RegisterForNotifications() {
GoogleSearchCounter::GetInstance()->RegisterForNotificationsInternal();
@@ -45,6 +22,13 @@ GoogleSearchCounter* GoogleSearchCounter::GetInstance() {
return Singleton<GoogleSearchCounter>::get();
}
+bool GoogleSearchCounter::ShouldRecordCommittedDetails(
+ const content::NotificationDetails& details) const {
+ const content::LoadCommittedDetails* commit =
+ content::Details<content::LoadCommittedDetails>(details).ptr();
+ return google_util::IsGoogleSearchUrl(commit->entry->GetURL());
+}
+
GoogleSearchCounter::GoogleSearchCounter()
: search_metrics_(new GoogleSearchMetrics) {
}
@@ -55,27 +39,15 @@ GoogleSearchCounter::~GoogleSearchCounter() {
void GoogleSearchCounter::ProcessCommittedEntry(
const content::NotificationSource& source,
const content::NotificationDetails& details) {
+ // Note that GoogleSearchMetrics logs metrics through UMA, which will only
+ // transmit these counts to the server if the user has opted into sending
+ // usage stats.
const content::LoadCommittedDetails* commit =
content::Details<content::LoadCommittedDetails>(details).ptr();
const content::NavigationEntry& entry = *commit->entry;
-
- // First see if this is a Google search URL at all.
- if (!google_util::IsGoogleSearchUrl(entry.GetURL()))
- return;
-
- // If the commit is a GENERATED commit with a Google search URL, we know it's
- // an Omnibox search.
- if (IsOmniboxGoogleSearchNavigation(entry)) {
- // Note that GoogleSearchMetrics logs metrics through UMA, which will only
- // transmit these counts to the server if the user has opted into sending
- // usage stats.
- search_metrics_->RecordGoogleSearch(GoogleSearchMetrics::AP_OMNIBOX);
- } else if (IsSearchAppGoogleSearchNavigation(entry)) {
- search_metrics_->RecordGoogleSearch(GoogleSearchMetrics::AP_SEARCH_APP);
- } else {
- // For all other cases that we have not yet implemented or care to measure,
- // we log a generic "catch-all" metric.
- search_metrics_->RecordGoogleSearch(GoogleSearchMetrics::AP_OTHER);
+ if (ShouldRecordCommittedDetails(details)) {
+ search_metrics_->RecordGoogleSearch(
+ google_util::GetGoogleSearchAccessPointForSearchNavEntry(entry));
}
}

Powered by Google App Engine
This is Rietveld 408576698