summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-18 03:25:49 +0000
committerestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-18 03:25:49 +0000
commit6ef3e8a35240974505302343ae3a4691cea74f6f (patch)
treecd956fc85e2b5f37b58f6d0ad2b6a05579c9c25e
parent91a7ab6a2451184e1fb53171b47acc51f0ed5b28 (diff)
downloadchromium_src-6ef3e8a35240974505302343ae3a4691cea74f6f.zip
chromium_src-6ef3e8a35240974505302343ae3a4691cea74f6f.tar.gz
chromium_src-6ef3e8a35240974505302343ae3a4691cea74f6f.tar.bz2
record UMA histogram for different bookmark launch types
for now, only record on windows. BUG=97141 TEST=none Review URL: http://codereview.chromium.org/8231035 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106023 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/autocomplete/autocomplete_edit.cc4
-rw-r--r--chrome/browser/bookmarks/bookmark_utils.cc10
-rw-r--r--chrome/browser/bookmarks/bookmark_utils.h24
-rw-r--r--chrome/browser/extensions/extension_bookmark_manager_api.cc5
-rw-r--r--chrome/browser/extensions/extension_bookmark_manager_api.h8
-rw-r--r--chrome/browser/resources/bookmark_manager/js/main.js2
-rw-r--r--chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc4
-rw-r--r--chrome/browser/ui/views/bookmarks/bookmark_context_menu_controller_views.cc1
-rw-r--r--chrome/browser/ui/views/bookmarks/bookmark_menu_controller_views.cc3
-rw-r--r--chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc15
-rw-r--r--chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.h7
-rw-r--r--chrome/browser/ui/views/wrench_menu.cc3
12 files changed, 78 insertions, 8 deletions
diff --git a/chrome/browser/autocomplete/autocomplete_edit.cc b/chrome/browser/autocomplete/autocomplete_edit.cc
index 525b260..989045c 100644
--- a/chrome/browser/autocomplete/autocomplete_edit.cc
+++ b/chrome/browser/autocomplete/autocomplete_edit.cc
@@ -17,6 +17,7 @@
#include "chrome/browser/autocomplete/autocomplete_popup_view.h"
#include "chrome/browser/autocomplete/keyword_provider.h"
#include "chrome/browser/autocomplete/search_provider.h"
+#include "chrome/browser/bookmarks/bookmark_utils.h"
#include "chrome/browser/command_updater.h"
#include "chrome/browser/extensions/extension_omnibox_api.h"
#include "chrome/browser/google/google_url_tracker.h"
@@ -569,6 +570,9 @@ void AutocompleteEditModel::OpenMatch(const AutocompleteMatch& match,
match.transition, alternate_nav_url);
}
+ if (match.starred)
+ bookmark_utils::RecordBookmarkLaunch(bookmark_utils::LAUNCH_OMNIBOX);
+
InstantController* instant = controller_->GetInstant();
if (instant && !popup_->IsOpen())
instant->DestroyPreviewContents();
diff --git a/chrome/browser/bookmarks/bookmark_utils.cc b/chrome/browser/bookmarks/bookmark_utils.cc
index 0029441..5213d45 100644
--- a/chrome/browser/bookmarks/bookmark_utils.cc
+++ b/chrome/browser/bookmarks/bookmark_utils.cc
@@ -10,6 +10,7 @@
#include "base/file_path.h"
#include "base/i18n/case_conversion.h"
#include "base/i18n/string_search.h"
+#include "base/metrics/histogram.h"
#include "base/string16.h"
#include "base/string_number_conversions.h"
#include "base/time.h"
@@ -768,4 +769,13 @@ void RemoveAllBookmarks(BookmarkModel* model, const GURL& url) {
}
}
+void RecordBookmarkLaunch(BookmarkLaunchLocation location) {
+#if defined(OS_WIN)
+ // TODO(estade): do this on other platforms too. For now it's compiled out
+ // so that stats from platforms for which this is incompletely implemented
+ // don't mix in with Windows, where it should be implemented exhaustively.
+ UMA_HISTOGRAM_ENUMERATION("Bookmarks.LaunchLocation", location, LAUNCH_LIMIT);
+#endif
+}
+
} // namespace bookmark_utils
diff --git a/chrome/browser/bookmarks/bookmark_utils.h b/chrome/browser/bookmarks/bookmark_utils.h
index 9cd73f7..84de9d2 100644
--- a/chrome/browser/bookmarks/bookmark_utils.h
+++ b/chrome/browser/bookmarks/bookmark_utils.h
@@ -239,6 +239,30 @@ void RemoveAllBookmarks(BookmarkModel* model, const GURL& url);
// value.
extern int num_urls_before_prompting;
+// This enum is used for the Bookmarks.LaunchLocation histogram.
+enum BookmarkLaunchLocation {
+ LAUNCH_ATTACHED_BAR = 0,
+ LAUNCH_DETACHED_BAR,
+ // These two are kind of sub-categories of the bookmark bar. Generally
+ // a launch from a context menu or subfolder could be classified in one of
+ // the other two bar buckets, but doing so is difficult because the menus
+ // don't know of their greater place in Chrome.
+ LAUNCH_BAR_SUBFOLDER,
+ LAUNCH_CONTEXT_MENU,
+
+ // Bookmarks menu within wrench menu.
+ LAUNCH_WRENCH_MENU,
+ // Bookmark manager.
+ LAUNCH_MANAGER,
+ // Autocomplete suggestion.
+ LAUNCH_OMNIBOX,
+
+ LAUNCH_LIMIT // Keep this last.
+};
+
+// Records the launch of a bookmark for UMA purposes.
+void RecordBookmarkLaunch(BookmarkLaunchLocation location);
+
} // namespace bookmark_utils
#endif // CHROME_BROWSER_BOOKMARKS_BOOKMARK_UTILS_H_
diff --git a/chrome/browser/extensions/extension_bookmark_manager_api.cc b/chrome/browser/extensions/extension_bookmark_manager_api.cc
index 10da193..8fb6e80 100644
--- a/chrome/browser/extensions/extension_bookmark_manager_api.cc
+++ b/chrome/browser/extensions/extension_bookmark_manager_api.cc
@@ -480,3 +480,8 @@ bool CanEditBookmarkManagerFunction::RunImpl() {
profile_->GetPrefs()->GetBoolean(prefs::kEditBookmarksEnabled)));
return true;
}
+
+bool RecordLaunchBookmarkFunction::RunImpl() {
+ bookmark_utils::RecordBookmarkLaunch(bookmark_utils::LAUNCH_MANAGER);
+ return true;
+}
diff --git a/chrome/browser/extensions/extension_bookmark_manager_api.h b/chrome/browser/extensions/extension_bookmark_manager_api.h
index 0f02d59..f17b815 100644
--- a/chrome/browser/extensions/extension_bookmark_manager_api.h
+++ b/chrome/browser/extensions/extension_bookmark_manager_api.h
@@ -138,4 +138,12 @@ class CanEditBookmarkManagerFunction : public BookmarksFunction {
DECLARE_EXTENSION_FUNCTION_NAME("experimental.bookmarkManager.canEdit");
};
+class RecordLaunchBookmarkFunction : public BookmarksFunction {
+ public:
+ virtual bool RunImpl() OVERRIDE;
+
+ private:
+ DECLARE_EXTENSION_FUNCTION_NAME("experimental.bookmarkManager.recordLaunch")
+};
+
#endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_BOOKMARK_MANAGER_API_H_
diff --git a/chrome/browser/resources/bookmark_manager/js/main.js b/chrome/browser/resources/bookmark_manager/js/main.js
index 86210bb..ff5f848 100644
--- a/chrome/browser/resources/bookmark_manager/js/main.js
+++ b/chrome/browser/resources/bookmark_manager/js/main.js
@@ -246,6 +246,7 @@ list.addEventListener('dblclick', function(e) {
// folder part.
list.addEventListener('urlClicked', function(e) {
getLinkController().openUrlFromEvent(e.url, e.originalEvent);
+ chrome.experimental.bookmarkManager.recordLaunch();
});
$('term').onsearch = function(e) {
@@ -1415,6 +1416,7 @@ function openBookmarks(kind) {
addNodes(v);
});
getLinkController().openUrls(urls, kind);
+ chrome.experimental.bookmarkManager.recordLaunch();
});
}
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
index 2d3c10f..743ae14 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
+++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
@@ -1070,6 +1070,10 @@ void BookmarkBarView::ButtonPressed(views::Button* sender,
bookmark_utils::OpenAll(GetWidget()->GetNativeWindow(), profile,
page_navigator_, node, disposition_from_event_flags);
}
+
+ bookmark_utils::RecordBookmarkLaunch(IsDetached() ?
+ bookmark_utils::LAUNCH_DETACHED_BAR :
+ bookmark_utils::LAUNCH_ATTACHED_BAR);
UserMetrics::RecordAction(UserMetricsAction("ClickedBookmarkBarURLButton"));
}
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_context_menu_controller_views.cc b/chrome/browser/ui/views/bookmarks/bookmark_context_menu_controller_views.cc
index 35fae7e..41e9cd6 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_context_menu_controller_views.cc
+++ b/chrome/browser/ui/views/bookmarks/bookmark_context_menu_controller_views.cc
@@ -116,6 +116,7 @@ void BookmarkContextMenuControllerViews::ExecuteCommand(int id) {
bookmark_utils::OpenAll(parent_widget_->GetNativeWindow(),
profile_, navigator_, selection_,
initial_disposition);
+ bookmark_utils::RecordBookmarkLaunch(bookmark_utils::LAUNCH_CONTEXT_MENU);
break;
}
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_menu_controller_views.cc b/chrome/browser/ui/views/bookmarks/bookmark_menu_controller_views.cc
index 966f0d9..8f1ed27 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_menu_controller_views.cc
+++ b/chrome/browser/ui/views/bookmarks/bookmark_menu_controller_views.cc
@@ -40,7 +40,8 @@ BookmarkMenuController::BookmarkMenuController(Profile* profile,
for_drop_(false),
bookmark_bar_(NULL) {
menu_delegate_->Init(this, NULL, node, start_child_index,
- BookmarkMenuDelegate::HIDE_OTHER_FOLDER);
+ BookmarkMenuDelegate::HIDE_OTHER_FOLDER,
+ bookmark_utils::LAUNCH_BAR_SUBFOLDER);
menu_runner_.reset(new views::MenuRunner(menu_delegate_->menu()));
}
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc b/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc
index 6799a4e..74d5611 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc
+++ b/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc
@@ -51,11 +51,13 @@ BookmarkMenuDelegate::~BookmarkMenuDelegate() {
profile_->GetBookmarkModel()->RemoveObserver(this);
}
-void BookmarkMenuDelegate::Init(views::MenuDelegate* real_delegate,
- MenuItemView* parent,
- const BookmarkNode* node,
- int start_child_index,
- ShowOptions show_options) {
+void BookmarkMenuDelegate::Init(
+ views::MenuDelegate* real_delegate,
+ MenuItemView* parent,
+ const BookmarkNode* node,
+ int start_child_index,
+ ShowOptions show_options,
+ bookmark_utils::BookmarkLaunchLocation location) {
profile_->GetBookmarkModel()->AddObserver(this);
real_delegate_ = real_delegate;
if (parent) {
@@ -78,6 +80,8 @@ void BookmarkMenuDelegate::Init(views::MenuDelegate* real_delegate,
} else {
menu_ = CreateMenu(node, start_child_index, show_options);
}
+
+ location_ = location;
}
void BookmarkMenuDelegate::SetPageNavigator(PageNavigator* navigator) {
@@ -123,6 +127,7 @@ void BookmarkMenuDelegate::ExecuteCommand(int id, int mouse_event_flags) {
bookmark_utils::OpenAll(parent_->GetNativeWindow(), profile_, page_navigator_,
selection, initial_disposition);
+ bookmark_utils::RecordBookmarkLaunch(location_);
}
bool BookmarkMenuDelegate::GetDropFormats(
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.h b/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.h
index ef4330d..479cbe9 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.h
+++ b/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.h
@@ -11,6 +11,7 @@
#include "chrome/browser/bookmarks/base_bookmark_model_observer.h"
#include "chrome/browser/bookmarks/bookmark_node_data.h"
+#include "chrome/browser/bookmarks/bookmark_utils.h"
#include "chrome/browser/ui/views/bookmarks/bookmark_context_menu.h"
#include "views/controls/menu/menu_delegate.h"
@@ -56,7 +57,8 @@ class BookmarkMenuDelegate : public BaseBookmarkModelObserver,
views::MenuItemView* parent,
const BookmarkNode* node,
int start_child_index,
- ShowOptions show_options);
+ ShowOptions show_options,
+ bookmark_utils::BookmarkLaunchLocation);
// Sets the PageNavigator.
void SetPageNavigator(PageNavigator* navigator);
@@ -184,6 +186,9 @@ class BookmarkMenuDelegate : public BaseBookmarkModelObserver,
// Is the model being changed?
bool is_mutating_model_;
+ // The location where this bookmark menu will be displayed (for UMA).
+ bookmark_utils::BookmarkLaunchLocation location_;
+
DISALLOW_COPY_AND_ASSIGN(BookmarkMenuDelegate);
};
diff --git a/chrome/browser/ui/views/wrench_menu.cc b/chrome/browser/ui/views/wrench_menu.cc
index df5c398..64e5ede 100644
--- a/chrome/browser/ui/views/wrench_menu.cc
+++ b/chrome/browser/ui/views/wrench_menu.cc
@@ -885,5 +885,6 @@ void WrenchMenu::CreateBookmarkMenu() {
first_bookmark_command_id_));
bookmark_menu_delegate_->Init(
this, bookmark_menu_, model->bookmark_bar_node(), 0,
- BookmarkMenuDelegate::SHOW_OTHER_FOLDER);
+ BookmarkMenuDelegate::SHOW_OTHER_FOLDER,
+ bookmark_utils::LAUNCH_WRENCH_MENU);
}