diff options
author | Kibeom Kim <kkimlabs@chromium.org> | 2015-08-28 10:44:34 -0700 |
---|---|---|
committer | Kibeom Kim <kkimlabs@chromium.org> | 2015-08-28 17:45:35 +0000 |
commit | f15b3462f400dd51fa20e052c60066680dcef193 (patch) | |
tree | 13907175a8263336d5e6e771ab00bf8ee12a6636 | |
parent | 1fb0413df1d88ac841dd834ab330b6b44e1bd747 (diff) | |
download | chromium_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.java | 22 | ||||
-rw-r--r-- | tools/metrics/histograms/histograms.xml | 15 |
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 "Open in a new tab" or "Open in incognito + tab". + </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"/> |