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

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

Issue 342053002: Add UMA metrics for Android Chrome Google Search. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: '' 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_util.cc
diff --git a/chrome/browser/google/google_util.cc b/chrome/browser/google/google_util.cc
index f4d06810d7ef4a5eabb3f469bf102ff2a6bd9439..e355f49a580828100b519310d56b615394bc4d15 100644
--- a/chrome/browser/google/google_util.cc
+++ b/chrome/browser/google/google_util.cc
@@ -16,6 +16,7 @@
#include "components/google/core/browser/google_switches.h"
#include "components/google/core/browser/google_url_tracker.h"
#include "components/url_fixer/url_fixer.h"
+#include "content/public/browser/navigation_entry.h"
#include "net/base/registry_controlled_domains/registry_controlled_domain.h"
#include "net/base/url_util.h"
#include "url/gurl.h"
@@ -71,6 +72,25 @@ bool IsValidURL(const GURL& url, google_util::PortPermission port_permission) {
(port_permission == google_util::ALLOW_NON_STANDARD_PORTS));
}
+// 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) {
Peter Kasting 2014/06/19 21:20:32 Given that these two functions are extremely short
kmadhusu 2014/06/19 22:52:49 Done.
+ const content::PageTransition stripped_transition =
+ PageTransitionStripQualifier(entry.GetTransitionType());
+ DCHECK(google_util::IsGoogleSearchUrl(entry.GetURL()));
+ return stripped_transition == content::PAGE_TRANSITION_GENERATED;
Peter Kasting 2014/06/19 21:20:32 Don't you also need to check for PAGE_TRANSITION_F
kmadhusu 2014/06/19 22:52:49 I moved this code from GoogleSearchCounter to here
Peter Kasting 2014/06/19 22:58:05 I would grep the codebase for PAGE_TRANSITION_GENE
kmadhusu 2014/06/19 23:21:45 Okay.
kmadhusu 2014/06/20 01:15:07 Updated the check.
+}
+
+// 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;
Peter Kasting 2014/06/19 21:20:32 Nit: Indent 4, not even
kmadhusu 2014/06/19 22:52:49 Fixed.
+}
+
} // namespace
@@ -214,4 +234,19 @@ bool IsYoutubeDomainUrl(const GURL& url,
IsValidHostName(url.host(), "youtube", subdomain_permission);
}
+GoogleSearchMetrics::AccessPoint GetGoogleSearchAccessPointForNavEntry(
+ const content::NavigationEntry& entry) {
+ DCHECK(google_util::IsGoogleSearchUrl(entry.GetURL()));
+
+ // If the commit is a GENERATED commit with a Google search URL, we know it's
+ // an Omnibox search.
Peter Kasting 2014/06/19 21:20:32 This comment goes into detail that isn't visible h
kmadhusu 2014/06/19 22:52:49 Inlined IsOmniboxGoogleSearchNavigation() definiti
+ if (IsOmniboxGoogleSearchNavigation(entry))
+ return GoogleSearchMetrics::AP_OMNIBOX;
+
+ // For all other cases that we have not yet implemented or care to measure,
+ // we log a generic "catch-all" metric.
+ return IsSearchAppGoogleSearchNavigation(entry) ?
+ GoogleSearchMetrics::AP_SEARCH_APP : GoogleSearchMetrics::AP_OTHER;
+}
+
} // namespace google_util

Powered by Google App Engine
This is Rietveld 408576698