Skip to content
  • msw's avatar
    mash: Remove ShelfDelegate; move functions to ShelfModel. · 5138f3dd
    msw authored
    Remove ShelfDelegate, subclasses, accessors, etc.
    Move ShelfDelegate responsibilities to ash::ShelfModel, add tests.
    
    Move ChromeLauncherControllerImpl ownership to ChromeShellDelegate.
    Add lifetime management functions: ShelfInit() and ShelfShutdown().
    Apply similar ownership changes in tests; expose an AshTestHelper.
    
    Remove ShelfDelegate responsibilities from ChromeLauncherController:
    * Apply chrome-specific item info/delegates in ShelfItemAdded.
      - Support ShelfModel::SetItem calls amid ShelfItemAdded in ShelfView.
      - Register some item delegates early to avoid a default one.
    * Cleanup chrome-side item info in ShelfItemRemoved.
    
    TODO: Make ChromeLauncherControllerImpl lifetime more flexible.
    TODO: Move functions to (or add accessors on) ash::[mojom::]ShelfController.
    
    BUG=557406,698887
    TEST=No Chrome OS shelf behavior changes.
    R=jamescook@chromium.org,sky@chromium.org
    
    Review-Url: https://codereview.chromium.org/2791463002
    Cr-Commit-Position: refs/heads/master@{#465821}
    5138f3dd