Added views::ViewModelT<T>, a type-safe template version of ViewModel.
A common use of views::ViewModel is to call view_at() then static_cast
down to the correct type, which is unsafe. ViewModel clients are now
encouraged to use ViewModelT<T> for compile-time type-checked access to
the views inside. ViewModel still exists for clients that don't care
about the view type, or with more complex downcasting logic.
Updated clients, where possible, to use ViewModelT:
TabStrip: ViewModelT<Tab>
AppsGridView: ViewModelT<AppListItemView>, ViewModelT<PulsingBlockView>.
BUG=
418461
Committed:
https://crrev.com/eee145893892eb15a42409c3d2e525b9f1e837e2
Cr-Commit-Position: refs/heads/master@{#297979}