Descriptionmash: Support ShelfModel access in Chrome.
Sync ShelfModels between ShelfController and ChromeLauncherController.
(allows synchronous access to ShelfModel/ShelfItem in Ash and Chrome)
This brings us much closer to a functional Shelf in Mash.
Implements step (2Bd) of my Mash Shelf Model and Control plan:
docs.google.com/document/d/1wD0W2VKAEyeslXxc4L-QpOxZlIyaSZ74oSMndmrF120
Extend ShelfController interface to support ShelfModel modifications.
Extend ShelfObserver interface to report ShelfModel modifications.
Add/restore old ash::ShelfModelObserver::ShelfItemDelegateChanged.
Make mojom::ShelfItem::image optional (for tests and async load).
Make ShelfController and ChromeLauncherController observe and sync.
Avoid cyclically reporting remote changes with a flag.
Add RemoteShelfItemDelegate; to delegate between Ash and Chrome.
(allows ShelfModel to own/use ash::ShelfItemDelegate instances)
Add a binding and helper function on ash::ShelfItemDelegate.
Remove Mash's workaround code in ShelfWindowWatcher.
Remove unused/deprecated ash::mojom::ShelfController functions.
Add AppList item in model ctor and its delegate in controller ctor.
(avoids item ordering problems on init, Ash owns item delegate)
Add missing type mapping for ash::ShelfID and ash.mojom.ShelfID.
Add a stream output operator for ShelfID testing/logging.
Change chromeos::GetAshConfig to support --mash and --mus flags.
(This allows unit_tests to run in simulated mus/mash configs).
Add and update shelf controller, model, and CLC tests.
Replace a CLC panel test with ShelfWindowWatcherTest.ItemIcon.
TODO: Fix context menus, AppList's PinToShelf, etc.
TODO: Ensure that windows like QuickLaunch get shelf items.
BUG=557406
TEST=No Chrome OS changes; mash shelf shows pinned items, etc.
R=jamescook@chromium.org,sky@chromium.org,tsepez@chromium.org,
Review-Url: https://codereview.chromium.org/2833173002
Cr-Commit-Position: refs/heads/master@{#476166}
Committed: https://chromium.googlesource.com/chromium/src/+/19b30c2c383d894f472343c308f1e2f71b98a790
Patch Set 1 #Patch Set 2 : Icons show! #Patch Set 3 : Add and begin supporting RemoteShelfItemDelegate. #Patch Set 4 : Refine behavior add Chrome-side unit_test. #Patch Set 5 : Add a browser test and ShelfController unit tests. #Patch Set 6 : Sync and rebase. #Patch Set 7 : Cleanup; Fix an Arc test by use CLC, not Ash's ShelfModel. #
Total comments: 2
Patch Set 8 : Pursuing Scott's suggestions. #Patch Set 9 : Relax ShelfController params. TODO: Fix pin order. #Patch Set 10 : Sync and rebase. #Patch Set 11 : Refine init pattern; add AppList item in ShelfModel ctor. #
Total comments: 28
Patch Set 12 : Address comments. #Patch Set 13 : Sync and rebase. #
Total comments: 6
Patch Set 14 : Address comments; fix test failures. #
Total comments: 2
Messages
Total messages: 69 (53 generated)
|