summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornewt@chromium.org <newt@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-04 19:12:55 +0000
committernewt@chromium.org <newt@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-04 19:12:55 +0000
commit21bb906f7ce89a54bf8ecdb951771bb25069e43c (patch)
treef15f862972f4e64669318b943501c46d520fa457
parent38bab02b6e4043164b9aeeff9bcebbd8cc82282d (diff)
downloadchromium_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.java1
-rw-r--r--chrome/browser/android/url_utilities.cc17
-rw-r--r--chrome/browser/ui/webui/ntp/android/navigation_handler.cc43
-rw-r--r--tools/metrics/actions/chromeactions.txt2
-rwxr-xr-xtools/metrics/actions/extract_actions.py1
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')