summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKibeom Kim <kkimlabs@chromium.org>2015-08-28 10:44:34 -0700
committerKibeom Kim <kkimlabs@chromium.org>2015-08-28 17:45:35 +0000
commitf15b3462f400dd51fa20e052c60066680dcef193 (patch)
tree13907175a8263336d5e6e771ab00bf8ee12a6636
parent1fb0413df1d88ac841dd834ab330b6b44e1bd747 (diff)
downloadchromium_src-f15b3462f400dd51fa20e052c60066680dcef193.zip
chromium_src-f15b3462f400dd51fa20e052c60066680dcef193.tar.gz
chromium_src-f15b3462f400dd51fa20e052c60066680dcef193.tar.bz2
[Android] Add UMA for opening bookmark action types.
User can open a bookmark by 1. Tapping 2. Long-press -> "Open in new tab" 3. Long-press -> "Open in incognito tab" and we would like to measure how much 2. and 3. are useful. BUG=525792 Review URL: https://codereview.chromium.org/1311543004 Cr-Commit-Position: refs/heads/master@{#346096} (cherry picked from commit 61120a01f3b859cb8c8e01f0e3cc4c026577aafd) TBR=newt@chromium.org,isherman@chromium.org Review URL: https://codereview.chromium.org/1312783004 . Cr-Commit-Position: refs/branch-heads/2490@{#70} Cr-Branched-From: 7790a3535f2a81a03685eca31a32cf69ae0c114f-refs/heads/master@{#344925}
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/ntp/BookmarksPage.java22
-rw-r--r--tools/metrics/histograms/histograms.xml15
2 files changed, 32 insertions, 5 deletions
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/BookmarksPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/BookmarksPage.java
index 80c3369..ff1842e 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/BookmarksPage.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/BookmarksPage.java
@@ -14,6 +14,7 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import org.chromium.base.metrics.RecordHistogram;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.BookmarksBridge;
import org.chromium.chrome.browser.BookmarksBridge.BookmarkItem;
@@ -131,6 +132,15 @@ public class BookmarksPage implements NativePage, InvalidationAwareThumbnailProv
* Delegates user triggered actions for the bookmarks page.
*/
private class BookmarksPageManagerImpl implements BookmarksPageManager {
+ // This must remain in sync with Bookmarks.OpenAction in
+ // tools/metrics/histograms/histograms.xml. Also, never remove or reorder histogram values.
+ // It is safe to append new values to the end.
+ private static final String ACTION_OPEN_BOOKMARK_HISTOGRAM = "Bookmarks.OpenAction";
+ protected static final int ACTION_OPEN_BOOKMARK_CURRENT_TAB = 0;
+ protected static final int ACTION_OPEN_BOOKMARK_NEW_TAB = 1;
+ protected static final int ACTION_OPEN_BOOKMARK_NEW_INCOGNITO_TAB = 2;
+ protected static final int ACTION_OPEN_BOOKMARK_BOUNDARY = 3;
+
protected Tab mTab;
protected TabModelSelector mTabModelSelector;
@@ -139,9 +149,11 @@ public class BookmarksPage implements NativePage, InvalidationAwareThumbnailProv
mTabModelSelector = tabModelSelector;
}
- protected void recordOpenedBookmark() {
+ protected void recordOpenedBookmark(int action) {
if (!isIncognito()) {
NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_BOOKMARK);
+ RecordHistogram.recordEnumeratedHistogram(ACTION_OPEN_BOOKMARK_HISTOGRAM, action,
+ ACTION_OPEN_BOOKMARK_BOUNDARY);
}
}
@@ -176,7 +188,7 @@ public class BookmarksPage implements NativePage, InvalidationAwareThumbnailProv
mTab.loadUrl(new LoadUrlParams(
UrlConstants.BOOKMARKS_FOLDER_URL + item.getBookmarkId().toString()));
} else {
- recordOpenedBookmark();
+ recordOpenedBookmark(ACTION_OPEN_BOOKMARK_CURRENT_TAB);
mTab.loadUrl(new LoadUrlParams(item.getUrl()));
}
}
@@ -184,7 +196,7 @@ public class BookmarksPage implements NativePage, InvalidationAwareThumbnailProv
@Override
public void openInNewTab(BookmarkItemView item) {
assert !item.isFolder();
- recordOpenedBookmark();
+ recordOpenedBookmark(ACTION_OPEN_BOOKMARK_NEW_TAB);
mTabModelSelector.openNewTab(new LoadUrlParams(item.getUrl()),
TabLaunchType.FROM_LONGPRESS_BACKGROUND, mTab,
mTabModelSelector.isIncognitoSelected());
@@ -193,7 +205,7 @@ public class BookmarksPage implements NativePage, InvalidationAwareThumbnailProv
@Override
public void openInNewIncognitoTab(BookmarkItemView item) {
assert !item.isFolder();
- recordOpenedBookmark();
+ recordOpenedBookmark(ACTION_OPEN_BOOKMARK_NEW_INCOGNITO_TAB);
mTabModelSelector.openNewTab(new LoadUrlParams(item.getUrl()),
TabLaunchType.FROM_LONGPRESS_FOREGROUND, mTab, true);
}
@@ -248,7 +260,7 @@ public class BookmarksPage implements NativePage, InvalidationAwareThumbnailProv
if (item.isFolder()) {
updateBookmarksPageContents(item.getBookmarkId(), false);
} else {
- recordOpenedBookmark();
+ recordOpenedBookmark(ACTION_OPEN_BOOKMARK_CURRENT_TAB);
mListener.onBookmarkSelected(item.getUrl(), item.getTitle(), item.getFavicon());
}
}
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index 3dfc10d..d12eb2b 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -2990,6 +2990,15 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries.
</summary>
</histogram>
+<histogram name="Bookmarks.OpenAction" enum="BookmarksOpenAction">
+ <owner>kkimlabs@chromium.org</owner>
+ <summary>
+ Logs how user is opening a bookmark on Android. For example, user can long
+ press and select &quot;Open in a new tab&quot; or &quot;Open in incognito
+ tab&quot;.
+ </summary>
+</histogram>
+
<histogram name="BrowserRenderProcessHost.ChildCrashes" enum="RendererType">
<owner>wfh@chromium.org</owner>
<summary>Count of renderer process crashes grouped by type.</summary>
@@ -53013,6 +53022,12 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries.
<int value="6" label="Experiment enabled (sync unknown)"/>
</enum>
+<enum name="BookmarksOpenAction" type="int">
+ <int value="0" label="Open in current tab"/>
+ <int value="1" label="Open in new tab"/>
+ <int value="2" label="Open in incognito tab"/>
+</enum>
+
<enum name="Boolean" type="int">
<int value="0" label="False"/>
<int value="1" label="True"/>