This is a bit tricky as the app list should not hide when the taskbar gets focus. Handling this involves using a timer, when the app list does not have focus, to check whether either the taskbar or the app list has focus. Once one of these is not true the app list is closed.
This change also ensures that the app list is never opened multiple times.
Also includes is a bit of cleanup:
- AppListController has been renamed to AppListControllerDelegate
- a singleton AppListController has been introduced for Windows, similar to ash
- default implementations have been added to AppListControllerDelegate where it makes sense.
BUG=152847, 152846
Review URL: https://chromiumcodereview.appspot.com/11094019
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@161474 0039d316-1c4b-4281-b951-d872f2087c98