summaryrefslogtreecommitdiffstats
path: root/ash
diff options
context:
space:
mode:
authorskuhne@chromium.org <skuhne@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-13 01:50:27 +0000
committerskuhne@chromium.org <skuhne@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-13 01:50:27 +0000
commit438e3b827f556f8f307d8f728e9c4b8e797c55e6 (patch)
treeb2486ccfd78046e64820e04aac1f7b14d3918562 /ash
parent0eadb9b0ef4bed038a71ae8cdce012d1c4ead6fc (diff)
downloadchromium_src-438e3b827f556f8f307d8f728e9c4b8e797c55e6.zip
chromium_src-438e3b827f556f8f307d8f728e9c4b8e797c55e6.tar.gz
chromium_src-438e3b827f556f8f307d8f728e9c4b8e797c55e6.tar.bz2
Added various UMA statistics values for different WM functions
* Window Close through click on the X button * Window Close through Ctrl+W or Ctrl+Shift+W * Maximize via click on the maximize button * Restore via click on maximize button * Minimize via click on minimize or drag down * Minimize via Alt + - or Ctrl + M * Immersive mode via Fullscreen button * Exit Immersive mode via button BUG=229465 TEST=visual using chrome://user-actions Review URL: https://chromiumcodereview.appspot.com/14088005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@194069 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash')
-rw-r--r--ash/accelerators/accelerator_controller.cc2
-rw-r--r--ash/shell_delegate.h20
-rw-r--r--ash/wm/custom_frame_view_ash.cc16
-rw-r--r--ash/wm/maximize_bubble_controller.cc2
-rw-r--r--ash/wm/workspace/frame_maximize_button.cc13
5 files changed, 38 insertions, 15 deletions
diff --git a/ash/accelerators/accelerator_controller.cc b/ash/accelerators/accelerator_controller.cc
index 3728d43..9face4f 100644
--- a/ash/accelerators/accelerator_controller.cc
+++ b/ash/accelerators/accelerator_controller.cc
@@ -780,6 +780,8 @@ bool AcceleratorController::PerformAction(int action,
// crbug.com/131709, which is a crashing issue related to minimizing
// full screen pepper window.
if (!wm::IsWindowFullscreen(window) && wm::CanMinimizeWindow(window)) {
+ ash::Shell::GetInstance()->delegate()->RecordUserMetricsAction(
+ ash::UMA_MINIMIZE_PER_KEY);
wm::MinimizeWindow(window);
return true;
}
diff --git a/ash/shell_delegate.h b/ash/shell_delegate.h
index e57eebd..ce1c3a1 100644
--- a/ash/shell_delegate.h
+++ b/ash/shell_delegate.h
@@ -62,14 +62,10 @@ enum UserMetricsAction {
UMA_ACCEL_PREVWINDOW_TAB,
UMA_ACCEL_SEARCH_LWIN,
UMA_ACCEL_SHUT_DOWN_POWER_BUTTON,
- UMA_MAXIMIZE_BUTTON_MAXIMIZE,
- UMA_MAXIMIZE_BUTTON_MAXIMIZE_LEFT,
- UMA_MAXIMIZE_BUTTON_MAXIMIZE_RIGHT,
- UMA_MAXIMIZE_BUTTON_MINIMIZE,
- UMA_MAXIMIZE_BUTTON_RESTORE,
- UMA_MAXIMIZE_BUTTON_SHOW_BUBBLE,
+ UMA_CLOSE_THROUGH_CONTEXT_MENU,
UMA_LAUNCHER_CLICK_ON_APP,
UMA_LAUNCHER_CLICK_ON_APPLIST_BUTTON,
+ UMA_MINIMIZE_PER_KEY,
UMA_MOUSE_DOWN,
UMA_TOGGLE_MAXIMIZE_CAPTION_CLICK,
UMA_TOGGLE_MAXIMIZE_CAPTION_GESTURE,
@@ -77,6 +73,18 @@ enum UserMetricsAction {
UMA_TRAY_HELP,
UMA_TRAY_LOCK_SCREEN,
UMA_TRAY_SHUT_DOWN,
+ UMA_WINDOW_APP_CLOSE_BUTTON_CLICK,
+ UMA_WINDOW_CLOSE_BUTTON_CLICK,
+ UMA_WINDOW_MAXIMIZE_BUTTON_CLICK_EXIT_FULLSCREEN,
+ UMA_WINDOW_MAXIMIZE_BUTTON_CLICK_MAXIMIZE,
+ UMA_WINDOW_MAXIMIZE_BUTTON_CLICK_MINIMIZE,
+ UMA_WINDOW_MAXIMIZE_BUTTON_CLICK_RESTORE,
+ UMA_WINDOW_MAXIMIZE_BUTTON_MAXIMIZE,
+ UMA_WINDOW_MAXIMIZE_BUTTON_MAXIMIZE_LEFT,
+ UMA_WINDOW_MAXIMIZE_BUTTON_MAXIMIZE_RIGHT,
+ UMA_WINDOW_MAXIMIZE_BUTTON_MINIMIZE,
+ UMA_WINDOW_MAXIMIZE_BUTTON_RESTORE,
+ UMA_WINDOW_MAXIMIZE_BUTTON_SHOW_BUBBLE,
};
enum AccessibilityNotificationVisibility {
diff --git a/ash/wm/custom_frame_view_ash.cc b/ash/wm/custom_frame_view_ash.cc
index 6350e9a..72c62ee 100644
--- a/ash/wm/custom_frame_view_ash.cc
+++ b/ash/wm/custom_frame_view_ash.cc
@@ -4,6 +4,7 @@
#include "ash/wm/custom_frame_view_ash.h"
+#include "ash/shell_delegate.h"
#include "ash/wm/frame_painter.h"
#include "ash/wm/workspace/frame_maximize_button.h"
#include "grit/ash_resources.h"
@@ -170,17 +171,28 @@ void CustomFrameViewAsh::ButtonPressed(views::Button* sender,
slow_duration_mode.reset(new ui::ScopedAnimationDurationScaleMode(
ui::ScopedAnimationDurationScaleMode::SLOW_DURATION));
}
+
+ ash::UserMetricsAction action =
+ ash::UMA_WINDOW_MAXIMIZE_BUTTON_CLICK_MAXIMIZE;
+
if (sender == maximize_button_) {
// The maximize button may move out from under the cursor.
ResetWindowControls();
- if (frame_->IsMaximized())
+ if (frame_->IsMaximized()) {
+ action = ash::UMA_WINDOW_MAXIMIZE_BUTTON_CLICK_RESTORE;
frame_->Restore();
- else
+ } else {
frame_->Maximize();
+ }
// |this| may be deleted - some windows delete their frames on maximize.
} else if (sender == close_button_) {
+ action = ash::UMA_WINDOW_CLOSE_BUTTON_CLICK;
frame_->Close();
+ } else {
+ return;
}
+
+ ash::Shell::GetInstance()->delegate()->RecordUserMetricsAction(action);
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/ash/wm/maximize_bubble_controller.cc b/ash/wm/maximize_bubble_controller.cc
index fa5b2ed..3913546 100644
--- a/ash/wm/maximize_bubble_controller.cc
+++ b/ash/wm/maximize_bubble_controller.cc
@@ -429,7 +429,7 @@ MaximizeBubbleController::Bubble::Bubble(
StartFade(true);
ash::Shell::GetInstance()->delegate()->RecordUserMetricsAction(
- ash::UMA_MAXIMIZE_BUTTON_SHOW_BUBBLE);
+ ash::UMA_WINDOW_MAXIMIZE_BUTTON_SHOW_BUBBLE);
mouse_watcher_.reset(new views::MouseWatcher(
new BubbleMouseWatcherHost(this),
diff --git a/ash/wm/workspace/frame_maximize_button.cc b/ash/wm/workspace/frame_maximize_button.cc
index c7dd3bd..a6262f9 100644
--- a/ash/wm/workspace/frame_maximize_button.cc
+++ b/ash/wm/workspace/frame_maximize_button.cc
@@ -514,8 +514,9 @@ void FrameMaximizeButton::Snap(const SnapSizer& snap_sizer) {
case SNAP_LEFT:
case SNAP_RIGHT: {
shell->delegate()->RecordUserMetricsAction(
- snap_type_ == SNAP_LEFT ? ash::UMA_MAXIMIZE_BUTTON_MAXIMIZE_LEFT :
- ash::UMA_MAXIMIZE_BUTTON_MAXIMIZE_RIGHT);
+ snap_type_ == SNAP_LEFT ?
+ ash::UMA_WINDOW_MAXIMIZE_BUTTON_MAXIMIZE_LEFT :
+ ash::UMA_WINDOW_MAXIMIZE_BUTTON_MAXIMIZE_RIGHT);
// Get the bounds in screen coordinates for restore purposes.
gfx::Rect restore = widget->GetWindowBoundsInScreen();
if (widget->IsMaximized() || widget->IsFullscreen()) {
@@ -558,17 +559,17 @@ void FrameMaximizeButton::Snap(const SnapSizer& snap_sizer) {
case SNAP_MAXIMIZE:
widget->Maximize();
shell->delegate()->RecordUserMetricsAction(
- ash::UMA_MAXIMIZE_BUTTON_MAXIMIZE);
+ ash::UMA_WINDOW_MAXIMIZE_BUTTON_MAXIMIZE);
break;
case SNAP_MINIMIZE:
widget->Minimize();
shell->delegate()->RecordUserMetricsAction(
- ash::UMA_MAXIMIZE_BUTTON_MINIMIZE);
+ ash::UMA_WINDOW_MAXIMIZE_BUTTON_MINIMIZE);
break;
case SNAP_RESTORE:
widget->Restore();
shell->delegate()->RecordUserMetricsAction(
- ash::UMA_MAXIMIZE_BUTTON_RESTORE);
+ ash::UMA_WINDOW_MAXIMIZE_BUTTON_RESTORE);
break;
case SNAP_NONE:
NOTREACHED();
@@ -576,7 +577,7 @@ void FrameMaximizeButton::Snap(const SnapSizer& snap_sizer) {
}
MaximizeBubbleFrameState
- FrameMaximizeButton::GetMaximizeBubbleFrameState() const {
+FrameMaximizeButton::GetMaximizeBubbleFrameState() const {
// When there are no restore bounds, we are in normal mode.
if (!ash::GetRestoreBoundsInScreen(
frame_->GetWidget()->GetNativeWindow()))