Chromium Code Reviews| Index: chrome/browser/ui/cocoa/browser_window_touch_bar.mm |
| diff --git a/chrome/browser/ui/cocoa/browser_window_touch_bar.mm b/chrome/browser/ui/cocoa/browser_window_touch_bar.mm |
| index d812ab1ad0045f6dadfe83c946904de5f2abd9b3..a723eb8a6cfca830af816d48bab9f1951299b1f9 100644 |
| --- a/chrome/browser/ui/cocoa/browser_window_touch_bar.mm |
| +++ b/chrome/browser/ui/cocoa/browser_window_touch_bar.mm |
| @@ -7,6 +7,7 @@ |
| #include "base/mac/mac_util.h" |
| #import "base/mac/scoped_nsobject.h" |
| #import "base/mac/sdk_forward_declarations.h" |
| +#include "base/metrics/histogram_macros.h" |
| #include "base/strings/sys_string_conversions.h" |
| #include "chrome/app/chrome_command_ids.h" |
| #include "chrome/app/vector_icons/vector_icons.h" |
| @@ -30,6 +31,19 @@ |
| namespace { |
| +// The touch bar actions that are being recorded in a histogram. These values |
| +// should not be re-ordered or removed. |
| +enum TouchBarAction { |
| + BACK = 0, |
| + FORWARD, |
| + STOP, |
| + RELOAD, |
| + SEARCH, |
| + STAR, |
| + NEW_TAB, |
| + TOUCH_BAR_ACTION_COUNT |
| +}; |
| + |
| // The touch bar's identifier. |
| const NSTouchBarCustomizationIdentifier kBrowserWindowTouchBarId = |
| @"BrowserWindowTouchBarId"; |
| @@ -76,6 +90,31 @@ NSButton* CreateTouchBarButton(const gfx::VectorIcon& icon, |
| return button; |
| } |
| +// Logs the sample's UMA metrics into the DefaultTouchBar.Metrics histogram. |
| +void LogTouchBarUMA(int command) { |
| + TouchBarAction action; |
| + if (command == IDC_BACK) |
| + action = TouchBarAction::BACK; |
| + else if (command == IDC_FORWARD) |
| + action = TouchBarAction::FORWARD; |
| + else if (command == IDC_STOP) |
| + action = TouchBarAction::STOP; |
| + else if (command == IDC_RELOAD) |
| + action = TouchBarAction::RELOAD; |
| + else if (command == IDC_FOCUS_LOCATION) |
| + action = TouchBarAction::SEARCH; |
| + else if (command == IDC_BOOKMARK_PAGE) |
| + action = TouchBarAction::STAR; |
| + else if (command == IDC_NEW_TAB) |
| + action = TouchBarAction::NEW_TAB; |
| + else |
| + action = TouchBarAction::TOUCH_BAR_ACTION_COUNT; |
| + |
| + DCHECK_NE(action, TouchBarAction::TOUCH_BAR_ACTION_COUNT); |
| + UMA_HISTOGRAM_ENUMERATION("DefaultTouchBar.Metrics", action, |
|
Robert Sesek
2017/03/09 18:11:55
Since we may have multiple touch bars, how about s
Ilya Sherman
2017/03/09 20:13:44
+1 -- let's choose a fairly general top-level cate
spqchan
2017/03/13 20:58:05
Sure thing
|
| + TOUCH_BAR_ACTION_COUNT); |
| +} |
| + |
| } // namespace |
| @interface BrowserWindowTouchBar () { |
| @@ -215,14 +254,19 @@ NSButton* CreateTouchBarButton(const gfx::VectorIcon& icon, |
| - (void)backOrForward:(id)sender { |
| NSSegmentedControl* control = sender; |
| - if ([control selectedSegment] == kBackSegmentIndex) |
| + if ([control selectedSegment] == kBackSegmentIndex) { |
| commandUpdater_->ExecuteCommand(IDC_BACK); |
| - else |
| + LogTouchBarUMA(IDC_BACK); |
| + } else { |
| commandUpdater_->ExecuteCommand(IDC_FORWARD); |
| + LogTouchBarUMA(IDC_FORWARD); |
| + } |
| } |
| - (void)executeCommand:(id)sender { |
| - commandUpdater_->ExecuteCommand([sender tag]); |
| + int command = [sender tag]; |
| + LogTouchBarUMA(command); |
|
Robert Sesek
2017/03/09 18:11:55
In -backOrForward, the UMA is logged before the Ex
spqchan
2017/03/13 20:58:05
Done.
|
| + commandUpdater_->ExecuteCommand(command); |
| } |
| @end |