Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6554)

Unified Diff: chrome/browser/ui/toolbar/wrench_menu_model.cc

Issue 700673003: Add metrics to all items in the 'wrench' menu (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add WrenchMenu.TimeToAction timings histogram Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/toolbar/wrench_menu_model.cc
diff --git a/chrome/browser/ui/toolbar/wrench_menu_model.cc b/chrome/browser/ui/toolbar/wrench_menu_model.cc
index cedb29767146d6c5ce194e2507186d567665edef..ce8ecb3a47e10cfb9dc870ac8f23c8eaa0755f4b 100644
--- a/chrome/browser/ui/toolbar/wrench_menu_model.cc
+++ b/chrome/browser/ui/toolbar/wrench_menu_model.cc
@@ -8,6 +8,7 @@
#include <cmath>
#include "base/command_line.h"
+#include "base/metrics/histogram.h"
#include "base/prefs/pref_service.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
@@ -276,6 +277,7 @@ void ToolsMenuModel::Build(Browser* browser) {
WrenchMenuModel::WrenchMenuModel(ui::AcceleratorProvider* provider,
Browser* browser)
: ui::SimpleMenuModel(this),
+ uma_action_recorded_(false),
provider_(provider),
browser_(browser),
tab_strip_model_(browser_->tab_strip_model()) {
@@ -404,17 +406,345 @@ void WrenchMenuModel::ExecuteCommand(int command_id, int event_flags) {
}
}
- if (command_id == IDC_HELP_PAGE_VIA_MENU)
- content::RecordAction(UserMetricsAction("ShowHelpTabViaWrenchMenu"));
+ LogMenuMetrics(command_id);
+ chrome::ExecuteCommand(browser_, command_id);
+}
- if (command_id == IDC_FULLSCREEN) {
- // We issue the UMA command here and not in BrowserCommandController or even
- // FullscreenController since we want to be able to distinguish this event
- // and a menu which is under development.
- content::RecordAction(UserMetricsAction("EnterFullScreenWithWrenchMenu"));
- }
+void WrenchMenuModel::LogMenuMetrics(int command_id) {
+ base::TimeDelta now = timer_.Elapsed();
- chrome::ExecuteCommand(browser_, command_id);
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction", now);
+
+ // Menu user metrics
Peter Kasting 2014/11/14 19:48:59 Nit: This comment is meaningless, remove.
edwardjung 2014/11/17 15:58:23 Done.
+ switch (command_id) {
+ case IDC_NEW_TAB:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.NewTab", now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction", MENU_ACTION_NEW_TAB,
+ LIMIT_MENU_ACTION);
+ break;
+ case IDC_NEW_WINDOW:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.NewWindow", now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction", MENU_ACTION_NEW_WINDOW,
+ LIMIT_MENU_ACTION);
+ break;
+ case IDC_NEW_INCOGNITO_WINDOW:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.NewIncognitoWindow",
+ now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction",
+ MENU_ACTION_NEW_INCOGNITO_WINDOW,
+ LIMIT_MENU_ACTION);
+ break;
+
+ // Bookmarks sub menu.
+ case IDC_SHOW_BOOKMARK_BAR:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ShowBookmarkBar",
+ now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction",
+ MENU_ACTION_SHOW_BOOKMARK_BAR,
+ LIMIT_MENU_ACTION);
+ break;
+ case IDC_SHOW_BOOKMARK_MANAGER:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ShowBookmarkMgr",
+ now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction",
+ MENU_ACTION_SHOW_BOOKMARK_MANAGER,
+ LIMIT_MENU_ACTION);
+ break;
+ case IDC_IMPORT_SETTINGS:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ImportSettings",
+ now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction",
+ MENU_ACTION_IMPORT_SETTINGS,
+ LIMIT_MENU_ACTION);
+ break;
+ case IDC_BOOKMARK_PAGE:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.BookmarkPage", now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction",
+ MENU_ACTION_BOOKMARK_PAGE,
+ LIMIT_MENU_ACTION);
+ break;
+ case IDC_BOOKMARK_ALL_TABS:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.BookmarkAllTabs",
+ now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction",
+ MENU_ACTION_BOOKMARK_ALL_TABS,
+ LIMIT_MENU_ACTION);
+ break;
+ case IDC_PIN_TO_START_SCREEN:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.PinToStartScreen",
+ now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction",
+ MENU_ACTION_PIN_TO_START_SCREEN,
+ LIMIT_MENU_ACTION);
+ break;
+
+ // Recent tabs menu.
+ case IDC_RESTORE_TAB:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.RestoreTab", now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction",
+ MENU_ACTION_RESTORE_TAB,
+ LIMIT_MENU_ACTION);
+ break;
+
+ // Windows.
+ case IDC_WIN_DESKTOP_RESTART:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.WinDesktopRestart",
+ now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction",
+ MENU_ACTION_WIN_DESKTOP_RESTART,
+ LIMIT_MENU_ACTION);
+ break;
+ case IDC_WIN8_METRO_RESTART:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.Win8MetroRestart",
+ now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction",
+ MENU_ACTION_WIN8_METRO_RESTART,
+ LIMIT_MENU_ACTION);
+ break;
+
+ case IDC_WIN_CHROMEOS_RESTART:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ChromeOSRestart",
+ now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction",
+ MENU_ACTION_WIN_CHROMEOS_RESTART,
+ LIMIT_MENU_ACTION);
+ break;
+ case IDC_DISTILL_PAGE:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.DistillPage", now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction",
+ MENU_ACTION_DISTILL_PAGE,
+ LIMIT_MENU_ACTION);
+ break;
+ case IDC_SAVE_PAGE:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.SavePage", now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction",
+ MENU_ACTION_SAVE_PAGE,
+ LIMIT_MENU_ACTION);
+ break;
+ case IDC_FIND:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.Find", now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction", MENU_ACTION_FIND,
+ LIMIT_MENU_ACTION);
+ break;
+ case IDC_PRINT:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.Print", now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction", MENU_ACTION_PRINT,
+ LIMIT_MENU_ACTION);
+ break;
+
+ // Edit menu.
+ case IDC_CUT:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.Cut", now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction", MENU_ACTION_CUT,
+ LIMIT_MENU_ACTION);
+ break;
+ case IDC_COPY:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.Copy", now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction", MENU_ACTION_COPY,
+ LIMIT_MENU_ACTION);
+ break;
+ case IDC_PASTE:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.Paste", now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction", MENU_ACTION_PASTE,
+ LIMIT_MENU_ACTION);
+ break;
+
+ // Tools menu.
+ case IDC_CREATE_HOSTED_APP:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.CreateHostedApp",
+ now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction",
+ MENU_ACTION_CREATE_HOSTED_APP,
+ LIMIT_MENU_ACTION);
+ break;
+ case IDC_CREATE_SHORTCUTS:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.CreateShortcuts",
+ now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction",
+ MENU_ACTION_CREATE_SHORTCUTS,
+ LIMIT_MENU_ACTION);
+ break;
+ case IDC_MANAGE_EXTENSIONS:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ManageExtensions",
+ now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction",
+ MENU_ACTION_MANAGE_EXTENSIONS,
+ LIMIT_MENU_ACTION);
+ break;
+ case IDC_TASK_MANAGER:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.TaskManager", now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction",
+ MENU_ACTION_TASK_MANAGER,
+ LIMIT_MENU_ACTION);
+ break;
+ case IDC_CLEAR_BROWSING_DATA:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ClearBrowsingData",
+ now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction",
+ MENU_ACTION_CLEAR_BROWSING_DATA,
+ LIMIT_MENU_ACTION);
+ break;
+ case IDC_VIEW_SOURCE:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ViewSource", now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction",
+ MENU_ACTION_VIEW_SOURCE,
+ LIMIT_MENU_ACTION);
+ break;
+ case IDC_DEV_TOOLS:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.DevTools", now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction", MENU_ACTION_DEV_TOOLS,
+ LIMIT_MENU_ACTION);
+ break;
+ case IDC_DEV_TOOLS_CONSOLE:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.DevToolsConsole",
+ now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction",
+ MENU_ACTION_DEV_TOOLS_CONSOLE,
+ LIMIT_MENU_ACTION);
+ break;
+ case IDC_DEV_TOOLS_DEVICES:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.DevToolsDevices",
+ now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction",
+ MENU_ACTION_DEV_TOOLS_DEVICES,
+ LIMIT_MENU_ACTION);
+ break;
+ case IDC_PROFILING_ENABLED:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ProfilingEnabled",
+ now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction",
+ MENU_ACTION_PROFILING_ENABLED,
+ LIMIT_MENU_ACTION);
+ break;
+
+ // Zoom menu
+ case IDC_ZOOM_MINUS:
+ if (!uma_action_recorded_) {
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ZoomMinus", now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction",
+ MENU_ACTION_ZOOM_MINUS, LIMIT_MENU_ACTION);
+ uma_action_recorded_ = true;
+ }
+ break;
+ case IDC_ZOOM_PLUS:
+ if (!uma_action_recorded_) {
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ZoomPlus", now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction",
+ MENU_ACTION_ZOOM_PLUS, LIMIT_MENU_ACTION);
Alexei Svitkine (slow) 2014/11/15 00:00:16 Please make a helper function for this macro. Each
Peter Kasting 2014/11/15 00:03:10 I'm not sure that's feasible. Don't we have to ex
Alexei Svitkine (slow) 2014/11/15 00:06:43 I'm suggesting specifically for "WrenchMenu.MenuAc
edwardjung 2014/11/17 15:58:23 Done.
+ uma_action_recorded_ = true;
+ }
+ break;
+ case IDC_FULLSCREEN:
+ content::RecordAction(UserMetricsAction("EnterFullScreenWithWrenchMenu"));
+
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.EnterFullScreen",
+ now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction", MENU_ACTION_FULLSCREEN,
+ LIMIT_MENU_ACTION);
+ break;
+
+ case IDC_SHOW_HISTORY:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ShowHistory", now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction",
+ MENU_ACTION_SHOW_HISTORY,
+ LIMIT_MENU_ACTION);
+ break;
+ case IDC_SHOW_DOWNLOADS:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ShowDownloads",
+ now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction",
+ MENU_ACTION_SHOW_DOWNLOADS,
+ LIMIT_MENU_ACTION);
+ break;
+ case IDC_SHOW_SYNC_SETUP:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ShowSyncSetup",
+ now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction",
+ MENU_ACTION_SHOW_SYNC_SETUP,
+ LIMIT_MENU_ACTION);
+ break;
+ case IDC_OPTIONS:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.Settings", now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction", MENU_ACTION_OPTIONS,
+ LIMIT_MENU_ACTION);
+ break;
+ case IDC_ABOUT:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.About", now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction", MENU_ACTION_ABOUT,
+ LIMIT_MENU_ACTION);
+ break;
+
+ // Help menu.
+ case IDC_HELP_PAGE_VIA_MENU:
+ content::RecordAction(UserMetricsAction("ShowHelpTabViaWrenchMenu"));
+
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.HelpPage", now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction",
+ MENU_ACTION_HELP_PAGE_VIA_MENU,
+ LIMIT_MENU_ACTION);
+ break;
+ #if defined(GOOGLE_CHROME_BUILD)
+ case IDC_FEEDBACK:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.Feedback", now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction", MENU_ACTION_FEEDBACK,
+ LIMIT_MENU_ACTION);
+ break;
+ #endif
+
+ case IDC_TOGGLE_REQUEST_TABLET_SITE:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.RequestTabletSite",
+ now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction",
+ MENU_ACTION_TOGGLE_REQUEST_TABLET_SITE,
+ LIMIT_MENU_ACTION);
+ break;
+ case IDC_EXIT:
+ if (!uma_action_recorded_)
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.Exit", now);
+ UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction", MENU_ACTION_EXIT,
+ LIMIT_MENU_ACTION);
+ break;
+ }
}
bool WrenchMenuModel::IsCommandIdChecked(int command_id) const {
@@ -665,6 +995,7 @@ void WrenchMenuModel::Build() {
}
RemoveTrailingSeparators();
+ uma_action_recorded_ = false;
}
void WrenchMenuModel::AddGlobalErrorMenuItems() {

Powered by Google App Engine
This is Rietveld 408576698