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

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

Powered by Google App Engine
This is Rietveld 408576698