| OLD | NEW |
| 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 642 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 653 user_metrics_recorder_.reset(new UserMetricsRecorder); | 653 user_metrics_recorder_.reset(new UserMetricsRecorder); |
| 654 | 654 |
| 655 #if defined(OS_CHROMEOS) | 655 #if defined(OS_CHROMEOS) |
| 656 PowerStatus::Initialize(); | 656 PowerStatus::Initialize(); |
| 657 #endif | 657 #endif |
| 658 } | 658 } |
| 659 | 659 |
| 660 Shell::~Shell() { | 660 Shell::~Shell() { |
| 661 TRACE_EVENT0("shutdown", "ash::Shell::Destructor"); | 661 TRACE_EVENT0("shutdown", "ash::Shell::Destructor"); |
| 662 | 662 |
| 663 user_metrics_recorder_->OnShellShuttingDown(); | |
| 664 | |
| 665 delegate_->PreShutdown(); | 663 delegate_->PreShutdown(); |
| 666 | 664 |
| 667 views::FocusManagerFactory::Install(NULL); | 665 views::FocusManagerFactory::Install(NULL); |
| 668 | 666 |
| 669 // Remove the focus from any window. This will prevent overhead and side | 667 // Remove the focus from any window. This will prevent overhead and side |
| 670 // effects (e.g. crashes) from changing focus during shutdown. | 668 // effects (e.g. crashes) from changing focus during shutdown. |
| 671 // See bug crbug.com/134502. | 669 // See bug crbug.com/134502. |
| 672 aura::client::GetFocusClient(GetPrimaryRootWindow())->FocusWindow(NULL); | 670 aura::client::GetFocusClient(GetPrimaryRootWindow())->FocusWindow(NULL); |
| 673 | 671 |
| 674 // Please keep in same order as in Init() because it's easy to miss one. | 672 // Please keep in same order as in Init() because it's easy to miss one. |
| (...skipping 405 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1080 video_activity_notifier_.reset( | 1078 video_activity_notifier_.reset( |
| 1081 new VideoActivityNotifier(video_detector_.get())); | 1079 new VideoActivityNotifier(video_detector_.get())); |
| 1082 bluetooth_notification_controller_.reset(new BluetoothNotificationController); | 1080 bluetooth_notification_controller_.reset(new BluetoothNotificationController); |
| 1083 last_window_closed_logout_reminder_.reset(new LastWindowClosedLogoutReminder); | 1081 last_window_closed_logout_reminder_.reset(new LastWindowClosedLogoutReminder); |
| 1084 screen_orientation_controller_.reset(new ScreenOrientationController()); | 1082 screen_orientation_controller_.reset(new ScreenOrientationController()); |
| 1085 #endif | 1083 #endif |
| 1086 // The compositor thread and main message loop have to be running in | 1084 // The compositor thread and main message loop have to be running in |
| 1087 // order to create mirror window. Run it after the main message loop | 1085 // order to create mirror window. Run it after the main message loop |
| 1088 // is started. | 1086 // is started. |
| 1089 display_manager_->CreateMirrorWindowAsyncIfAny(); | 1087 display_manager_->CreateMirrorWindowAsyncIfAny(); |
| 1090 | |
| 1091 user_metrics_recorder_->OnShellInitialized(); | |
| 1092 } | 1088 } |
| 1093 | 1089 |
| 1094 void Shell::InitKeyboard() { | 1090 void Shell::InitKeyboard() { |
| 1095 if (keyboard::IsKeyboardEnabled()) { | 1091 if (keyboard::IsKeyboardEnabled()) { |
| 1096 if (keyboard::KeyboardController::GetInstance()) { | 1092 if (keyboard::KeyboardController::GetInstance()) { |
| 1097 RootWindowControllerList controllers = GetAllRootWindowControllers(); | 1093 RootWindowControllerList controllers = GetAllRootWindowControllers(); |
| 1098 for (RootWindowControllerList::iterator iter = controllers.begin(); | 1094 for (RootWindowControllerList::iterator iter = controllers.begin(); |
| 1099 iter != controllers.end(); ++iter) { | 1095 iter != controllers.end(); ++iter) { |
| 1100 (*iter)->DeactivateKeyboard( | 1096 (*iter)->DeactivateKeyboard( |
| 1101 keyboard::KeyboardController::GetInstance()); | 1097 keyboard::KeyboardController::GetInstance()); |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1183 | 1179 |
| 1184 void Shell::OnWindowActivated( | 1180 void Shell::OnWindowActivated( |
| 1185 aura::client::ActivationChangeObserver::ActivationReason reason, | 1181 aura::client::ActivationChangeObserver::ActivationReason reason, |
| 1186 aura::Window* gained_active, | 1182 aura::Window* gained_active, |
| 1187 aura::Window* lost_active) { | 1183 aura::Window* lost_active) { |
| 1188 if (gained_active) | 1184 if (gained_active) |
| 1189 target_root_window_ = gained_active->GetRootWindow(); | 1185 target_root_window_ = gained_active->GetRootWindow(); |
| 1190 } | 1186 } |
| 1191 | 1187 |
| 1192 } // namespace ash | 1188 } // namespace ash |
| OLD | NEW |