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

Unified Diff: ash/shell.cc

Issue 1153633006: Added UMA statistics for changing the active window via click or touch events. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 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/shell.cc
diff --git a/ash/shell.cc b/ash/shell.cc
index d7dc9b5623fa2c35b446e4d5f695c7889076cf8f..22fef97a4244004ec9f1f87ff405e3215c738635 100644
--- a/ash/shell.cc
+++ b/ash/shell.cc
@@ -33,6 +33,7 @@
#include "ash/magnifier/magnification_controller.h"
#include "ash/magnifier/partial_magnification_controller.h"
#include "ash/media_delegate.h"
+#include "ash/metrics/screen_event_task_switch_metric_recorder.h"
#include "ash/new_window_delegate.h"
#include "ash/root_window_controller.h"
#include "ash/session/session_state_delegate.h"
@@ -112,6 +113,7 @@
#include "ui/wm/core/nested_accelerator_controller.h"
#include "ui/wm/core/shadow_controller.h"
#include "ui/wm/core/visibility_controller.h"
+#include "ui/wm/core/window_activation_pre_target_handler.h"
#include "ui/wm/core/window_modality_controller.h"
#if defined(OS_CHROMEOS)
@@ -762,6 +764,12 @@ Shell::~Shell() {
// Chrome implementation of shelf delegate depends on FocusClient,
// so must be deleted before |focus_client_|.
shelf_delegate_.reset();
+ window_activation_pretarget_handler_->RemoveObserver(
+ screen_event_task_switch_metric_recorder_.get());
+ screen_event_task_switch_metric_recorder_.reset();
+ // TODO(bruthig): Investigate why the |window_activation_pretarget_handler_|
+ // is not removed from pre-target handler lists.
+ window_activation_pretarget_handler_.reset();
focus_client_.reset();
// Destroy SystemTrayNotifier after destroying SystemTray as TrayItems
@@ -894,6 +902,12 @@ void Shell::Init(const ShellInitParams& init_params) {
new ::wm::FocusController(focus_rules);
focus_client_.reset(focus_controller);
activation_client_ = focus_controller;
+ window_activation_pretarget_handler_.reset(
+ new ::wm::WindowActivationPreTargetHandler(activation_client_));
+ screen_event_task_switch_metric_recorder_.reset(
+ new ScreenEventTaskSwitchMetricRecorder(user_metrics_recorder_.get()));
+ window_activation_pretarget_handler_->AddObserver(
+ screen_event_task_switch_metric_recorder_.get());
activation_client_->AddObserver(this);
focus_cycler_.reset(new FocusCycler());
@@ -1111,9 +1125,7 @@ void Shell::InitRootWindow(aura::Window* root_window) {
aura::client::SetFocusClient(root_window, focus_client_.get());
input_method_filter_->SetInputMethodPropertyInRootWindow(root_window);
aura::client::SetActivationClient(root_window, activation_client_);
- ::wm::FocusController* focus_controller =
- static_cast< ::wm::FocusController*>(activation_client_);
- root_window->AddPreTargetHandler(focus_controller);
+ root_window->AddPreTargetHandler(window_activation_pretarget_handler_.get());
aura::client::SetVisibilityClient(root_window, visibility_controller_.get());
aura::client::SetDragDropClient(root_window, drag_drop_controller_.get());
aura::client::SetScreenPositionClient(root_window,

Powered by Google App Engine
This is Rietveld 408576698