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

Unified Diff: ash/wm/dock/docked_window_resizer.cc

Issue 45343003: UMA data collection for docked windows (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: UMA data collection for docked windows Created 7 years, 2 months 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: ash/wm/dock/docked_window_resizer.cc
diff --git a/ash/wm/dock/docked_window_resizer.cc b/ash/wm/dock/docked_window_resizer.cc
index 28d043848b298463ceae29a7f7289faed357b3df..1217abfd850b8737fa3a9b22d9eee605efa57041 100644
--- a/ash/wm/dock/docked_window_resizer.cc
+++ b/ash/wm/dock/docked_window_resizer.cc
@@ -21,6 +21,7 @@
#include "ash/wm/workspace/workspace_window_resizer.h"
#include "base/command_line.h"
#include "base/memory/weak_ptr.h"
+#include "base/metrics/histogram.h"
#include "ui/aura/client/aura_constants.h"
#include "ui/aura/client/window_tree_client.h"
#include "ui/aura/env.h"
@@ -161,6 +162,7 @@ const gfx::Point& DockedWindowResizer::GetInitialLocation() const {
DockedWindowResizer::DockedWindowResizer(WindowResizer* next_window_resizer,
const Details& details)
: details_(details),
+ last_docked_action_(base::Time::Now()),
next_window_resizer_(next_window_resizer),
dock_layout_(NULL),
initial_dock_layout_(NULL),
@@ -262,6 +264,7 @@ void DockedWindowResizer::FinishedDragging() {
window_state->ClearRestoreBounds();
// Check if the window needs to be docked or returned to workspace.
+ DockedAction action = DOCKED_ACTION_CANCEL;
aura::Window* dock_container = Shell::GetContainer(
window->GetRootWindow(),
kShellWindowId_DockedContainer);
@@ -269,6 +272,7 @@ void DockedWindowResizer::FinishedDragging() {
is_docked_ != (window->parent() == dock_container)) {
if (is_docked_) {
wm::ReparentChildWithTransientChildren(dock_container, window);
+ action = DOCKED_ACTION_DOCK;
} else if (window->parent()->id() == kShellWindowId_DockedContainer) {
// Reparent the window back to workspace.
// We need to be careful to give ParentWindowWithContext a location in
@@ -282,8 +286,26 @@ void DockedWindowResizer::FinishedDragging() {
aura::client::ParentWindowWithContext(window, window, near_last_location);
if (window->parent() != previous_parent)
wm::ReparentTransientChildrenOfChild(window->parent(), window);
+ action = was_docked_ ? DOCKED_ACTION_UNDOCK : DOCKED_ACTION_CANCEL;
}
+ } else {
+ // Docked state was not changed but still need to record a UMA action.
+ if (is_resized && is_docked_ && was_docked_)
+ action = DOCKED_ACTION_RESIZE;
+ else if (is_docked_ && was_docked_)
+ action = DOCKED_ACTION_REORDER;
+ else if (is_docked_ && !was_docked_)
+ action = DOCKED_ACTION_DOCK;
+ else
+ action = DOCKED_ACTION_CANCEL;
flackr 2013/10/29 21:33:49 As with the time between use below, I don't think
varkha 2013/10/30 19:21:00 Done.
}
+ if (action != DOCKED_ACTION_CANCEL) {
+ base::Time time_now = base::Time::Now();
+ UMA_HISTOGRAM_LONG_TIMES_100("Ash.Dock.TimeBetweenUse",
+ time_now - last_docked_action_);
flackr 2013/10/29 21:33:49 Doesn't DockedWindowResizer::FinishDragging get ca
varkha 2013/10/30 19:21:00 Done.
+ last_docked_action_ = time_now;
+ }
+ UMA_HISTOGRAM_ENUMERATION("Ash.Dock.Actions", action, DOCKED_ACTION_COUNT);
dock_layout_->FinishDragging();
// If we started the drag in one root window and moved into another root

Powered by Google App Engine
This is Rietveld 408576698