diff options
author | edwardjung <edwardjung@chromium.org> | 2014-11-18 03:47:12 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-11-18 11:47:45 +0000 |
commit | b8dde40da782604227baee3cd28c774920a13470 (patch) | |
tree | b335128f4a19bcb2fc4fffc9f528aaea5210c366 | |
parent | e290fe097bb6ee75c289b512efad07a1d2830489 (diff) | |
download | chromium_src-b8dde40da782604227baee3cd28c774920a13470.zip chromium_src-b8dde40da782604227baee3cd28c774920a13470.tar.gz chromium_src-b8dde40da782604227baee3cd28c774920a13470.tar.bz2 |
Added histograms:
+ count frequency of use for each of the menu items.
+ log time taken to get to any menu item.
+ time taken to get to individual menu items.
BUG=432561
Review URL: https://codereview.chromium.org/700673003
Cr-Commit-Position: refs/heads/master@{#304586}
-rw-r--r-- | chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.cc | 4 | ||||
-rw-r--r-- | chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.h | 4 | ||||
-rw-r--r-- | chrome/browser/ui/toolbar/wrench_menu_model.cc | 309 | ||||
-rw-r--r-- | chrome/browser/ui/toolbar/wrench_menu_model.h | 67 | ||||
-rw-r--r-- | chrome/browser/ui/views/toolbar/wrench_menu.cc | 5 | ||||
-rw-r--r-- | chrome/browser/ui/views/toolbar/wrench_menu.h | 5 | ||||
-rw-r--r-- | tools/metrics/histograms/histograms.xml | 107 |
7 files changed, 493 insertions, 8 deletions
diff --git a/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.cc b/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.cc index 7c0218b..a42367e 100644 --- a/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.cc +++ b/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.cc @@ -310,6 +310,10 @@ void RecentTabsSubMenuModel::ExecuteCommand(int command_id, int event_flags) { browser_->host_desktop_type(), disposition); } } + UMA_HISTOGRAM_TIMES("WrenchMenu.TimeToAction.RecentTab", + menu_opened_timer_.Elapsed()); + UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction", MENU_ACTION_RECENT_TAB, + LIMIT_MENU_ACTION); } int RecentTabsSubMenuModel::GetFirstRecentTabsCommandId() { diff --git a/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.h b/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.h index 4210a22..1e0df0a 100644 --- a/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.h +++ b/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.h @@ -9,6 +9,7 @@ #include "base/memory/weak_ptr.h" #include "base/task/cancelable_task_tracker.h" +#include "base/timer/elapsed_timer.h" #include "chrome/browser/favicon/favicon_service.h" #include "chrome/browser/sessions/tab_restore_service.h" #include "chrome/browser/sessions/tab_restore_service_observer.h" @@ -171,6 +172,9 @@ class RecentTabsSubMenuModel : public ui::SimpleMenuModel, base::WeakPtrFactory<RecentTabsSubMenuModel> weak_ptr_factory_; + // Time the menu is open for until a recent tab is selected. + base::ElapsedTimer menu_opened_timer_; + DISALLOW_COPY_AND_ASSIGN(RecentTabsSubMenuModel); }; diff --git a/chrome/browser/ui/toolbar/wrench_menu_model.cc b/chrome/browser/ui/toolbar/wrench_menu_model.cc index 27f91c3..cc1170b 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" @@ -277,6 +278,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()) { @@ -408,17 +410,307 @@ 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); +} + +void WrenchMenuModel::LogMenuMetrics(int command_id) { + base::TimeDelta delta = timer_.Elapsed(); + + switch (command_id) { + case IDC_NEW_TAB: + if (!uma_action_recorded_) + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.NewTab", delta); + LogMenuAction(MENU_ACTION_NEW_TAB); + break; + case IDC_NEW_WINDOW: + if (!uma_action_recorded_) + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.NewWindow", delta); + LogMenuAction(MENU_ACTION_NEW_WINDOW); + break; + case IDC_NEW_INCOGNITO_WINDOW: + if (!uma_action_recorded_) { + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.NewIncognitoWindow", + delta); + } + LogMenuAction(MENU_ACTION_NEW_INCOGNITO_WINDOW); + break; + + // Bookmarks sub menu. + case IDC_SHOW_BOOKMARK_BAR: + if (!uma_action_recorded_) { + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ShowBookmarkBar", + delta); + } + LogMenuAction(MENU_ACTION_SHOW_BOOKMARK_BAR); + break; + case IDC_SHOW_BOOKMARK_MANAGER: + if (!uma_action_recorded_) { + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ShowBookmarkMgr", + delta); + } + LogMenuAction(MENU_ACTION_SHOW_BOOKMARK_MANAGER); + break; + case IDC_IMPORT_SETTINGS: + if (!uma_action_recorded_) { + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ImportSettings", + delta); + } + LogMenuAction(MENU_ACTION_IMPORT_SETTINGS); + break; + case IDC_BOOKMARK_PAGE: + if (!uma_action_recorded_) { + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.BookmarkPage", + delta); + } + LogMenuAction(MENU_ACTION_BOOKMARK_PAGE); + break; + case IDC_BOOKMARK_ALL_TABS: + if (!uma_action_recorded_) { + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.BookmarkAllTabs", + delta); + } + LogMenuAction(MENU_ACTION_BOOKMARK_ALL_TABS); + break; + case IDC_PIN_TO_START_SCREEN: + if (!uma_action_recorded_) { + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.PinToStartScreen", + delta); + } + LogMenuAction(MENU_ACTION_PIN_TO_START_SCREEN); + break; + + // Recent tabs menu. + case IDC_RESTORE_TAB: + if (!uma_action_recorded_) + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.RestoreTab", delta); + LogMenuAction(MENU_ACTION_RESTORE_TAB); + break; + + // Windows. + case IDC_WIN_DESKTOP_RESTART: + if (!uma_action_recorded_) { + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.WinDesktopRestart", + delta); + } + LogMenuAction(MENU_ACTION_WIN_DESKTOP_RESTART); + break; + case IDC_WIN8_METRO_RESTART: + if (!uma_action_recorded_) { + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.Win8MetroRestart", + delta); + } + LogMenuAction(MENU_ACTION_WIN8_METRO_RESTART); + break; + + case IDC_WIN_CHROMEOS_RESTART: + if (!uma_action_recorded_) { + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ChromeOSRestart", + delta); + } + LogMenuAction(MENU_ACTION_WIN_CHROMEOS_RESTART); + break; + case IDC_DISTILL_PAGE: + if (!uma_action_recorded_) { + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.DistillPage", + delta); + } + LogMenuAction(MENU_ACTION_DISTILL_PAGE); + break; + case IDC_SAVE_PAGE: + if (!uma_action_recorded_) + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.SavePage", delta); + LogMenuAction(MENU_ACTION_SAVE_PAGE); + break; + case IDC_FIND: + if (!uma_action_recorded_) + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.Find", delta); + LogMenuAction(MENU_ACTION_FIND); + break; + case IDC_PRINT: + if (!uma_action_recorded_) + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.Print", delta); + LogMenuAction(MENU_ACTION_PRINT); + break; + + // Edit menu. + case IDC_CUT: + if (!uma_action_recorded_) + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.Cut", delta); + LogMenuAction(MENU_ACTION_CUT); + break; + case IDC_COPY: + if (!uma_action_recorded_) + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.Copy", delta); + LogMenuAction(MENU_ACTION_COPY); + break; + case IDC_PASTE: + if (!uma_action_recorded_) + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.Paste", delta); + LogMenuAction(MENU_ACTION_PASTE); + break; + + // Tools menu. + case IDC_CREATE_HOSTED_APP: + if (!uma_action_recorded_) { + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.CreateHostedApp", + delta); + } + LogMenuAction(MENU_ACTION_CREATE_HOSTED_APP); + break; + case IDC_CREATE_SHORTCUTS: + if (!uma_action_recorded_) + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.CreateShortcuts", + delta); + LogMenuAction(MENU_ACTION_CREATE_SHORTCUTS); + break; + case IDC_MANAGE_EXTENSIONS: + if (!uma_action_recorded_) { + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ManageExtensions", + delta); + } + LogMenuAction(MENU_ACTION_MANAGE_EXTENSIONS); + break; + case IDC_TASK_MANAGER: + if (!uma_action_recorded_) { + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.TaskManager", + delta); + } + LogMenuAction(MENU_ACTION_TASK_MANAGER); + break; + case IDC_CLEAR_BROWSING_DATA: + if (!uma_action_recorded_) { + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ClearBrowsingData", + delta); + } + LogMenuAction(MENU_ACTION_CLEAR_BROWSING_DATA); + break; + case IDC_VIEW_SOURCE: + if (!uma_action_recorded_) + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ViewSource", delta); + LogMenuAction(MENU_ACTION_VIEW_SOURCE); + break; + case IDC_DEV_TOOLS: + if (!uma_action_recorded_) + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.DevTools", delta); + LogMenuAction(MENU_ACTION_DEV_TOOLS); + break; + case IDC_DEV_TOOLS_CONSOLE: + if (!uma_action_recorded_) { + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.DevToolsConsole", + delta); + } + LogMenuAction(MENU_ACTION_DEV_TOOLS_CONSOLE); + break; + case IDC_DEV_TOOLS_DEVICES: + if (!uma_action_recorded_) { + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.DevToolsDevices", + delta); + } + LogMenuAction(MENU_ACTION_DEV_TOOLS_DEVICES); + break; + case IDC_PROFILING_ENABLED: + if (!uma_action_recorded_) { + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ProfilingEnabled", + delta); + } + LogMenuAction(MENU_ACTION_PROFILING_ENABLED); + break; - 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")); + // Zoom menu + case IDC_ZOOM_MINUS: + if (!uma_action_recorded_) { + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ZoomMinus", delta); + LogMenuAction(MENU_ACTION_ZOOM_MINUS); + } + break; + case IDC_ZOOM_PLUS: + if (!uma_action_recorded_) { + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ZoomPlus", delta); + LogMenuAction(MENU_ACTION_ZOOM_PLUS); + } + break; + case IDC_FULLSCREEN: + content::RecordAction(UserMetricsAction("EnterFullScreenWithWrenchMenu")); + + if (!uma_action_recorded_) { + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.EnterFullScreen", + delta); + } + LogMenuAction(MENU_ACTION_FULLSCREEN); + break; + + case IDC_SHOW_HISTORY: + if (!uma_action_recorded_) { + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ShowHistory", + delta); + } + LogMenuAction(MENU_ACTION_SHOW_HISTORY); + break; + case IDC_SHOW_DOWNLOADS: + if (!uma_action_recorded_) { + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ShowDownloads", + delta); + } + LogMenuAction(MENU_ACTION_SHOW_DOWNLOADS); + break; + case IDC_SHOW_SYNC_SETUP: + if (!uma_action_recorded_) { + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ShowSyncSetup", + delta); + } + LogMenuAction(MENU_ACTION_SHOW_SYNC_SETUP); + break; + case IDC_OPTIONS: + if (!uma_action_recorded_) + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.Settings", delta); + LogMenuAction(MENU_ACTION_OPTIONS); + break; + case IDC_ABOUT: + if (!uma_action_recorded_) + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.About", delta); + LogMenuAction(MENU_ACTION_ABOUT); + break; + + // Help menu. + case IDC_HELP_PAGE_VIA_MENU: + content::RecordAction(UserMetricsAction("ShowHelpTabViaWrenchMenu")); + + if (!uma_action_recorded_) + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.HelpPage", delta); + LogMenuAction(MENU_ACTION_HELP_PAGE_VIA_MENU); + break; + #if defined(GOOGLE_CHROME_BUILD) + case IDC_FEEDBACK: + if (!uma_action_recorded_) + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.Feedback", delta); + LogMenuAction(MENU_ACTION_FEEDBACK); + break; + #endif + + case IDC_TOGGLE_REQUEST_TABLET_SITE: + if (!uma_action_recorded_) { + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.RequestTabletSite", + delta); + } + LogMenuAction(MENU_ACTION_TOGGLE_REQUEST_TABLET_SITE); + break; + case IDC_EXIT: + if (!uma_action_recorded_) + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.Exit", delta); + LogMenuAction(MENU_ACTION_EXIT); + break; } - chrome::ExecuteCommand(browser_, command_id); + if (!uma_action_recorded_) { + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction", delta); + uma_action_recorded_ = true; + } +} + +void WrenchMenuModel::LogMenuAction(int action_id) { + UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction", action_id, + LIMIT_MENU_ACTION); } bool WrenchMenuModel::IsCommandIdChecked(int command_id) const { @@ -670,6 +962,7 @@ void WrenchMenuModel::Build() { } RemoveTrailingSeparators(); + uma_action_recorded_ = false; } void WrenchMenuModel::AddGlobalErrorMenuItems() { diff --git a/chrome/browser/ui/toolbar/wrench_menu_model.h b/chrome/browser/ui/toolbar/wrench_menu_model.h index ff787c8..4b9cefe 100644 --- a/chrome/browser/ui/toolbar/wrench_menu_model.h +++ b/chrome/browser/ui/toolbar/wrench_menu_model.h @@ -7,6 +7,8 @@ #include "base/files/file_path.h" #include "base/memory/scoped_ptr.h" +#include "base/time/time.h" +#include "base/timer/elapsed_timer.h" #include "chrome/browser/ui/tabs/tab_strip_model_observer.h" #include "content/public/browser/host_zoom_map.h" #include "content/public/browser/notification_observer.h" @@ -24,6 +26,54 @@ namespace { class MockWrenchMenuModel; } // namespace +enum WrenchMenuAction { + MENU_ACTION_NEW_TAB = 0, + MENU_ACTION_NEW_WINDOW, + MENU_ACTION_NEW_INCOGNITO_WINDOW, + MENU_ACTION_SHOW_BOOKMARK_BAR, + MENU_ACTION_SHOW_BOOKMARK_MANAGER, + MENU_ACTION_IMPORT_SETTINGS, + MENU_ACTION_BOOKMARK_PAGE, + MENU_ACTION_BOOKMARK_ALL_TABS, + MENU_ACTION_PIN_TO_START_SCREEN, + MENU_ACTION_RESTORE_TAB, + MENU_ACTION_WIN_DESKTOP_RESTART, + MENU_ACTION_WIN8_METRO_RESTART, + MENU_ACTION_WIN_CHROMEOS_RESTART, + MENU_ACTION_DISTILL_PAGE, + MENU_ACTION_SAVE_PAGE, + MENU_ACTION_FIND, + MENU_ACTION_PRINT, + MENU_ACTION_CUT, + MENU_ACTION_COPY, + MENU_ACTION_PASTE, + MENU_ACTION_CREATE_HOSTED_APP, + MENU_ACTION_CREATE_SHORTCUTS, + MENU_ACTION_MANAGE_EXTENSIONS, + MENU_ACTION_TASK_MANAGER, + MENU_ACTION_CLEAR_BROWSING_DATA, + MENU_ACTION_VIEW_SOURCE, + MENU_ACTION_DEV_TOOLS, + MENU_ACTION_DEV_TOOLS_CONSOLE, + MENU_ACTION_DEV_TOOLS_DEVICES, + MENU_ACTION_PROFILING_ENABLED, + MENU_ACTION_ZOOM_MINUS, + MENU_ACTION_ZOOM_PLUS, + MENU_ACTION_FULLSCREEN, + MENU_ACTION_SHOW_HISTORY, + MENU_ACTION_SHOW_DOWNLOADS, + MENU_ACTION_SHOW_SYNC_SETUP, + MENU_ACTION_OPTIONS, + MENU_ACTION_ABOUT, + MENU_ACTION_HELP_PAGE_VIA_MENU, + MENU_ACTION_FEEDBACK, + MENU_ACTION_TOGGLE_REQUEST_TABLET_SITE, + MENU_ACTION_EXIT, + MENU_ACTION_RECENT_TAB, + MENU_ACTION_BOOKMARK_OPEN, + LIMIT_MENU_ACTION +}; + // A menu model that builds the contents of an encoding menu. class EncodingMenuModel : public ui::SimpleMenuModel, public ui::SimpleMenuModel::Delegate { @@ -157,6 +207,23 @@ class WrenchMenuModel : public ui::SimpleMenuModel, bool ShouldShowNewIncognitoWindowMenuItem(); + // Called when a command is selected. + // Logs UMA metrics about which command was chosen and how long the user + // took to select the command. + void LogMenuMetrics(int command_id); + + // Helper function to record the menu action in a UMA histogram. + void LogMenuAction(int action_id); + + // Time menu has been open. Used by LogMenuMetrics() to record the time + // to action when the user selects a menu item. + base::ElapsedTimer timer_; + + // Whether a UMA menu action has been recorded since the menu is open. + // Only the first time to action is recorded since some commands + // (zoom controls) don't dimiss the menu. + bool uma_action_recorded_; + // Models for the special menu items with buttons. scoped_ptr<ui::ButtonMenuItemModel> edit_menu_item_model_; scoped_ptr<ui::ButtonMenuItemModel> zoom_menu_item_model_; diff --git a/chrome/browser/ui/views/toolbar/wrench_menu.cc b/chrome/browser/ui/views/toolbar/wrench_menu.cc index 0af66b1..8ade45a 100644 --- a/chrome/browser/ui/views/toolbar/wrench_menu.cc +++ b/chrome/browser/ui/views/toolbar/wrench_menu.cc @@ -8,6 +8,7 @@ #include <cmath> #include <set> +#include "base/metrics/histogram.h" #include "base/strings/string_number_conversions.h" #include "base/strings/utf_string_conversions.h" #include "chrome/app/chrome_command_ids.h" @@ -1002,6 +1003,10 @@ bool WrenchMenu::IsCommandEnabled(int command_id) const { void WrenchMenu::ExecuteCommand(int command_id, int mouse_event_flags) { if (IsBookmarkCommand(command_id)) { + UMA_HISTOGRAM_TIMES("WrenchMenu.TimeToAction.BookmarkOpen", + menu_opened_timer_.Elapsed()); + UMA_HISTOGRAM_ENUMERATION("WrenchMenu.MenuAction", + MENU_ACTION_BOOKMARK_OPEN, LIMIT_MENU_ACTION); bookmark_menu_delegate_->ExecuteCommand(command_id, mouse_event_flags); return; } diff --git a/chrome/browser/ui/views/toolbar/wrench_menu.h b/chrome/browser/ui/views/toolbar/wrench_menu.h index 267f1de..6dfbe1a 100644 --- a/chrome/browser/ui/views/toolbar/wrench_menu.h +++ b/chrome/browser/ui/views/toolbar/wrench_menu.h @@ -10,6 +10,8 @@ #include "base/memory/scoped_ptr.h" #include "base/observer_list.h" +#include "base/time/time.h" +#include "base/timer/elapsed_timer.h" #include "components/bookmarks/browser/base_bookmark_model_observer.h" #include "content/public/browser/notification_observer.h" #include "content/public/browser/notification_registrar.h" @@ -184,6 +186,9 @@ class WrenchMenu : public views::MenuDelegate, ObserverList<WrenchMenuObserver> observer_list_; + // Records the time from when menu opens to when the user selects a menu item. + base::ElapsedTimer menu_opened_timer_; + DISALLOW_COPY_AND_ASSIGN(WrenchMenu); }; diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml index 18a938a..f902aaa 100644 --- a/tools/metrics/histograms/histograms.xml +++ b/tools/metrics/histograms/histograms.xml @@ -40719,6 +40719,12 @@ Therefore, the affected-histogram name has to have at least one dot in it. </summary> </histogram> +<histogram name="WrenchMenu.MenuAction" enum="WretchMenuAction"> + <owner>ainslie@chromium.org</owner> + <owner>edwardjung@chromium.org</owner> + <summary>Number of times that each menu item is clicked.</summary> +</histogram> + <histogram name="WrenchMenu.RecentTabsSubMenu" enum="RecentTabsAction"> <owner>rpop@chromium.org</owner> <summary> @@ -40727,6 +40733,14 @@ Therefore, the affected-histogram name has to have at least one dot in it. </summary> </histogram> +<histogram name="WrenchMenu.TimeToAction"> + <owner>ainslie@chromium.org</owner> + <owner>edwardjung@chromium.org</owner> + <summary> + The time a user takes to select a menu itme after opening the menu. + </summary> +</histogram> + <histogram name="ZeroSuggest.AllResults"> <owner>hfung@chromium.org</owner> <summary> @@ -56399,6 +56413,53 @@ To add a new entry, add it with any value and run test to compute valid value. <int value="2" label="People"/> </enum> +<enum name="WretchMenuAction" type="int"> + <int value="0" label="New tab"/> + <int value="1" label="New window"/> + <int value="2" label="New incognito window"/> + <int value="3" label="Show bookmark bar"/> + <int value="4" label="Show bookmark manager"/> + <int value="5" label="Import settings"/> + <int value="6" label="Bookmark page"/> + <int value="7" label="Bookmark all tabs"/> + <int value="8" label="Pin to start screen"/> + <int value="9" label="Restore tab"/> + <int value="10" label="Win desktop restart"/> + <int value="11" label="Win8 metro restart"/> + <int value="12" label="Win chromeos restart"/> + <int value="13" label="Distill page"/> + <int value="14" label="Save page"/> + <int value="15" label="Find"/> + <int value="16" label="Print"/> + <int value="17" label="Cut"/> + <int value="18" label="Copy"/> + <int value="19" label="Paste"/> + <int value="20" label="Create hosted app"/> + <int value="21" label="Create shortcuts"/> + <int value="22" label="Manage extensions"/> + <int value="23" label="Task manager"/> + <int value="24" label="Clear browsing data"/> + <int value="25" label="View source"/> + <int value="26" label="Dev tools"/> + <int value="27" label="Dev tools console"/> + <int value="28" label="Dev tools devices"/> + <int value="29" label="Profiling enabled"/> + <int value="30" label="Zoom minus"/> + <int value="31" label="Zoom plus"/> + <int value="32" label="Fullscreen"/> + <int value="33" label="Show history"/> + <int value="34" label="Show downloads"/> + <int value="35" label="Show sync setup"/> + <int value="36" label="Options"/> + <int value="37" label="About"/> + <int value="38" label="Help page via menu"/> + <int value="39" label="Feedback"/> + <int value="40" label="Toggle request tablet site"/> + <int value="41" label="Recent tab"/> + <int value="42" label="Open a bookmark"/> + <int value="43" label="Exit"/> +</enum> + <enum name="XMLHttpRequestSendArrayBufferOrView" type="int"> <int value="0" label="XMLHttpRequestSendArrayBuffer"/> <int value="1" label="XMLHttpRequestSendArrayBufferView"/> @@ -60181,6 +60242,52 @@ To add a new entry, add it with any value and run test to compute valid value. <affected-histogram name="NewTabPage.DefaultPageType"/> </histogram_suffixes> +<histogram_suffixes name="WrenchMenuActionTimings" separator="."> + <suffix name="NewTab"/> + <suffix name="NewWindow"/> + <suffix name="NewIncognitoWindow"/> + <suffix name="ShowBookmarkBar"/> + <suffix name="ShowBookmarkMgr"/> + <suffix name="ImportSettings"/> + <suffix name="BookmarkPage"/> + <suffix name="BookmarkAllTabs"/> + <suffix name="PinToStartScreen"/> + <suffix name="RestoreTab"/> + <suffix name="WinDesktopRestart"/> + <suffix name="Win8MetroRestart"/> + <suffix name="ChromeOSRestart"/> + <suffix name="DistillPage"/> + <suffix name="SavePage"/> + <suffix name="Find"/> + <suffix name="Print"/> + <suffix name="Cut"/> + <suffix name="Copy"/> + <suffix name="Paste"/> + <suffix name="CreateHostedApp"/> + <suffix name="CreateShortcuts"/> + <suffix name="ManageExtensions"/> + <suffix name="TaskManager"/> + <suffix name="ClearBrowsingData"/> + <suffix name="ViewSource"/> + <suffix name="DevTools"/> + <suffix name="DevToolsConsole"/> + <suffix name="DevToolsDevices"/> + <suffix name="ProfilingEnabled"/> + <suffix name="ZoomMinus"/> + <suffix name="ZoomPlus"/> + <suffix name="EnterFullScreen"/> + <suffix name="ShowHistory"/> + <suffix name="ShowDownloads"/> + <suffix name="ShowSyncSetup"/> + <suffix name="Settings"/> + <suffix name="About"/> + <suffix name="HelpPage"/> + <suffix name="Feedback"/> + <suffix name="RequestTabletSite"/> + <suffix name="Exit"/> + <affected-histogram name="WrenchMenu.TimeToAction"/> +</histogram_suffixes> + </histogram_suffixes_list> </histogram-configuration> |