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

Side by Side 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ash/shell.h" 5 #include "ash/shell.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 9
10 #include "ash/accelerators/accelerator_controller.h" 10 #include "ash/accelerators/accelerator_controller.h"
(...skipping 15 matching lines...) Expand all
26 #include "ash/first_run/first_run_helper_impl.h" 26 #include "ash/first_run/first_run_helper_impl.h"
27 #include "ash/focus_cycler.h" 27 #include "ash/focus_cycler.h"
28 #include "ash/frame/custom_frame_view_ash.h" 28 #include "ash/frame/custom_frame_view_ash.h"
29 #include "ash/gpu_support.h" 29 #include "ash/gpu_support.h"
30 #include "ash/high_contrast/high_contrast_controller.h" 30 #include "ash/high_contrast/high_contrast_controller.h"
31 #include "ash/host/ash_window_tree_host_init_params.h" 31 #include "ash/host/ash_window_tree_host_init_params.h"
32 #include "ash/keyboard_uma_event_filter.h" 32 #include "ash/keyboard_uma_event_filter.h"
33 #include "ash/magnifier/magnification_controller.h" 33 #include "ash/magnifier/magnification_controller.h"
34 #include "ash/magnifier/partial_magnification_controller.h" 34 #include "ash/magnifier/partial_magnification_controller.h"
35 #include "ash/media_delegate.h" 35 #include "ash/media_delegate.h"
36 #include "ash/metrics/screen_event_task_switch_metric_recorder.h"
36 #include "ash/new_window_delegate.h" 37 #include "ash/new_window_delegate.h"
37 #include "ash/root_window_controller.h" 38 #include "ash/root_window_controller.h"
38 #include "ash/session/session_state_delegate.h" 39 #include "ash/session/session_state_delegate.h"
39 #include "ash/shelf/app_list_shelf_item_delegate.h" 40 #include "ash/shelf/app_list_shelf_item_delegate.h"
40 #include "ash/shelf/shelf_delegate.h" 41 #include "ash/shelf/shelf_delegate.h"
41 #include "ash/shelf/shelf_item_delegate.h" 42 #include "ash/shelf/shelf_item_delegate.h"
42 #include "ash/shelf/shelf_item_delegate_manager.h" 43 #include "ash/shelf/shelf_item_delegate_manager.h"
43 #include "ash/shelf/shelf_layout_manager.h" 44 #include "ash/shelf/shelf_layout_manager.h"
44 #include "ash/shelf/shelf_model.h" 45 #include "ash/shelf/shelf_model.h"
45 #include "ash/shelf/shelf_widget.h" 46 #include "ash/shelf/shelf_widget.h"
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 #include "ui/views/focus/focus_manager_factory.h" 106 #include "ui/views/focus/focus_manager_factory.h"
106 #include "ui/views/widget/native_widget_aura.h" 107 #include "ui/views/widget/native_widget_aura.h"
107 #include "ui/views/widget/widget.h" 108 #include "ui/views/widget/widget.h"
108 #include "ui/wm/core/accelerator_filter.h" 109 #include "ui/wm/core/accelerator_filter.h"
109 #include "ui/wm/core/compound_event_filter.h" 110 #include "ui/wm/core/compound_event_filter.h"
110 #include "ui/wm/core/focus_controller.h" 111 #include "ui/wm/core/focus_controller.h"
111 #include "ui/wm/core/input_method_event_filter.h" 112 #include "ui/wm/core/input_method_event_filter.h"
112 #include "ui/wm/core/nested_accelerator_controller.h" 113 #include "ui/wm/core/nested_accelerator_controller.h"
113 #include "ui/wm/core/shadow_controller.h" 114 #include "ui/wm/core/shadow_controller.h"
114 #include "ui/wm/core/visibility_controller.h" 115 #include "ui/wm/core/visibility_controller.h"
116 #include "ui/wm/core/window_activation_pre_target_handler.h"
115 #include "ui/wm/core/window_modality_controller.h" 117 #include "ui/wm/core/window_modality_controller.h"
116 118
117 #if defined(OS_CHROMEOS) 119 #if defined(OS_CHROMEOS)
118 #if defined(USE_X11) 120 #if defined(USE_X11)
119 #include "ui/gfx/x/x11_types.h" 121 #include "ui/gfx/x/x11_types.h"
120 #endif // defined(USE_X11) 122 #endif // defined(USE_X11)
121 #include "ash/accelerators/magnifier_key_scroller.h" 123 #include "ash/accelerators/magnifier_key_scroller.h"
122 #include "ash/accelerators/spoken_feedback_toggler.h" 124 #include "ash/accelerators/spoken_feedback_toggler.h"
123 #include "ash/ash_constants.h" 125 #include "ash/ash_constants.h"
124 #include "ash/content/display/display_color_manager_chromeos.h" 126 #include "ash/content/display/display_color_manager_chromeos.h"
(...skipping 630 matching lines...) Expand 10 before | Expand all | Expand 10 after
755 // |shelf_window_watcher_| has a weak pointer to |shelf_Model_| 757 // |shelf_window_watcher_| has a weak pointer to |shelf_Model_|
756 // and has window observers. 758 // and has window observers.
757 shelf_window_watcher_.reset(); 759 shelf_window_watcher_.reset();
758 760
759 // Destroy all child windows including widgets. 761 // Destroy all child windows including widgets.
760 display_controller_->CloseChildWindows(); 762 display_controller_->CloseChildWindows();
761 763
762 // Chrome implementation of shelf delegate depends on FocusClient, 764 // Chrome implementation of shelf delegate depends on FocusClient,
763 // so must be deleted before |focus_client_|. 765 // so must be deleted before |focus_client_|.
764 shelf_delegate_.reset(); 766 shelf_delegate_.reset();
767 window_activation_pretarget_handler_->RemoveObserver(
768 screen_event_task_switch_metric_recorder_.get());
769 screen_event_task_switch_metric_recorder_.reset();
770 // TODO(bruthig): Investigate why the |window_activation_pretarget_handler_|
771 // is not removed from pre-target handler lists.
772 window_activation_pretarget_handler_.reset();
765 focus_client_.reset(); 773 focus_client_.reset();
766 774
767 // Destroy SystemTrayNotifier after destroying SystemTray as TrayItems 775 // Destroy SystemTrayNotifier after destroying SystemTray as TrayItems
768 // needs to remove observers from it. 776 // needs to remove observers from it.
769 system_tray_notifier_.reset(); 777 system_tray_notifier_.reset();
770 778
771 // These need a valid Shell instance to clean up properly, so explicitly 779 // These need a valid Shell instance to clean up properly, so explicitly
772 // delete them before invalidating the instance. 780 // delete them before invalidating the instance.
773 // Alphabetical. TODO(oshima): sort. 781 // Alphabetical. TODO(oshima): sort.
774 magnification_controller_.reset(); 782 magnification_controller_.reset();
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
887 895
888 env_filter_.reset(new ::wm::CompoundEventFilter); 896 env_filter_.reset(new ::wm::CompoundEventFilter);
889 AddPreTargetHandler(env_filter_.get()); 897 AddPreTargetHandler(env_filter_.get());
890 898
891 wm::AshFocusRules* focus_rules = new wm::AshFocusRules(); 899 wm::AshFocusRules* focus_rules = new wm::AshFocusRules();
892 900
893 ::wm::FocusController* focus_controller = 901 ::wm::FocusController* focus_controller =
894 new ::wm::FocusController(focus_rules); 902 new ::wm::FocusController(focus_rules);
895 focus_client_.reset(focus_controller); 903 focus_client_.reset(focus_controller);
896 activation_client_ = focus_controller; 904 activation_client_ = focus_controller;
905 window_activation_pretarget_handler_.reset(
906 new ::wm::WindowActivationPreTargetHandler(activation_client_));
907 screen_event_task_switch_metric_recorder_.reset(
908 new ScreenEventTaskSwitchMetricRecorder(user_metrics_recorder_.get()));
909 window_activation_pretarget_handler_->AddObserver(
910 screen_event_task_switch_metric_recorder_.get());
897 activation_client_->AddObserver(this); 911 activation_client_->AddObserver(this);
898 focus_cycler_.reset(new FocusCycler()); 912 focus_cycler_.reset(new FocusCycler());
899 913
900 screen_position_controller_.reset(new ScreenPositionController); 914 screen_position_controller_.reset(new ScreenPositionController);
901 915
902 display_controller_->Start(); 916 display_controller_->Start();
903 display_controller_->CreatePrimaryHost( 917 display_controller_->CreatePrimaryHost(
904 ShellInitParamsToAshWindowTreeHostInitParams(init_params)); 918 ShellInitParamsToAshWindowTreeHostInitParams(init_params));
905 aura::Window* root_window = display_controller_->GetPrimaryRootWindow(); 919 aura::Window* root_window = display_controller_->GetPrimaryRootWindow();
906 target_root_window_ = root_window; 920 target_root_window_ = root_window;
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
1104 } 1118 }
1105 1119
1106 void Shell::InitRootWindow(aura::Window* root_window) { 1120 void Shell::InitRootWindow(aura::Window* root_window) {
1107 DCHECK(activation_client_); 1121 DCHECK(activation_client_);
1108 DCHECK(visibility_controller_.get()); 1122 DCHECK(visibility_controller_.get());
1109 DCHECK(drag_drop_controller_.get()); 1123 DCHECK(drag_drop_controller_.get());
1110 1124
1111 aura::client::SetFocusClient(root_window, focus_client_.get()); 1125 aura::client::SetFocusClient(root_window, focus_client_.get());
1112 input_method_filter_->SetInputMethodPropertyInRootWindow(root_window); 1126 input_method_filter_->SetInputMethodPropertyInRootWindow(root_window);
1113 aura::client::SetActivationClient(root_window, activation_client_); 1127 aura::client::SetActivationClient(root_window, activation_client_);
1114 ::wm::FocusController* focus_controller = 1128 root_window->AddPreTargetHandler(window_activation_pretarget_handler_.get());
1115 static_cast< ::wm::FocusController*>(activation_client_);
1116 root_window->AddPreTargetHandler(focus_controller);
1117 aura::client::SetVisibilityClient(root_window, visibility_controller_.get()); 1129 aura::client::SetVisibilityClient(root_window, visibility_controller_.get());
1118 aura::client::SetDragDropClient(root_window, drag_drop_controller_.get()); 1130 aura::client::SetDragDropClient(root_window, drag_drop_controller_.get());
1119 aura::client::SetScreenPositionClient(root_window, 1131 aura::client::SetScreenPositionClient(root_window,
1120 screen_position_controller_.get()); 1132 screen_position_controller_.get());
1121 aura::client::SetCursorClient(root_window, &cursor_manager_); 1133 aura::client::SetCursorClient(root_window, &cursor_manager_);
1122 aura::client::SetTooltipClient(root_window, tooltip_controller_.get()); 1134 aura::client::SetTooltipClient(root_window, tooltip_controller_.get());
1123 aura::client::SetEventClient(root_window, event_client_.get()); 1135 aura::client::SetEventClient(root_window, event_client_.get());
1124 1136
1125 aura::client::SetWindowMoveClient(root_window, 1137 aura::client::SetWindowMoveClient(root_window,
1126 toplevel_window_event_handler_.get()); 1138 toplevel_window_event_handler_.get());
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
1176 //////////////////////////////////////////////////////////////////////////////// 1188 ////////////////////////////////////////////////////////////////////////////////
1177 // Shell, aura::client::ActivationChangeObserver implementation: 1189 // Shell, aura::client::ActivationChangeObserver implementation:
1178 1190
1179 void Shell::OnWindowActivated(aura::Window* gained_active, 1191 void Shell::OnWindowActivated(aura::Window* gained_active,
1180 aura::Window* lost_active) { 1192 aura::Window* lost_active) {
1181 if (gained_active) 1193 if (gained_active)
1182 target_root_window_ = gained_active->GetRootWindow(); 1194 target_root_window_ = gained_active->GetRootWindow();
1183 } 1195 }
1184 1196
1185 } // namespace ash 1197 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698