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 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
51 #include "ash/first_run/first_run_helper_impl.h" | 51 #include "ash/first_run/first_run_helper_impl.h" |
52 #include "ash/high_contrast/high_contrast_controller.h" | 52 #include "ash/high_contrast/high_contrast_controller.h" |
53 #include "ash/host/ash_window_tree_host_init_params.h" | 53 #include "ash/host/ash_window_tree_host_init_params.h" |
54 #include "ash/ime/input_method_event_handler.h" | 54 #include "ash/ime/input_method_event_handler.h" |
55 #include "ash/magnifier/magnification_controller.h" | 55 #include "ash/magnifier/magnification_controller.h" |
56 #include "ash/magnifier/partial_magnification_controller.h" | 56 #include "ash/magnifier/partial_magnification_controller.h" |
57 #include "ash/root_window_controller.h" | 57 #include "ash/root_window_controller.h" |
58 #include "ash/shell_init_params.h" | 58 #include "ash/shell_init_params.h" |
59 #include "ash/system/chromeos/screen_layout_observer.h" | 59 #include "ash/system/chromeos/screen_layout_observer.h" |
60 #include "ash/utility/screenshot_controller.h" | 60 #include "ash/utility/screenshot_controller.h" |
61 #include "ash/wallpaper/wallpaper_controller.h" | |
62 #include "ash/wallpaper/wallpaper_view.h" | |
63 #include "ash/wm/ash_focus_rules.h" | 61 #include "ash/wm/ash_focus_rules.h" |
64 #include "ash/wm/ash_native_cursor_manager.h" | 62 #include "ash/wm/ash_native_cursor_manager.h" |
65 #include "ash/wm/event_client_impl.h" | 63 #include "ash/wm/event_client_impl.h" |
66 #include "ash/wm/immersive_handler_factory_ash.h" | 64 #include "ash/wm/immersive_handler_factory_ash.h" |
67 #include "ash/wm/lock_state_controller.h" | 65 #include "ash/wm/lock_state_controller.h" |
68 #include "ash/wm/overlay_event_filter.h" | 66 #include "ash/wm/overlay_event_filter.h" |
69 #include "ash/wm/overview/scoped_overview_animation_settings_factory_aura.h" | 67 #include "ash/wm/overview/scoped_overview_animation_settings_factory_aura.h" |
70 #include "ash/wm/power_button_controller.h" | 68 #include "ash/wm/power_button_controller.h" |
71 #include "ash/wm/resize_shadow_controller.h" | 69 #include "ash/wm/resize_shadow_controller.h" |
72 #include "ash/wm/screen_pinning_controller.h" | 70 #include "ash/wm/screen_pinning_controller.h" |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
187 Shell* Shell::instance_ = nullptr; | 185 Shell* Shell::instance_ = nullptr; |
188 // static | 186 // static |
189 bool Shell::initially_hide_cursor_ = false; | 187 bool Shell::initially_hide_cursor_ = false; |
190 | 188 |
191 //////////////////////////////////////////////////////////////////////////////// | 189 //////////////////////////////////////////////////////////////////////////////// |
192 // Shell, public: | 190 // Shell, public: |
193 | 191 |
194 // static | 192 // static |
195 Shell* Shell::CreateInstance(const ShellInitParams& init_params) { | 193 Shell* Shell::CreateInstance(const ShellInitParams& init_params) { |
196 CHECK(!instance_); | 194 CHECK(!instance_); |
197 instance_ = new Shell(init_params.delegate, init_params.blocking_pool); | 195 instance_ = new Shell(init_params.delegate); |
198 instance_->Init(init_params); | 196 instance_->Init(init_params); |
199 return instance_; | 197 return instance_; |
200 } | 198 } |
201 | 199 |
202 // static | 200 // static |
203 Shell* Shell::GetInstance() { | 201 Shell* Shell::GetInstance() { |
204 CHECK(instance_); | 202 CHECK(instance_); |
205 return instance_; | 203 return instance_; |
206 } | 204 } |
207 | 205 |
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
481 | 479 |
482 void Shell::DoInitialWorkspaceAnimation() { | 480 void Shell::DoInitialWorkspaceAnimation() { |
483 return GetPrimaryRootWindowController() | 481 return GetPrimaryRootWindowController() |
484 ->workspace_controller() | 482 ->workspace_controller() |
485 ->DoInitialAnimation(); | 483 ->DoInitialAnimation(); |
486 } | 484 } |
487 | 485 |
488 //////////////////////////////////////////////////////////////////////////////// | 486 //////////////////////////////////////////////////////////////////////////////// |
489 // Shell, private: | 487 // Shell, private: |
490 | 488 |
491 Shell::Shell(ShellDelegate* delegate, base::SequencedWorkerPool* blocking_pool) | 489 Shell::Shell(ShellDelegate* delegate) |
492 : wm_shell_(new WmShellAura(base::WrapUnique(delegate))), | 490 : wm_shell_(new WmShellAura(base::WrapUnique(delegate))), |
493 link_handler_model_factory_(nullptr), | 491 link_handler_model_factory_(nullptr), |
494 activation_client_(nullptr), | 492 activation_client_(nullptr), |
495 #if defined(OS_CHROMEOS) | 493 #if defined(OS_CHROMEOS) |
496 display_configurator_(new ui::DisplayConfigurator()), | 494 display_configurator_(new ui::DisplayConfigurator()), |
497 #endif // defined(OS_CHROMEOS) | 495 #endif // defined(OS_CHROMEOS) |
498 native_cursor_manager_(nullptr), | 496 native_cursor_manager_(nullptr), |
499 simulate_modal_window_open_for_testing_(false), | 497 simulate_modal_window_open_for_testing_(false), |
500 is_touch_hud_projection_enabled_(false), | 498 is_touch_hud_projection_enabled_(false) { |
501 blocking_pool_(blocking_pool) { | |
502 DCHECK(aura::Env::GetInstanceDontCreate()); | 499 DCHECK(aura::Env::GetInstanceDontCreate()); |
503 gpu_support_.reset(wm_shell_->delegate()->CreateGPUSupport()); | 500 gpu_support_.reset(wm_shell_->delegate()->CreateGPUSupport()); |
504 display_manager_.reset(ScreenAsh::CreateDisplayManager()); | 501 display_manager_.reset(ScreenAsh::CreateDisplayManager()); |
505 window_tree_host_manager_.reset(new WindowTreeHostManager); | 502 window_tree_host_manager_.reset(new WindowTreeHostManager); |
506 user_metrics_recorder_.reset(new UserMetricsRecorder); | 503 user_metrics_recorder_.reset(new UserMetricsRecorder); |
507 | 504 |
508 #if defined(OS_CHROMEOS) | 505 #if defined(OS_CHROMEOS) |
509 PowerStatus::Initialize(); | 506 PowerStatus::Initialize(); |
510 #endif | 507 #endif |
511 } | 508 } |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
620 visibility_controller_.reset(); | 617 visibility_controller_.reset(); |
621 | 618 |
622 power_button_controller_.reset(); | 619 power_button_controller_.reset(); |
623 lock_state_controller_.reset(); | 620 lock_state_controller_.reset(); |
624 | 621 |
625 screen_pinning_controller_.reset(); | 622 screen_pinning_controller_.reset(); |
626 | 623 |
627 #if defined(OS_CHROMEOS) | 624 #if defined(OS_CHROMEOS) |
628 resolution_notification_controller_.reset(); | 625 resolution_notification_controller_.reset(); |
629 #endif | 626 #endif |
630 wallpaper_controller_.reset(); | |
631 screenshot_controller_.reset(); | 627 screenshot_controller_.reset(); |
632 mouse_cursor_filter_.reset(); | 628 mouse_cursor_filter_.reset(); |
633 modality_filter_.reset(); | 629 modality_filter_.reset(); |
634 | 630 |
635 #if defined(OS_CHROMEOS) | 631 #if defined(OS_CHROMEOS) |
636 touch_transformer_controller_.reset(); | 632 touch_transformer_controller_.reset(); |
637 stylus_metrics_recorder_.reset(); | 633 stylus_metrics_recorder_.reset(); |
638 audio_a11y_controller_.reset(); | 634 audio_a11y_controller_.reset(); |
639 #endif // defined(OS_CHROMEOS) | 635 #endif // defined(OS_CHROMEOS) |
640 | 636 |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
673 #endif | 669 #endif |
674 | 670 |
675 // Needs to happen right before |instance_| is reset. | 671 // Needs to happen right before |instance_| is reset. |
676 wm_shell_.reset(); | 672 wm_shell_.reset(); |
677 | 673 |
678 DCHECK(instance_ == this); | 674 DCHECK(instance_ == this); |
679 instance_ = nullptr; | 675 instance_ = nullptr; |
680 } | 676 } |
681 | 677 |
682 void Shell::Init(const ShellInitParams& init_params) { | 678 void Shell::Init(const ShellInitParams& init_params) { |
683 wm_shell_->Initialize(); | 679 wm_shell_->Initialize(init_params.blocking_pool); |
684 | 680 |
685 in_mus_ = init_params.in_mus; | 681 in_mus_ = init_params.in_mus; |
686 | 682 |
687 immersive_handler_factory_ = base::MakeUnique<ImmersiveHandlerFactoryAsh>(); | 683 immersive_handler_factory_ = base::MakeUnique<ImmersiveHandlerFactoryAsh>(); |
688 | 684 |
689 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) | 685 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) |
690 DCHECK(in_mus_) << "linux desktop does not support ash."; | 686 DCHECK(in_mus_) << "linux desktop does not support ash."; |
691 #endif | 687 #endif |
692 | 688 |
693 scoped_overview_animation_settings_factory_.reset( | 689 scoped_overview_animation_settings_factory_.reset( |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
743 // observer gets invoked after the root windows are configured. | 739 // observer gets invoked after the root windows are configured. |
744 display_configurator_->AddObserver(display_change_observer_.get()); | 740 display_configurator_->AddObserver(display_change_observer_.get()); |
745 display_error_observer_.reset(new DisplayErrorObserver()); | 741 display_error_observer_.reset(new DisplayErrorObserver()); |
746 display_configurator_->AddObserver(display_error_observer_.get()); | 742 display_configurator_->AddObserver(display_error_observer_.get()); |
747 display_configurator_->set_state_controller(display_change_observer_.get()); | 743 display_configurator_->set_state_controller(display_change_observer_.get()); |
748 display_configurator_->set_mirroring_controller(display_manager_.get()); | 744 display_configurator_->set_mirroring_controller(display_manager_.get()); |
749 display_configurator_->ForceInitialConfigure( | 745 display_configurator_->ForceInitialConfigure( |
750 wm_shell_->delegate()->IsFirstRunAfterBoot() ? kChromeOsBootColor : 0); | 746 wm_shell_->delegate()->IsFirstRunAfterBoot() ? kChromeOsBootColor : 0); |
751 display_initialized = true; | 747 display_initialized = true; |
752 } | 748 } |
753 display_color_manager_.reset( | 749 display_color_manager_.reset(new DisplayColorManager( |
754 new DisplayColorManager(display_configurator_.get(), blocking_pool_)); | 750 display_configurator_.get(), init_params.blocking_pool)); |
755 #endif // defined(OS_CHROMEOS) | 751 #endif // defined(OS_CHROMEOS) |
756 | 752 |
757 if (!display_initialized) | 753 if (!display_initialized) |
758 display_manager_->InitDefaultDisplay(); | 754 display_manager_->InitDefaultDisplay(); |
759 | 755 |
760 display_manager_->RefreshFontParams(); | 756 display_manager_->RefreshFontParams(); |
761 | 757 |
762 aura::Env::GetInstance()->set_context_factory(init_params.context_factory); | 758 aura::Env::GetInstance()->set_context_factory(init_params.context_factory); |
763 | 759 |
764 // The WindowModalityController needs to be at the front of the input event | 760 // The WindowModalityController needs to be at the front of the input event |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
881 | 877 |
882 tooltip_controller_.reset(new views::corewm::TooltipController( | 878 tooltip_controller_.reset(new views::corewm::TooltipController( |
883 std::unique_ptr<views::corewm::Tooltip>(new views::corewm::TooltipAura))); | 879 std::unique_ptr<views::corewm::Tooltip>(new views::corewm::TooltipAura))); |
884 AddPreTargetHandler(tooltip_controller_.get()); | 880 AddPreTargetHandler(tooltip_controller_.get()); |
885 | 881 |
886 modality_filter_.reset(new SystemModalContainerEventFilter(this)); | 882 modality_filter_.reset(new SystemModalContainerEventFilter(this)); |
887 AddPreTargetHandler(modality_filter_.get()); | 883 AddPreTargetHandler(modality_filter_.get()); |
888 | 884 |
889 event_client_.reset(new EventClientImpl); | 885 event_client_.reset(new EventClientImpl); |
890 | 886 |
891 // This controller needs to be set before SetupManagedWindowMode. | |
892 wallpaper_controller_.reset(new WallpaperController(blocking_pool_)); | |
893 | |
894 session_state_delegate_.reset( | 887 session_state_delegate_.reset( |
895 wm_shell_->delegate()->CreateSessionStateDelegate()); | 888 wm_shell_->delegate()->CreateSessionStateDelegate()); |
896 wm_shell_->CreatePointerWatcherAdapter(); | 889 wm_shell_->CreatePointerWatcherAdapter(); |
897 | 890 |
898 resize_shadow_controller_.reset(new ResizeShadowController()); | 891 resize_shadow_controller_.reset(new ResizeShadowController()); |
899 shadow_controller_.reset(new ::wm::ShadowController(activation_client_)); | 892 shadow_controller_.reset(new ::wm::ShadowController(activation_client_)); |
900 | 893 |
901 wm_shell_->SetSystemTrayDelegate( | 894 wm_shell_->SetSystemTrayDelegate( |
902 base::WrapUnique(wm_shell_->delegate()->CreateSystemTrayDelegate())); | 895 base::WrapUnique(wm_shell_->delegate()->CreateSystemTrayDelegate())); |
903 | 896 |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1026 std::unique_ptr<ui::EventTargetIterator> Shell::GetChildIterator() const { | 1019 std::unique_ptr<ui::EventTargetIterator> Shell::GetChildIterator() const { |
1027 return std::unique_ptr<ui::EventTargetIterator>(); | 1020 return std::unique_ptr<ui::EventTargetIterator>(); |
1028 } | 1021 } |
1029 | 1022 |
1030 ui::EventTargeter* Shell::GetEventTargeter() { | 1023 ui::EventTargeter* Shell::GetEventTargeter() { |
1031 NOTREACHED(); | 1024 NOTREACHED(); |
1032 return nullptr; | 1025 return nullptr; |
1033 } | 1026 } |
1034 | 1027 |
1035 } // namespace ash | 1028 } // namespace ash |
OLD | NEW |