| Index: ash/common/wm_shell.cc
|
| diff --git a/ash/common/wm_shell.cc b/ash/common/wm_shell.cc
|
| index 35b8dfa55e4cb2741e7dd347694617e595d1caf2..f0ed84ed71194a1548ca50c8f78008d0f1fda893 100644
|
| --- a/ash/common/wm_shell.cc
|
| +++ b/ash/common/wm_shell.cc
|
| @@ -10,6 +10,7 @@
|
| #include "ash/common/accessibility_delegate.h"
|
| #include "ash/common/focus_cycler.h"
|
| #include "ash/common/keyboard/keyboard_ui.h"
|
| +#include "ash/common/shelf/app_list_shelf_item_delegate.h"
|
| #include "ash/common/shelf/shelf_model.h"
|
| #include "ash/common/shell_delegate.h"
|
| #include "ash/common/shell_window_ids.h"
|
| @@ -55,11 +56,17 @@ void WmShell::Initialize() {
|
| accessibility_delegate_.reset(delegate_->CreateAccessibilityDelegate());
|
| media_delegate_.reset(delegate_->CreateMediaDelegate());
|
| toast_manager_.reset(new ToastManager);
|
| +
|
| + // Create the app list item in the shelf data model.
|
| + AppListShelfItemDelegate::CreateAppListItemAndDelegate(shelf_model_.get());
|
| }
|
|
|
| void WmShell::Shutdown() {
|
| // Accesses WmShell in its destructor.
|
| accessibility_delegate_.reset();
|
| + // ShelfItemDelegate subclasses it owns have complex cleanup to run (e.g. ARC
|
| + // shelf items in Chrome) so explicitly shutdown early.
|
| + shelf_model_->DestroyItemDelegates();
|
| }
|
|
|
| void WmShell::OnMaximizeModeStarted() {
|
| @@ -104,14 +111,14 @@ void WmShell::RemoveLockStateObserver(LockStateObserver* observer) {
|
| WmShell::WmShell(std::unique_ptr<ShellDelegate> shell_delegate)
|
| : delegate_(std::move(shell_delegate)),
|
| focus_cycler_(new FocusCycler),
|
| - shelf_model_(new ShelfModel),
|
| + shelf_model_(new ShelfModel), // Must create before ShelfDelegate.
|
| system_tray_notifier_(new SystemTrayNotifier),
|
| + window_cycle_controller_(new WindowCycleController),
|
| window_selector_controller_(new WindowSelectorController) {
|
| #if defined(OS_CHROMEOS)
|
| brightness_control_delegate_.reset(new system::BrightnessControllerChromeos);
|
| keyboard_brightness_control_delegate_.reset(new KeyboardBrightnessController);
|
| #endif
|
| - window_cycle_controller_.reset(new WindowCycleController());
|
| }
|
|
|
| WmShell::~WmShell() {}
|
|
|