mash: Create and show a shelf in mash.
Allow mash to use the shelf, widget, and layout manager.
Delay moving files to ease oshima's concurrent Shelf CL.
Consolidate WmShelf[Aura|Mus] functionality on WmShelf.
WmShelfMus ctor inits Shelf, ShelfView, ShelfWidget, etc.
Use a ShelfDelegateStub for now; add TODO for real impl.
WmShelfAura still uses root event handlers; shelf dimmer.
Nix ShelfIconObserver interface; use WmShelfObserver.
Nix redundant mash RootWindowController::CreateStatusArea.
Change ShelfWidget's WmShelfAura* member to WmShelf*.
Call WmShell::ShutDown before destruction in WindowManager.
Teardown PointerWatcherEventRouter after window destruction.
BUG=557406,612631,615155,621112
TEST=Automated; no cros changes; chrome --mash has a shelf.
[email protected],[email protected]
Review-Url: https://codereview.chromium.org/2247503002
Cr-Commit-Position: refs/heads/master@{#412630}
diff --git a/ash/root_window_controller.cc b/ash/root_window_controller.cc
index 743160f..1ce3d77 100644
--- a/ash/root_window_controller.cc
+++ b/ash/root_window_controller.cc
@@ -575,8 +575,6 @@
if (shelf_widget_)
shelf_widget_->Shutdown();
- wm_shelf_aura_->Shutdown();
-
// Close background widget first as it depends on tooltip.
wallpaper_controller_.reset();
animating_wallpaper_controller_.reset();
@@ -616,6 +614,10 @@
}
shelf_widget_.reset();
+ // CloseChildWindows may be called twice during the shutdown of ash unittests.
+ // Avoid notifying WmShelf that the Shelf instance has been destroyed twice.
+ if (wm_shelf_aura_->shelf())
+ wm_shelf_aura_->ClearShelf();
shelf_.reset();
}