diff options
author | newt@chromium.org <newt@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-04 19:12:55 +0000 |
---|---|---|
committer | newt@chromium.org <newt@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-04 19:12:55 +0000 |
commit | 21bb906f7ce89a54bf8ecdb951771bb25069e43c (patch) | |
tree | f15f862972f4e64669318b943501c46d520fa457 | |
parent | 38bab02b6e4043164b9aeeff9bcebbd8cc82282d (diff) | |
download | chromium_src-21bb906f7ce89a54bf8ecdb951771bb25069e43c.zip chromium_src-21bb906f7ce89a54bf8ecdb951771bb25069e43c.tar.gz chromium_src-21bb906f7ce89a54bf8ecdb951771bb25069e43c.tar.bz2 |
Record UMA events for actions on the Android NTP.
This records UMA events for actions on the Android NTP (e.g. clicking on
a bookmark), which will be used as part of the time to long dwell
analysis on the NTP. Note: UMA histograms don't contain timestamps, so
we need events instead.
BUG=178932
NOTRY=true
R=mpearson@chromium.org, tedchoc@chromium.org
Review URL: https://codereview.chromium.org/57573002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@232753 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/android/java/src/org/chromium/chrome/browser/UrlUtilities.java | 1 | ||||
-rw-r--r-- | chrome/browser/android/url_utilities.cc | 17 | ||||
-rw-r--r-- | chrome/browser/ui/webui/ntp/android/navigation_handler.cc | 43 | ||||
-rw-r--r-- | tools/metrics/actions/chromeactions.txt | 2 | ||||
-rwxr-xr-x | tools/metrics/actions/extract_actions.py | 1 |
5 files changed, 25 insertions, 39 deletions
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/UrlUtilities.java b/chrome/android/java/src/org/chromium/chrome/browser/UrlUtilities.java index f8b93ee..6bcb74b 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/UrlUtilities.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/UrlUtilities.java @@ -189,4 +189,5 @@ public class UrlUtilities { private static native String nativeGetDomainAndRegistry(String url, boolean includePrivateRegistries); public static native boolean nativeIsGoogleSearchUrl(String url); + public static native boolean nativeIsGoogleHomePageUrl(String url); } diff --git a/chrome/browser/android/url_utilities.cc b/chrome/browser/android/url_utilities.cc index 6c44564..5acd960 100644 --- a/chrome/browser/android/url_utilities.cc +++ b/chrome/browser/android/url_utilities.cc @@ -9,6 +9,8 @@ #include "net/base/registry_controlled_domains/registry_controlled_domain.h" #include "url/gurl.h" +using base::android::ConvertJavaStringToUTF8; + namespace { net::registry_controlled_domains::PrivateRegistryFilter GetRegistryFilter( @@ -25,8 +27,8 @@ static jboolean SameDomainOrHost(JNIEnv* env, jstring url_1_str, jstring url_2_str, jboolean include_private) { - GURL url_1(base::android::ConvertJavaStringToUTF8(env, url_1_str)); - GURL url_2(base::android::ConvertJavaStringToUTF8(env, url_2_str)); + GURL url_1(ConvertJavaStringToUTF8(env, url_1_str)); + GURL url_2(ConvertJavaStringToUTF8(env, url_2_str)); net::registry_controlled_domains::PrivateRegistryFilter filter = GetRegistryFilter(include_private); @@ -40,7 +42,7 @@ static jstring GetDomainAndRegistry(JNIEnv* env, jclass clazz, jstring url, jboolean include_private) { - GURL gurl = GURL(base::android::ConvertJavaStringToUTF8(env, url)); + GURL gurl = GURL(ConvertJavaStringToUTF8(env, url)); if (gurl.is_empty()) return NULL; @@ -54,12 +56,19 @@ static jstring GetDomainAndRegistry(JNIEnv* env, } static jboolean IsGoogleSearchUrl(JNIEnv* env, jclass clazz, jstring url) { - GURL gurl = GURL(base::android::ConvertJavaStringToUTF8(env, url)); + GURL gurl = GURL(ConvertJavaStringToUTF8(env, url)); if (gurl.is_empty()) return false; return google_util::IsGoogleSearchUrl(gurl); } +static jboolean IsGoogleHomePageUrl(JNIEnv* env, jclass clazz, jstring url) { + GURL gurl = GURL(ConvertJavaStringToUTF8(env, url)); + if (gurl.is_empty()) + return false; + return google_util::IsGoogleHomePageUrl(gurl); +} + // Register native methods bool RegisterUrlUtilities(JNIEnv* env) { return RegisterNativesImpl(env); diff --git a/chrome/browser/ui/webui/ntp/android/navigation_handler.cc b/chrome/browser/ui/webui/ntp/android/navigation_handler.cc index 45dd01b..7e02d0f 100644 --- a/chrome/browser/ui/webui/ntp/android/navigation_handler.cc +++ b/chrome/browser/ui/webui/ntp/android/navigation_handler.cc @@ -11,32 +11,16 @@ #include "chrome/browser/google/google_util.h" #include "chrome/common/url_constants.h" #include "content/public/browser/navigation_entry.h" +#include "content/public/browser/user_metrics.h" #include "content/public/browser/web_contents.h" #include "content/public/browser/web_ui.h" #include "content/public/common/page_transition_types.h" -NavigationHandler::NavigationHandler() {} - -NavigationHandler::~NavigationHandler() { - // Record an omnibox-based navigation, if there is one. - content::NavigationEntry* entry = - web_ui()->GetWebContents()->GetController().GetActiveEntry(); - if (!entry) - return; +using content::UserMetricsAction; - if (!(entry->GetTransitionType() & - content::PAGE_TRANSITION_FROM_ADDRESS_BAR) || - entry->GetTransitionType() & content::PAGE_TRANSITION_FORWARD_BACK) { - return; - } - - if (entry->GetURL().SchemeIs(chrome::kChromeUIScheme) && - entry->GetURL().host() == chrome::kChromeUINewTabHost) { - return; - } +NavigationHandler::NavigationHandler() {} - RecordActionForNavigation(*entry); -} +NavigationHandler::~NavigationHandler() {} void NavigationHandler::RegisterMessages() { web_ui()->RegisterMessageCallback( @@ -58,39 +42,28 @@ void NavigationHandler::RegisterMessages() { } void NavigationHandler::HandleOpenedMostVisited(const base::ListValue* args) { + content::RecordAction(UserMetricsAction("MobileNTPMostVisited")); RecordAction(ACTION_OPENED_MOST_VISITED_ENTRY); } void NavigationHandler::HandleOpenedRecentlyClosed( const base::ListValue* args) { + content::RecordAction(UserMetricsAction("MobileNTPRecentlyClosed")); RecordAction(ACTION_OPENED_RECENTLY_CLOSED_ENTRY); } void NavigationHandler::HandleOpenedBookmark(const base::ListValue* args) { + content::RecordAction(UserMetricsAction("MobileNTPBookmark")); RecordAction(ACTION_OPENED_BOOKMARK); } void NavigationHandler::HandleOpenedForeignSession( const base::ListValue* args) { + content::RecordAction(UserMetricsAction("MobileNTPForeignSession")); RecordAction(ACTION_OPENED_FOREIGN_SESSION); } // static -void NavigationHandler::RecordActionForNavigation( - const content::NavigationEntry& entry) { - Action action; - if ((entry.GetTransitionType() & content::PAGE_TRANSITION_CORE_MASK) == - content::PAGE_TRANSITION_GENERATED) { - action = ACTION_SEARCHED_USING_OMNIBOX; - } else if (google_util::IsGoogleHomePageUrl(entry.GetURL())) { - action = ACTION_NAVIGATED_TO_GOOGLE_HOMEPAGE; - } else { - action = ACTION_NAVIGATED_USING_OMNIBOX; - } - RecordAction(action); -} - -// static void NavigationHandler::RecordAction(Action action) { UMA_HISTOGRAM_ENUMERATION("NewTabPage.ActionAndroid", action, NUM_ACTIONS); } diff --git a/tools/metrics/actions/chromeactions.txt b/tools/metrics/actions/chromeactions.txt index 4cc6d59..ac736de 100644 --- a/tools/metrics/actions/chromeactions.txt +++ b/tools/metrics/actions/chromeactions.txt @@ -1131,6 +1131,7 @@ 0x23f55337b40c7686 MobileNTPBookmark 0x2927c5a40258df17 MobileNTPForeignSession 0x5a4f535062ffe001 MobileNTPMostVisited +0x89a6184c5dabd612 MobileNTPRecentlyClosed 0xc172db5c29ae2771 MobileNTPSwitchToBookmarks 0xd4df8c01afe71935 MobileNTPSwitchToIncognito 0x46c727e82f8494bc MobileNTPSwitchToMostVisited @@ -1632,6 +1633,7 @@ 0xedf6e4b0b320885f ToggleItalic 0x904d810f7dd68a8e ToggleUnderline 0xb92bc75c64039682 Toolbar_DragStar +0xa7e3acf7f6fac337 Touchpad_Gesture_Overview 0x8ce9fbd537e4983c TouchscreenScroll 0x112c55c811540624 TouchscreenScrollFling 0x05691d7006369070 Touchscreen_Down diff --git a/tools/metrics/actions/extract_actions.py b/tools/metrics/actions/extract_actions.py index 2dd62bf..52e6171 100755 --- a/tools/metrics/actions/extract_actions.py +++ b/tools/metrics/actions/extract_actions.py @@ -250,6 +250,7 @@ def AddAndroidActions(actions): actions.add('MobileNTPBookmark') actions.add('MobileNTPForeignSession') actions.add('MobileNTPMostVisited') + actions.add('MobileNTPRecentlyClosed') actions.add('MobileNTPSwitchToBookmarks') actions.add('MobileNTPSwitchToIncognito') actions.add('MobileNTPSwitchToMostVisited') |