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

Side by Side Diff: ash/shell.cc

Issue 2115663002: Folds methods in WmShellCommon to WmShell (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: moar Created 4 years, 5 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 #include <utility> 9 #include <utility>
10 10
(...skipping 12 matching lines...) Expand all
23 #include "ash/common/shelf/shelf_item_delegate_manager.h" 23 #include "ash/common/shelf/shelf_item_delegate_manager.h"
24 #include "ash/common/shelf/shelf_model.h" 24 #include "ash/common/shelf/shelf_model.h"
25 #include "ash/common/shell_window_ids.h" 25 #include "ash/common/shell_window_ids.h"
26 #include "ash/common/system/locale/locale_notification_controller.h" 26 #include "ash/common/system/locale/locale_notification_controller.h"
27 #include "ash/common/system/tray/system_tray_delegate.h" 27 #include "ash/common/system/tray/system_tray_delegate.h"
28 #include "ash/common/wm/maximize_mode/maximize_mode_window_manager.h" 28 #include "ash/common/wm/maximize_mode/maximize_mode_window_manager.h"
29 #include "ash/common/wm/mru_window_tracker.h" 29 #include "ash/common/wm/mru_window_tracker.h"
30 #include "ash/common/wm/root_window_finder.h" 30 #include "ash/common/wm/root_window_finder.h"
31 #include "ash/common/wm/window_positioner.h" 31 #include "ash/common/wm/window_positioner.h"
32 #include "ash/common/wm_shell.h" 32 #include "ash/common/wm_shell.h"
33 #include "ash/common/wm_shell_common.h"
34 #include "ash/desktop_background/desktop_background_controller.h" 33 #include "ash/desktop_background/desktop_background_controller.h"
35 #include "ash/desktop_background/desktop_background_view.h" 34 #include "ash/desktop_background/desktop_background_view.h"
36 #include "ash/desktop_background/user_wallpaper_delegate.h" 35 #include "ash/desktop_background/user_wallpaper_delegate.h"
37 #include "ash/display/cursor_window_controller.h" 36 #include "ash/display/cursor_window_controller.h"
38 #include "ash/display/display_configuration_controller.h" 37 #include "ash/display/display_configuration_controller.h"
39 #include "ash/display/display_manager.h" 38 #include "ash/display/display_manager.h"
40 #include "ash/display/event_transformation_handler.h" 39 #include "ash/display/event_transformation_handler.h"
41 #include "ash/display/mouse_cursor_event_filter.h" 40 #include "ash/display/mouse_cursor_event_filter.h"
42 #include "ash/display/screen_position_controller.h" 41 #include "ash/display/screen_position_controller.h"
43 #include "ash/display/window_tree_host_manager.h" 42 #include "ash/display/window_tree_host_manager.h"
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after
344 // Use translucent-style window frames for dialogs. 343 // Use translucent-style window frames for dialogs.
345 return new CustomFrameViewAsh(widget); 344 return new CustomFrameViewAsh(widget);
346 } 345 }
347 346
348 void Shell::SetDisplayWorkAreaInsets(Window* contains, 347 void Shell::SetDisplayWorkAreaInsets(Window* contains,
349 const gfx::Insets& insets) { 348 const gfx::Insets& insets) {
350 if (!window_tree_host_manager_->UpdateWorkAreaOfDisplayNearestWindow( 349 if (!window_tree_host_manager_->UpdateWorkAreaOfDisplayNearestWindow(
351 contains, insets)) { 350 contains, insets)) {
352 return; 351 return;
353 } 352 }
354 FOR_EACH_OBSERVER(ShellObserver, *wm_shell_common_->shell_observers(), 353 FOR_EACH_OBSERVER(ShellObserver, *wm_shell_->shell_observers(),
355 OnDisplayWorkAreaInsetsChanged()); 354 OnDisplayWorkAreaInsetsChanged());
356 } 355 }
357 356
358 void Shell::OnLoginStateChanged(LoginStatus status) { 357 void Shell::OnLoginStateChanged(LoginStatus status) {
359 FOR_EACH_OBSERVER(ShellObserver, *wm_shell_common_->shell_observers(), 358 FOR_EACH_OBSERVER(ShellObserver, *wm_shell_->shell_observers(),
360 OnLoginStateChanged(status)); 359 OnLoginStateChanged(status));
361 } 360 }
362 361
363 void Shell::OnLoginUserProfilePrepared() { 362 void Shell::OnLoginUserProfilePrepared() {
364 CreateShelf(); 363 CreateShelf();
365 CreateKeyboard(); 364 CreateKeyboard();
366 } 365 }
367 366
368 void Shell::UpdateAfterLoginStatusChange(LoginStatus status) { 367 void Shell::UpdateAfterLoginStatusChange(LoginStatus status) {
369 RootWindowControllerList controllers = GetAllRootWindowControllers(); 368 RootWindowControllerList controllers = GetAllRootWindowControllers();
370 for (RootWindowControllerList::iterator iter = controllers.begin(); 369 for (RootWindowControllerList::iterator iter = controllers.begin();
371 iter != controllers.end(); ++iter) 370 iter != controllers.end(); ++iter)
372 (*iter)->UpdateAfterLoginStatusChange(status); 371 (*iter)->UpdateAfterLoginStatusChange(status);
373 } 372 }
374 373
375 void Shell::OnAppTerminating() { 374 void Shell::OnAppTerminating() {
376 FOR_EACH_OBSERVER(ShellObserver, *wm_shell_common_->shell_observers(), 375 FOR_EACH_OBSERVER(ShellObserver, *wm_shell_->shell_observers(),
377 OnAppTerminating()); 376 OnAppTerminating());
378 } 377 }
379 378
380 void Shell::OnLockStateChanged(bool locked) { 379 void Shell::OnLockStateChanged(bool locked) {
381 FOR_EACH_OBSERVER(ShellObserver, *wm_shell_common_->shell_observers(), 380 FOR_EACH_OBSERVER(ShellObserver, *wm_shell_->shell_observers(),
382 OnLockStateChanged(locked)); 381 OnLockStateChanged(locked));
383 #ifndef NDEBUG 382 #ifndef NDEBUG
384 // Make sure that there is no system modal in Lock layer when unlocked. 383 // Make sure that there is no system modal in Lock layer when unlocked.
385 if (!locked) { 384 if (!locked) {
386 std::vector<aura::Window*> containers = GetContainersFromAllRootWindows( 385 std::vector<aura::Window*> containers = GetContainersFromAllRootWindows(
387 kShellWindowId_LockSystemModalContainer, GetPrimaryRootWindow()); 386 kShellWindowId_LockSystemModalContainer, GetPrimaryRootWindow());
388 for (std::vector<aura::Window*>::const_iterator iter = containers.begin(); 387 for (std::vector<aura::Window*>::const_iterator iter = containers.begin();
389 iter != containers.end(); ++iter) { 388 iter != containers.end(); ++iter) {
390 DCHECK_EQ(0u, (*iter)->children().size()); 389 DCHECK_EQ(0u, (*iter)->children().size());
391 } 390 }
392 } 391 }
393 #endif 392 #endif
394 } 393 }
395 394
396 void Shell::OnCastingSessionStartedOrStopped(bool started) { 395 void Shell::OnCastingSessionStartedOrStopped(bool started) {
397 #if defined(OS_CHROMEOS) 396 #if defined(OS_CHROMEOS)
398 FOR_EACH_OBSERVER(ShellObserver, *wm_shell_common_->shell_observers(), 397 FOR_EACH_OBSERVER(ShellObserver, *wm_shell_->shell_observers(),
399 OnCastingSessionStartedOrStopped(started)); 398 OnCastingSessionStartedOrStopped(started));
400 #endif 399 #endif
401 } 400 }
402 401
403 void Shell::OnMaximizeModeStarted() { 402 void Shell::OnMaximizeModeStarted() {
404 FOR_EACH_OBSERVER(ShellObserver, *wm_shell_common_->shell_observers(), 403 FOR_EACH_OBSERVER(ShellObserver, *wm_shell_->shell_observers(),
405 OnMaximizeModeStarted()); 404 OnMaximizeModeStarted());
406 } 405 }
407 406
408 void Shell::OnMaximizeModeEnded() { 407 void Shell::OnMaximizeModeEnded() {
409 FOR_EACH_OBSERVER(ShellObserver, *wm_shell_common_->shell_observers(), 408 FOR_EACH_OBSERVER(ShellObserver, *wm_shell_->shell_observers(),
410 OnMaximizeModeEnded()); 409 OnMaximizeModeEnded());
411 } 410 }
412 411
413 void Shell::OnRootWindowAdded(WmWindow* root_window) { 412 void Shell::OnRootWindowAdded(WmWindow* root_window) {
414 FOR_EACH_OBSERVER(ShellObserver, *wm_shell_common_->shell_observers(), 413 FOR_EACH_OBSERVER(ShellObserver, *wm_shell_->shell_observers(),
415 OnRootWindowAdded(root_window)); 414 OnRootWindowAdded(root_window));
416 } 415 }
417 416
418 void Shell::CreateShelf() { 417 void Shell::CreateShelf() {
419 RootWindowControllerList controllers = GetAllRootWindowControllers(); 418 RootWindowControllerList controllers = GetAllRootWindowControllers();
420 for (RootWindowControllerList::iterator iter = controllers.begin(); 419 for (RootWindowControllerList::iterator iter = controllers.begin();
421 iter != controllers.end(); ++iter) 420 iter != controllers.end(); ++iter)
422 (*iter)->CreateShelf(); 421 (*iter)->CreateShelf();
423 } 422 }
424 423
425 void Shell::OnShelfCreatedForRootWindow(WmWindow* root_window) { 424 void Shell::OnShelfCreatedForRootWindow(WmWindow* root_window) {
426 FOR_EACH_OBSERVER(ShellObserver, *wm_shell_common_->shell_observers(), 425 FOR_EACH_OBSERVER(ShellObserver, *wm_shell_->shell_observers(),
427 OnShelfCreatedForRootWindow(root_window)); 426 OnShelfCreatedForRootWindow(root_window));
428 } 427 }
429 428
430 void Shell::CreateKeyboard() { 429 void Shell::CreateKeyboard() {
431 if (in_mus_) 430 if (in_mus_)
432 return; 431 return;
433 // TODO(bshe): Primary root window controller may not be the controller to 432 // TODO(bshe): Primary root window controller may not be the controller to
434 // attach virtual keyboard. See http://crbug.com/303429 433 // attach virtual keyboard. See http://crbug.com/303429
435 InitKeyboard(); 434 InitKeyboard();
436 GetPrimaryRootWindowController()->ActivateKeyboard( 435 GetPrimaryRootWindowController()->ActivateKeyboard(
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
486 485
487 void Shell::UpdateShelfVisibility() { 486 void Shell::UpdateShelfVisibility() {
488 RootWindowControllerList controllers = GetAllRootWindowControllers(); 487 RootWindowControllerList controllers = GetAllRootWindowControllers();
489 for (RootWindowControllerList::iterator iter = controllers.begin(); 488 for (RootWindowControllerList::iterator iter = controllers.begin();
490 iter != controllers.end(); ++iter) 489 iter != controllers.end(); ++iter)
491 if ((*iter)->shelf_widget()) 490 if ((*iter)->shelf_widget())
492 (*iter)->UpdateShelfVisibility(); 491 (*iter)->UpdateShelfVisibility();
493 } 492 }
494 493
495 void Shell::OnShelfAlignmentChanged(WmWindow* root_window) { 494 void Shell::OnShelfAlignmentChanged(WmWindow* root_window) {
496 FOR_EACH_OBSERVER(ShellObserver, *wm_shell_common_->shell_observers(), 495 FOR_EACH_OBSERVER(ShellObserver, *wm_shell_->shell_observers(),
497 OnShelfAlignmentChanged(root_window)); 496 OnShelfAlignmentChanged(root_window));
498 } 497 }
499 498
500 void Shell::OnShelfAutoHideBehaviorChanged(WmWindow* root_window) { 499 void Shell::OnShelfAutoHideBehaviorChanged(WmWindow* root_window) {
501 FOR_EACH_OBSERVER(ShellObserver, *wm_shell_common_->shell_observers(), 500 FOR_EACH_OBSERVER(ShellObserver, *wm_shell_->shell_observers(),
502 OnShelfAutoHideBehaviorChanged(root_window)); 501 OnShelfAutoHideBehaviorChanged(root_window));
503 } 502 }
504 503
505 void Shell::NotifyFullscreenStateChange(bool is_fullscreen, 504 void Shell::NotifyFullscreenStateChange(bool is_fullscreen,
506 WmWindow* root_window) { 505 WmWindow* root_window) {
507 FOR_EACH_OBSERVER(ShellObserver, *wm_shell_common_->shell_observers(), 506 FOR_EACH_OBSERVER(ShellObserver, *wm_shell_->shell_observers(),
508 OnFullscreenStateChanged(is_fullscreen, root_window)); 507 OnFullscreenStateChanged(is_fullscreen, root_window));
509 } 508 }
510 509
511 void Shell::CreateModalBackground(aura::Window* window) { 510 void Shell::CreateModalBackground(aura::Window* window) {
512 if (!modality_filter_) { 511 if (!modality_filter_) {
513 modality_filter_.reset(new SystemModalContainerEventFilter(this)); 512 modality_filter_.reset(new SystemModalContainerEventFilter(this));
514 AddPreTargetHandler(modality_filter_.get()); 513 AddPreTargetHandler(modality_filter_.get());
515 } 514 }
516 RootWindowControllerList controllers = GetAllRootWindowControllers(); 515 RootWindowControllerList controllers = GetAllRootWindowControllers();
517 for (RootWindowControllerList::iterator iter = controllers.begin(); 516 for (RootWindowControllerList::iterator iter = controllers.begin();
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
574 shelf_model_.get(), shelf_item_delegate_manager_.get())); 573 shelf_model_.get(), shelf_item_delegate_manager_.get()));
575 } 574 }
576 return shelf_delegate_.get(); 575 return shelf_delegate_.get();
577 } 576 }
578 577
579 void Shell::SetTouchHudProjectionEnabled(bool enabled) { 578 void Shell::SetTouchHudProjectionEnabled(bool enabled) {
580 if (is_touch_hud_projection_enabled_ == enabled) 579 if (is_touch_hud_projection_enabled_ == enabled)
581 return; 580 return;
582 581
583 is_touch_hud_projection_enabled_ = enabled; 582 is_touch_hud_projection_enabled_ = enabled;
584 FOR_EACH_OBSERVER(ShellObserver, *wm_shell_common_->shell_observers(), 583 FOR_EACH_OBSERVER(ShellObserver, *wm_shell_->shell_observers(),
585 OnTouchHudProjectionToggled(enabled)); 584 OnTouchHudProjectionToggled(enabled));
586 } 585 }
587 586
588 #if defined(OS_CHROMEOS) 587 #if defined(OS_CHROMEOS)
589 FirstRunHelper* Shell::CreateFirstRunHelper() { 588 FirstRunHelper* Shell::CreateFirstRunHelper() {
590 return new FirstRunHelperImpl; 589 return new FirstRunHelperImpl;
591 } 590 }
592 591
593 void Shell::SetCursorCompositingEnabled(bool enabled) { 592 void Shell::SetCursorCompositingEnabled(bool enabled) {
594 window_tree_host_manager_->cursor_window_controller() 593 window_tree_host_manager_->cursor_window_controller()
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
722 721
723 // |shelf_window_watcher_| has a weak pointer to |shelf_Model_| 722 // |shelf_window_watcher_| has a weak pointer to |shelf_Model_|
724 // and has window observers. 723 // and has window observers.
725 shelf_window_watcher_.reset(); 724 shelf_window_watcher_.reset();
726 725
727 // Destroy all child windows including widgets. 726 // Destroy all child windows including widgets.
728 window_tree_host_manager_->CloseChildWindows(); 727 window_tree_host_manager_->CloseChildWindows();
729 // MruWindowTracker must be destroyed after all windows have been deleted to 728 // MruWindowTracker must be destroyed after all windows have been deleted to
730 // avoid a possible crash when Shell is destroyed from a non-normal shutdown 729 // avoid a possible crash when Shell is destroyed from a non-normal shutdown
731 // path. (crbug.com/485438). 730 // path. (crbug.com/485438).
732 wm_shell_common_->DeleteMruWindowTracker(); 731 wm_shell_->DeleteMruWindowTracker();
733 732
734 // Chrome implementation of shelf delegate depends on FocusClient, 733 // Chrome implementation of shelf delegate depends on FocusClient,
735 // so must be deleted before |focus_client_| (below). 734 // so must be deleted before |focus_client_| (below).
736 shelf_delegate_.reset(); 735 shelf_delegate_.reset();
737 736
738 // These need a valid Shell instance to clean up properly, so explicitly 737 // These need a valid Shell instance to clean up properly, so explicitly
739 // delete them before invalidating the instance. 738 // delete them before invalidating the instance.
740 // Alphabetical. TODO(oshima): sort. 739 // Alphabetical. TODO(oshima): sort.
741 magnification_controller_.reset(); 740 magnification_controller_.reset();
742 partial_magnification_controller_.reset(); 741 partial_magnification_controller_.reset();
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
790 keyboard::KeyboardController::ResetInstance(nullptr); 789 keyboard::KeyboardController::ResetInstance(nullptr);
791 790
792 #if defined(OS_CHROMEOS) 791 #if defined(OS_CHROMEOS)
793 display_color_manager_.reset(); 792 display_color_manager_.reset();
794 if (display_change_observer_) 793 if (display_change_observer_)
795 display_configurator_->RemoveObserver(display_change_observer_.get()); 794 display_configurator_->RemoveObserver(display_change_observer_.get());
796 if (display_error_observer_) 795 if (display_error_observer_)
797 display_configurator_->RemoveObserver(display_error_observer_.get()); 796 display_configurator_->RemoveObserver(display_error_observer_.get());
798 if (projecting_observer_) { 797 if (projecting_observer_) {
799 display_configurator_->RemoveObserver(projecting_observer_.get()); 798 display_configurator_->RemoveObserver(projecting_observer_.get());
800 wm_shell_common_->RemoveShellObserver(projecting_observer_.get()); 799 wm_shell_->RemoveShellObserver(projecting_observer_.get());
801 } 800 }
802 display_change_observer_.reset(); 801 display_change_observer_.reset();
803 802
804 PowerStatus::Shutdown(); 803 PowerStatus::Shutdown();
805 804
806 // Ensure that DBusThreadManager outlives this Shell. 805 // Ensure that DBusThreadManager outlives this Shell.
807 DCHECK(chromeos::DBusThreadManager::IsInitialized()); 806 DCHECK(chromeos::DBusThreadManager::IsInitialized());
808 #endif 807 #endif
809 808
810 // Needs to happen right before |instance_| is reset. 809 // Needs to happen right before |instance_| is reset.
811 wm_shell_.reset(); 810 wm_shell_.reset();
812 811
813 // Must happen after |wm_shell_| is deleted.
814 wm_shell_common_.reset();
815
816 DCHECK(instance_ == this); 812 DCHECK(instance_ == this);
817 instance_ = nullptr; 813 instance_ = nullptr;
818 } 814 }
819 815
820 void Shell::Init(const ShellInitParams& init_params) { 816 void Shell::Init(const ShellInitParams& init_params) {
821 in_mus_ = init_params.in_mus; 817 in_mus_ = init_params.in_mus;
822 818
823 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) 819 #if defined(OS_LINUX) && !defined(OS_CHROMEOS)
824 DCHECK(in_mus_) << "linux desktop does not support ash."; 820 DCHECK(in_mus_) << "linux desktop does not support ash.";
825 #endif 821 #endif
826 822
827 wm_shell_common_.reset(new WmShellCommon); 823 wm_shell_.reset(new WmShellAura);
828 wm_shell_.reset(new WmShellAura(wm_shell_common_.get()));
829 scoped_overview_animation_settings_factory_.reset( 824 scoped_overview_animation_settings_factory_.reset(
830 new ScopedOverviewAnimationSettingsFactoryAura); 825 new ScopedOverviewAnimationSettingsFactoryAura);
831 window_positioner_.reset(new WindowPositioner(wm_shell_.get())); 826 window_positioner_.reset(new WindowPositioner(wm_shell_.get()));
832 827
833 if (!in_mus_) { 828 if (!in_mus_) {
834 native_cursor_manager_ = new AshNativeCursorManager; 829 native_cursor_manager_ = new AshNativeCursorManager;
835 #if defined(OS_CHROMEOS) 830 #if defined(OS_CHROMEOS)
836 cursor_manager_.reset( 831 cursor_manager_.reset(
837 new CursorManager(base::WrapUnique(native_cursor_manager_))); 832 new CursorManager(base::WrapUnique(native_cursor_manager_)));
838 #else 833 #else
(...skipping 24 matching lines...) Expand all
863 !gpu_support_->IsPanelFittingDisabled()); 858 !gpu_support_->IsPanelFittingDisabled());
864 #endif 859 #endif
865 } 860 }
866 861
867 // The DBusThreadManager must outlive this Shell. See the DCHECK in ~Shell. 862 // The DBusThreadManager must outlive this Shell. See the DCHECK in ~Shell.
868 chromeos::DBusThreadManager* dbus_thread_manager = 863 chromeos::DBusThreadManager* dbus_thread_manager =
869 chromeos::DBusThreadManager::Get(); 864 chromeos::DBusThreadManager::Get();
870 projecting_observer_.reset( 865 projecting_observer_.reset(
871 new ProjectingObserver(dbus_thread_manager->GetPowerManagerClient())); 866 new ProjectingObserver(dbus_thread_manager->GetPowerManagerClient()));
872 display_configurator_->AddObserver(projecting_observer_.get()); 867 display_configurator_->AddObserver(projecting_observer_.get());
873 wm_shell_common_->AddShellObserver(projecting_observer_.get()); 868 wm_shell_->AddShellObserver(projecting_observer_.get());
874 869
875 if (!in_mus_ && !display_initialized && 870 if (!in_mus_ && !display_initialized &&
876 base::SysInfo::IsRunningOnChromeOS()) { 871 base::SysInfo::IsRunningOnChromeOS()) {
877 display_change_observer_.reset(new DisplayChangeObserver); 872 display_change_observer_.reset(new DisplayChangeObserver);
878 // Register |display_change_observer_| first so that the rest of 873 // Register |display_change_observer_| first so that the rest of
879 // observer gets invoked after the root windows are configured. 874 // observer gets invoked after the root windows are configured.
880 display_configurator_->AddObserver(display_change_observer_.get()); 875 display_configurator_->AddObserver(display_change_observer_.get());
881 display_error_observer_.reset(new DisplayErrorObserver()); 876 display_error_observer_.reset(new DisplayErrorObserver());
882 display_configurator_->AddObserver(display_error_observer_.get()); 877 display_configurator_->AddObserver(display_error_observer_.get());
883 display_configurator_->set_state_controller(display_change_observer_.get()); 878 display_configurator_->set_state_controller(display_change_observer_.get());
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
947 #endif 942 #endif
948 943
949 // The order in which event filters are added is significant. 944 // The order in which event filters are added is significant.
950 945
951 // ui::UserActivityDetector passes events to observers, so let them get 946 // ui::UserActivityDetector passes events to observers, so let them get
952 // rewritten first. 947 // rewritten first.
953 user_activity_detector_.reset(new ui::UserActivityDetector); 948 user_activity_detector_.reset(new ui::UserActivityDetector);
954 949
955 overlay_filter_.reset(new OverlayEventFilter); 950 overlay_filter_.reset(new OverlayEventFilter);
956 AddPreTargetHandler(overlay_filter_.get()); 951 AddPreTargetHandler(overlay_filter_.get());
957 wm_shell_common_->AddShellObserver(overlay_filter_.get()); 952 wm_shell_->AddShellObserver(overlay_filter_.get());
958 953
959 accelerator_filter_.reset(new ::wm::AcceleratorFilter( 954 accelerator_filter_.reset(new ::wm::AcceleratorFilter(
960 std::unique_ptr<::wm::AcceleratorDelegate>(new AcceleratorDelegate), 955 std::unique_ptr<::wm::AcceleratorDelegate>(new AcceleratorDelegate),
961 accelerator_controller_->accelerator_history())); 956 accelerator_controller_->accelerator_history()));
962 AddPreTargetHandler(accelerator_filter_.get()); 957 AddPreTargetHandler(accelerator_filter_.get());
963 958
964 event_transformation_handler_.reset(new EventTransformationHandler); 959 event_transformation_handler_.reset(new EventTransformationHandler);
965 AddPreTargetHandler(event_transformation_handler_.get()); 960 AddPreTargetHandler(event_transformation_handler_.get());
966 961
967 toplevel_window_event_handler_.reset( 962 toplevel_window_event_handler_.reset(
968 new ToplevelWindowEventHandler(wm_shell_.get())); 963 new ToplevelWindowEventHandler(wm_shell_.get()));
969 964
970 system_gesture_filter_.reset(new SystemGestureEventFilter); 965 system_gesture_filter_.reset(new SystemGestureEventFilter);
971 AddPreTargetHandler(system_gesture_filter_.get()); 966 AddPreTargetHandler(system_gesture_filter_.get());
972 967
973 keyboard_metrics_filter_.reset(new KeyboardUMAEventFilter); 968 keyboard_metrics_filter_.reset(new KeyboardUMAEventFilter);
974 AddPreTargetHandler(keyboard_metrics_filter_.get()); 969 AddPreTargetHandler(keyboard_metrics_filter_.get());
975 970
976 #if defined(OS_CHROMEOS) 971 #if defined(OS_CHROMEOS)
977 sticky_keys_controller_.reset(new StickyKeysController); 972 sticky_keys_controller_.reset(new StickyKeysController);
978 #endif 973 #endif
979 screen_pinning_controller_.reset(new ScreenPinningController( 974 screen_pinning_controller_.reset(
980 wm_shell_common_.get(), window_tree_host_manager_.get())); 975 new ScreenPinningController(window_tree_host_manager_.get()));
981 976
982 lock_state_controller_.reset(new LockStateController); 977 lock_state_controller_.reset(new LockStateController);
983 power_button_controller_.reset( 978 power_button_controller_.reset(
984 new PowerButtonController(lock_state_controller_.get())); 979 new PowerButtonController(lock_state_controller_.get()));
985 #if defined(OS_CHROMEOS) 980 #if defined(OS_CHROMEOS)
986 // Pass the initial display state to PowerButtonController. 981 // Pass the initial display state to PowerButtonController.
987 power_button_controller_->OnDisplayModeChanged( 982 power_button_controller_->OnDisplayModeChanged(
988 display_configurator_->cached_displays()); 983 display_configurator_->cached_displays());
989 #endif 984 #endif
990 wm_shell_common_->AddShellObserver(lock_state_controller_.get()); 985 wm_shell_->AddShellObserver(lock_state_controller_.get());
991 986
992 drag_drop_controller_.reset(new DragDropController); 987 drag_drop_controller_.reset(new DragDropController);
993 // |screenshot_controller_| needs to be created (and prepended as a 988 // |screenshot_controller_| needs to be created (and prepended as a
994 // pre-target handler) at this point, because |mouse_cursor_filter_| needs to 989 // pre-target handler) at this point, because |mouse_cursor_filter_| needs to
995 // process mouse events prior to screenshot session. 990 // process mouse events prior to screenshot session.
996 // See http://crbug.com/459214 991 // See http://crbug.com/459214
997 screenshot_controller_.reset(new ScreenshotController()); 992 screenshot_controller_.reset(new ScreenshotController());
998 mouse_cursor_filter_.reset(new MouseCursorEventFilter()); 993 mouse_cursor_filter_.reset(new MouseCursorEventFilter());
999 PrependPreTargetHandler(mouse_cursor_filter_.get()); 994 PrependPreTargetHandler(mouse_cursor_filter_.get());
1000 995
1001 // Create Controllers that may need root window. 996 // Create Controllers that may need root window.
1002 // TODO(oshima): Move as many controllers before creating 997 // TODO(oshima): Move as many controllers before creating
1003 // RootWindowController as possible. 998 // RootWindowController as possible.
1004 visibility_controller_.reset(new AshVisibilityController); 999 visibility_controller_.reset(new AshVisibilityController);
1005 1000
1006 magnification_controller_.reset(MagnificationController::CreateInstance()); 1001 magnification_controller_.reset(MagnificationController::CreateInstance());
1007 wm_shell_common_->CreateMruWindowTracker(); 1002 wm_shell_->CreateMruWindowTracker();
1008 1003
1009 partial_magnification_controller_.reset(new PartialMagnificationController()); 1004 partial_magnification_controller_.reset(new PartialMagnificationController());
1010 1005
1011 autoclick_controller_.reset(AutoclickController::CreateInstance()); 1006 autoclick_controller_.reset(AutoclickController::CreateInstance());
1012 1007
1013 high_contrast_controller_.reset(new HighContrastController); 1008 high_contrast_controller_.reset(new HighContrastController);
1014 video_detector_.reset(new VideoDetector); 1009 video_detector_.reset(new VideoDetector);
1015 window_cycle_controller_.reset(new WindowCycleController()); 1010 window_cycle_controller_.reset(new WindowCycleController());
1016 1011
1017 tooltip_controller_.reset(new views::corewm::TooltipController( 1012 tooltip_controller_.reset(new views::corewm::TooltipController(
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
1094 video_activity_notifier_.reset( 1089 video_activity_notifier_.reset(
1095 new VideoActivityNotifier(video_detector_.get())); 1090 new VideoActivityNotifier(video_detector_.get()));
1096 bluetooth_notification_controller_.reset(new BluetoothNotificationController); 1091 bluetooth_notification_controller_.reset(new BluetoothNotificationController);
1097 screen_orientation_controller_.reset(new ScreenOrientationController()); 1092 screen_orientation_controller_.reset(new ScreenOrientationController());
1098 #endif 1093 #endif
1099 // The compositor thread and main message loop have to be running in 1094 // The compositor thread and main message loop have to be running in
1100 // order to create mirror window. Run it after the main message loop 1095 // order to create mirror window. Run it after the main message loop
1101 // is started. 1096 // is started.
1102 display_manager_->CreateMirrorWindowAsyncIfAny(); 1097 display_manager_->CreateMirrorWindowAsyncIfAny();
1103 1098
1104 FOR_EACH_OBSERVER(ShellObserver, *wm_shell_common_->shell_observers(), 1099 FOR_EACH_OBSERVER(ShellObserver, *wm_shell_->shell_observers(),
1105 OnShellInitialized()); 1100 OnShellInitialized());
1106 1101
1107 user_metrics_recorder_->OnShellInitialized(); 1102 user_metrics_recorder_->OnShellInitialized();
1108 } 1103 }
1109 1104
1110 void Shell::InitKeyboard() { 1105 void Shell::InitKeyboard() {
1111 if (in_mus_) 1106 if (in_mus_)
1112 return; 1107 return;
1113 1108
1114 if (keyboard::IsKeyboardEnabled()) { 1109 if (keyboard::IsKeyboardEnabled()) {
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
1183 1178
1184 void Shell::OnWindowActivated( 1179 void Shell::OnWindowActivated(
1185 aura::client::ActivationChangeObserver::ActivationReason reason, 1180 aura::client::ActivationChangeObserver::ActivationReason reason,
1186 aura::Window* gained_active, 1181 aura::Window* gained_active,
1187 aura::Window* lost_active) { 1182 aura::Window* lost_active) {
1188 if (gained_active) 1183 if (gained_active)
1189 target_root_window_ = gained_active->GetRootWindow(); 1184 target_root_window_ = gained_active->GetRootWindow();
1190 } 1185 }
1191 1186
1192 } // namespace ash 1187 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698