| Index: ash/common/wm_shell.cc
|
| diff --git a/ash/common/wm_shell.cc b/ash/common/wm_shell.cc
|
| index 7cbd81edd5368ddeef75804b8295bb639a1c31c3..af766176d38158707bc0e15ad1649ccceebd8d34 100644
|
| --- a/ash/common/wm_shell.cc
|
| +++ b/ash/common/wm_shell.cc
|
| @@ -15,6 +15,7 @@
|
| #include "ash/common/palette_delegate.h"
|
| #include "ash/common/session/session_state_delegate.h"
|
| #include "ash/common/shelf/app_list_shelf_item_delegate.h"
|
| +#include "ash/common/shelf/shelf_controller.h"
|
| #include "ash/common/shelf/shelf_delegate.h"
|
| #include "ash/common/shelf/shelf_model.h"
|
| #include "ash/common/shelf/shelf_window_watcher.h"
|
| @@ -76,7 +77,7 @@ void WmShell::Initialize(const scoped_refptr<base::SequencedWorkerPool>& pool) {
|
| toast_manager_.reset(new ToastManager);
|
|
|
| // Create the app list item in the shelf data model.
|
| - AppListShelfItemDelegate::CreateAppListItemAndDelegate(shelf_model_.get());
|
| + AppListShelfItemDelegate::CreateAppListItemAndDelegate(shelf_model());
|
|
|
| // Install the custom factory early on so that views::FocusManagers for Tray,
|
| // Shelf, and WallPaper could be created by the factory.
|
| @@ -96,7 +97,7 @@ void WmShell::Shutdown() {
|
| shelf_window_watcher_.reset();
|
| // ShelfItemDelegate subclasses it owns have complex cleanup to run (e.g. ARC
|
| // shelf items in Chrome) so explicitly shutdown early.
|
| - shelf_model_->DestroyItemDelegates();
|
| + shelf_model()->DestroyItemDelegates();
|
| // Must be destroyed before FocusClient.
|
| shelf_delegate_.reset();
|
|
|
| @@ -104,6 +105,10 @@ void WmShell::Shutdown() {
|
| views::FocusManagerFactory::Install(nullptr);
|
| }
|
|
|
| +ShelfModel* WmShell::shelf_model() {
|
| + return shelf_controller_->model();
|
| +}
|
| +
|
| void WmShell::ShowContextMenu(const gfx::Point& location_in_screen,
|
| ui::MenuSourceType source_type) {
|
| // Bail if there is no active user session or if the screen is locked.
|
| @@ -141,8 +146,8 @@ void WmShell::CreateShelfDelegate() {
|
| // about multi-profile login state.
|
| DCHECK(GetSessionStateDelegate());
|
| DCHECK_GT(GetSessionStateDelegate()->NumberOfLoggedInUsers(), 0);
|
| - shelf_delegate_.reset(delegate_->CreateShelfDelegate(shelf_model_.get()));
|
| - shelf_window_watcher_.reset(new ShelfWindowWatcher(shelf_model_.get()));
|
| + shelf_delegate_.reset(delegate_->CreateShelfDelegate(shelf_model()));
|
| + shelf_window_watcher_.reset(new ShelfWindowWatcher(shelf_model()));
|
| }
|
|
|
| void WmShell::OnMaximizeModeStarted() {
|
| @@ -224,15 +229,16 @@ void WmShell::SetPaletteDelegateForTesting(
|
|
|
| WmShell::WmShell(std::unique_ptr<ShellDelegate> shell_delegate)
|
| : delegate_(std::move(shell_delegate)),
|
| - focus_cycler_(new FocusCycler),
|
| + focus_cycler_(base::MakeUnique<FocusCycler>()),
|
| immersive_context_(base::MakeUnique<ImmersiveContextAsh>()),
|
| - shelf_model_(new ShelfModel), // Must create before ShelfDelegate.
|
| - system_tray_controller_(
|
| - new SystemTrayController(delegate_->GetShellConnector())),
|
| - system_tray_notifier_(new SystemTrayNotifier),
|
| + shelf_controller_(base::MakeUnique<ShelfController>()),
|
| + system_tray_controller_(base::MakeUnique<SystemTrayController>(
|
| + delegate_->GetShellConnector())),
|
| + system_tray_notifier_(base::MakeUnique<SystemTrayNotifier>()),
|
| wallpaper_delegate_(delegate_->CreateWallpaperDelegate()),
|
| - window_cycle_controller_(new WindowCycleController),
|
| - window_selector_controller_(new WindowSelectorController) {
|
| + window_cycle_controller_(base::MakeUnique<WindowCycleController>()),
|
| + window_selector_controller_(
|
| + base::MakeUnique<WindowSelectorController>()) {
|
| #if defined(OS_CHROMEOS)
|
| brightness_control_delegate_.reset(new system::BrightnessControllerChromeos);
|
| keyboard_brightness_control_delegate_.reset(new KeyboardBrightnessController);
|
|
|