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

Side by Side Diff: ash/shell.cc

Issue 834163002: Fixes smart deploy causing crash on shutdown. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove InstallEventBlockerForTest method. Created 5 years, 11 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
« no previous file with comments | « no previous file | ash/virtual_keyboard_controller_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 676 matching lines...) Expand 10 before | Expand all | Expand 10 after
687 RemovePreTargetHandler(event_transformation_handler_.get()); 687 RemovePreTargetHandler(event_transformation_handler_.get());
688 RemovePreTargetHandler(toplevel_window_event_handler_.get()); 688 RemovePreTargetHandler(toplevel_window_event_handler_.get());
689 RemovePostTargetHandler(toplevel_window_event_handler_.get()); 689 RemovePostTargetHandler(toplevel_window_event_handler_.get());
690 RemovePreTargetHandler(system_gesture_filter_.get()); 690 RemovePreTargetHandler(system_gesture_filter_.get());
691 RemovePreTargetHandler(keyboard_metrics_filter_.get()); 691 RemovePreTargetHandler(keyboard_metrics_filter_.get());
692 RemovePreTargetHandler(mouse_cursor_filter_.get()); 692 RemovePreTargetHandler(mouse_cursor_filter_.get());
693 693
694 // TooltipController is deleted with the Shell so removing its references. 694 // TooltipController is deleted with the Shell so removing its references.
695 RemovePreTargetHandler(tooltip_controller_.get()); 695 RemovePreTargetHandler(tooltip_controller_.get());
696 696
697 // Destroy the virtual keyboard controller before the maximize mode controller
698 // since the latters destructor triggers events that the former is listening
699 // to but no longer cares about.
700 #if defined(OS_CHROMEOS)
701 virtual_keyboard_controller_.reset();
702 #endif
697 // Destroy maximize mode controller early on since it has some observers which 703 // Destroy maximize mode controller early on since it has some observers which
698 // need to be removed. 704 // need to be removed.
699 maximize_mode_controller_->Shutdown(); 705 maximize_mode_controller_->Shutdown();
700 maximize_mode_controller_.reset(); 706 maximize_mode_controller_.reset();
701 707
702 // AppList needs to be released before shelf layout manager, which is 708 // AppList needs to be released before shelf layout manager, which is
703 // destroyed with shelf container in the loop below. However, app list 709 // destroyed with shelf container in the loop below. However, app list
704 // container is now on top of shelf container and released after it. 710 // container is now on top of shelf container and released after it.
705 // TODO(xiyuan): Move it back when app list container is no longer needed. 711 // TODO(xiyuan): Move it back when app list container is no longer needed.
706 app_list_controller_.reset(); 712 app_list_controller_.reset();
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
786 #if defined(OS_CHROMEOS) 792 #if defined(OS_CHROMEOS)
787 touch_transformer_controller_.reset(); 793 touch_transformer_controller_.reset();
788 #endif // defined(OS_CHROMEOS) 794 #endif // defined(OS_CHROMEOS)
789 795
790 // This also deletes all RootWindows. Note that we invoke Shutdown() on 796 // This also deletes all RootWindows. Note that we invoke Shutdown() on
791 // DisplayController before resetting |display_controller_|, since destruction 797 // DisplayController before resetting |display_controller_|, since destruction
792 // of its owned RootWindowControllers relies on the value. 798 // of its owned RootWindowControllers relies on the value.
793 display_manager_->CreateScreenForShutdown(); 799 display_manager_->CreateScreenForShutdown();
794 display_controller_->Shutdown(); 800 display_controller_->Shutdown();
795 display_controller_.reset(); 801 display_controller_.reset();
796 #if defined(OS_CHROMEOS)
797 virtual_keyboard_controller_.reset();
798 #endif
799 screen_position_controller_.reset(); 802 screen_position_controller_.reset();
800 accessibility_delegate_.reset(); 803 accessibility_delegate_.reset();
801 new_window_delegate_.reset(); 804 new_window_delegate_.reset();
802 media_delegate_.reset(); 805 media_delegate_.reset();
803 806
804 keyboard::KeyboardController::ResetInstance(NULL); 807 keyboard::KeyboardController::ResetInstance(NULL);
805 808
806 #if defined(OS_CHROMEOS) 809 #if defined(OS_CHROMEOS)
807 if (display_change_observer_) 810 if (display_change_observer_)
808 display_configurator_->RemoveObserver(display_change_observer_.get()); 811 display_configurator_->RemoveObserver(display_change_observer_.get());
(...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after
1158 //////////////////////////////////////////////////////////////////////////////// 1161 ////////////////////////////////////////////////////////////////////////////////
1159 // Shell, aura::client::ActivationChangeObserver implementation: 1162 // Shell, aura::client::ActivationChangeObserver implementation:
1160 1163
1161 void Shell::OnWindowActivated(aura::Window* gained_active, 1164 void Shell::OnWindowActivated(aura::Window* gained_active,
1162 aura::Window* lost_active) { 1165 aura::Window* lost_active) {
1163 if (gained_active) 1166 if (gained_active)
1164 target_root_window_ = gained_active->GetRootWindow(); 1167 target_root_window_ = gained_active->GetRootWindow();
1165 } 1168 }
1166 1169
1167 } // namespace ash 1170 } // namespace ash
OLDNEW
« no previous file with comments | « no previous file | ash/virtual_keyboard_controller_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698