Refactor views app list services to allow more code sharing
commit51b195f89df9949639c88b57d8a1642788a31540
authortapted@chromium.org <tapted@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Sat, 3 May 2014 03:55:19 +0000 (3 03:55 +0000)
committertapted@chromium.org <tapted@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Sat, 3 May 2014 03:55:19 +0000 (3 03:55 +0000)
tree15672b967158bcd73cad20d6a652bfc06056430a
parenta43849ba735dd08f53eead610ade7083e7fc79e4
Refactor views app list services to allow more code sharing

To run the toolkit-views app launcher on Mac, it needs a new app list
service + supporting classes. It's going to look a lot like the Linux
one. This CL starts by sharing what can be shared between Windows and
Linux, in preparation for using it on Mac as well.

It does this principally by:
- Moving `app_list_shower` to `app_list_shower_views`, making it views-specific;
- Adding AppListServiceViews, which Win/Linux (and soon Mac) inherit from;
- Rearranging the delegation to eliminate some boilerplate.

Other changes:
- Removed AppList container abstract interface (now just access AppListView);
- Removed AppListFactory (now AppListShower::MakeViewForCurrentProfile());
- Moved AppListControllerDelegateLinux to AppListControllerDelegateViews;
- Most of AppListServiceLinux moves to AppListServiceViews;
- Added AppListShowerDelegate and AppListShower given virtual method
hooks to assist testability (previously AppListShower was given a NULL
service/delegate in tests);
- Positioning logic in AppListWin/AppListLinux made static/stateless;
- Removes the `on_should_dismiss_` closure (now just dismiss via the service;
- Big trim of AppListServiceWin and AppListServiceLinux - now these are
just platform-specific stuff.

BUG=365977
TEST=Just refactoring, nothing should change

Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=267184

Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=267354

Review URL: https://codereview.chromium.org/225053004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@268035 0039d316-1c4b-4281-b951-d872f2087c98
29 files changed:
build/filename_rules.gypi
chrome/browser/ui/app_list/app_list.h [deleted file]
chrome/browser/ui/app_list/app_list_controller_delegate_views.cc [new file with mode: 0644]
chrome/browser/ui/app_list/app_list_controller_delegate_views.h [new file with mode: 0644]
chrome/browser/ui/app_list/app_list_factory.h [deleted file]
chrome/browser/ui/app_list/app_list_service_views.cc [new file with mode: 0644]
chrome/browser/ui/app_list/app_list_service_views.h [new file with mode: 0644]
chrome/browser/ui/app_list/app_list_shower.h [deleted file]
chrome/browser/ui/app_list/app_list_shower_delegate.h [new file with mode: 0644]
chrome/browser/ui/app_list/app_list_shower_views.cc [moved from chrome/browser/ui/app_list/app_list_shower.cc with 53% similarity]
chrome/browser/ui/app_list/app_list_shower_views.h [new file with mode: 0644]
chrome/browser/ui/app_list/app_list_shower_views_unittest.cc [moved from chrome/browser/ui/app_list/test/app_list_shower_unittest.cc with 58% similarity]
chrome/browser/ui/views/app_list/linux/app_list_controller_delegate_linux.cc [deleted file]
chrome/browser/ui/views/app_list/linux/app_list_controller_delegate_linux.h [deleted file]
chrome/browser/ui/views/app_list/linux/app_list_linux.cc
chrome/browser/ui/views/app_list/linux/app_list_linux.h
chrome/browser/ui/views/app_list/linux/app_list_linux_unittest.cc
chrome/browser/ui/views/app_list/linux/app_list_service_linux.cc
chrome/browser/ui/views/app_list/linux/app_list_service_linux.h
chrome/browser/ui/views/app_list/win/activation_tracker_win.cc
chrome/browser/ui/views/app_list/win/activation_tracker_win.h
chrome/browser/ui/views/app_list/win/app_list_controller_delegate_win.cc
chrome/browser/ui/views/app_list/win/app_list_controller_delegate_win.h
chrome/browser/ui/views/app_list/win/app_list_service_win.cc
chrome/browser/ui/views/app_list/win/app_list_service_win.h
chrome/browser/ui/views/app_list/win/app_list_win.cc
chrome/browser/ui/views/app_list/win/app_list_win.h
chrome/chrome_browser_ui.gypi
chrome/chrome_tests_unit.gypi