OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_BROWSER_UI_ASH_LAUNCHER_CHROME_LAUNCHER_CONTROLLER_IMPL_H_ | 5 #ifndef CHROME_BROWSER_UI_ASH_LAUNCHER_CHROME_LAUNCHER_CONTROLLER_IMPL_H_ |
6 #define CHROME_BROWSER_UI_ASH_LAUNCHER_CHROME_LAUNCHER_CONTROLLER_IMPL_H_ | 6 #define CHROME_BROWSER_UI_ASH_LAUNCHER_CHROME_LAUNCHER_CONTROLLER_IMPL_H_ |
7 | 7 |
8 #include <list> | 8 #include <list> |
9 #include <memory> | 9 #include <memory> |
10 | 10 |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 ChromeLauncherControllerImpl(Profile* profile, ash::ShelfModel* model); | 60 ChromeLauncherControllerImpl(Profile* profile, ash::ShelfModel* model); |
61 ~ChromeLauncherControllerImpl() override; | 61 ~ChromeLauncherControllerImpl() override; |
62 | 62 |
63 // ChromeLauncherController: | 63 // ChromeLauncherController: |
64 ash::ShelfID CreateAppLauncherItem( | 64 ash::ShelfID CreateAppLauncherItem( |
65 std::unique_ptr<ash::ShelfItemDelegate> item_delegate, | 65 std::unique_ptr<ash::ShelfItemDelegate> item_delegate, |
66 ash::ShelfItemStatus status) override; | 66 ash::ShelfItemStatus status) override; |
67 const ash::ShelfItem* GetItem(ash::ShelfID id) const override; | 67 const ash::ShelfItem* GetItem(ash::ShelfID id) const override; |
68 void SetItemType(ash::ShelfID id, ash::ShelfItemType type) override; | 68 void SetItemType(ash::ShelfID id, ash::ShelfItemType type) override; |
69 void SetItemStatus(ash::ShelfID id, ash::ShelfItemStatus status) override; | 69 void SetItemStatus(ash::ShelfID id, ash::ShelfItemStatus status) override; |
70 void SetShelfItemDelegate( | |
71 ash::ShelfID id, | |
72 std::unique_ptr<ash::ShelfItemDelegate> item_delegate) override; | |
73 void CloseLauncherItem(ash::ShelfID id) override; | 70 void CloseLauncherItem(ash::ShelfID id) override; |
74 bool IsPinned(ash::ShelfID id) override; | 71 bool IsPinned(ash::ShelfID id) override; |
75 void SetV1AppStatus(const std::string& app_id, | 72 void SetV1AppStatus(const std::string& app_id, |
76 ash::ShelfItemStatus status) override; | 73 ash::ShelfItemStatus status) override; |
77 void Launch(ash::ShelfID id, int event_flags) override; | 74 void Launch(ash::ShelfID id, int event_flags) override; |
78 void Close(ash::ShelfID id) override; | 75 void Close(ash::ShelfID id) override; |
79 bool IsOpen(ash::ShelfID id) override; | 76 bool IsOpen(ash::ShelfID id) override; |
80 bool IsPlatformApp(ash::ShelfID id) override; | 77 bool IsPlatformApp(ash::ShelfID id) override; |
81 void ActivateApp(const std::string& app_id, | 78 void ActivateApp(const std::string& app_id, |
82 ash::ShelfLaunchSource source, | 79 ash::ShelfLaunchSource source, |
(...skipping 17 matching lines...) Expand all Loading... |
100 void ActivateShellApp(const std::string& app_id, int window_index) override; | 97 void ActivateShellApp(const std::string& app_id, int window_index) override; |
101 bool IsWebContentHandledByApplication(content::WebContents* web_contents, | 98 bool IsWebContentHandledByApplication(content::WebContents* web_contents, |
102 const std::string& app_id) override; | 99 const std::string& app_id) override; |
103 bool ContentCanBeHandledByGmailApp( | 100 bool ContentCanBeHandledByGmailApp( |
104 content::WebContents* web_contents) override; | 101 content::WebContents* web_contents) override; |
105 gfx::Image GetAppListIcon(content::WebContents* web_contents) const override; | 102 gfx::Image GetAppListIcon(content::WebContents* web_contents) const override; |
106 base::string16 GetAppListTitle( | 103 base::string16 GetAppListTitle( |
107 content::WebContents* web_contents) const override; | 104 content::WebContents* web_contents) const override; |
108 BrowserShortcutLauncherItemController* | 105 BrowserShortcutLauncherItemController* |
109 GetBrowserShortcutLauncherItemController() override; | 106 GetBrowserShortcutLauncherItemController() override; |
110 ash::ShelfItemDelegate* GetShelfItemDelegate(const ash::ShelfID id) override; | |
111 bool ShelfBoundsChangesProbablyWithUser( | 107 bool ShelfBoundsChangesProbablyWithUser( |
112 ash::WmShelf* shelf, | 108 ash::WmShelf* shelf, |
113 const AccountId& account_id) const override; | 109 const AccountId& account_id) const override; |
114 void OnUserProfileReadyToSwitch(Profile* profile) override; | 110 void OnUserProfileReadyToSwitch(Profile* profile) override; |
115 ArcAppDeferredLauncherController* GetArcDeferredLauncher() override; | 111 ArcAppDeferredLauncherController* GetArcDeferredLauncher() override; |
116 const std::string& GetLaunchIDForShelfID(ash::ShelfID id) override; | 112 const std::string& GetLaunchIDForShelfID(ash::ShelfID id) override; |
117 void AttachProfile(Profile* profile_to_attach) override; | 113 void AttachProfile(Profile* profile_to_attach) override; |
118 | 114 |
119 // Access to the BrowserStatusMonitor for tests. | 115 // Access to the BrowserStatusMonitor for tests. |
120 BrowserStatusMonitor* browser_status_monitor_for_test() { | 116 BrowserStatusMonitor* browser_status_monitor_for_test() { |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
154 const ash::AppLaunchId& app_launch_id, | 150 const ash::AppLaunchId& app_launch_id, |
155 int index); | 151 int index); |
156 | 152 |
157 private: | 153 private: |
158 friend class ChromeLauncherControllerImplTest; | 154 friend class ChromeLauncherControllerImplTest; |
159 friend class ShelfAppBrowserTest; | 155 friend class ShelfAppBrowserTest; |
160 friend class LauncherPlatformAppBrowserTest; | 156 friend class LauncherPlatformAppBrowserTest; |
161 friend class TestChromeLauncherControllerImpl; | 157 friend class TestChromeLauncherControllerImpl; |
162 FRIEND_TEST_ALL_PREFIXES(ChromeLauncherControllerImplTest, AppPanels); | 158 FRIEND_TEST_ALL_PREFIXES(ChromeLauncherControllerImplTest, AppPanels); |
163 | 159 |
164 typedef std::map<ash::ShelfID, ash::ShelfItemDelegate*> IDToItemControllerMap; | |
165 typedef std::map<content::WebContents*, std::string> WebContentsToAppIDMap; | 160 typedef std::map<content::WebContents*, std::string> WebContentsToAppIDMap; |
166 | 161 |
167 // Remembers / restores list of running applications. | 162 // Remembers / restores list of running applications. |
168 // Note that this order will neither be stored in the preference nor will it | 163 // Note that this order will neither be stored in the preference nor will it |
169 // remember the order of closed applications since it is only temporary. | 164 // remember the order of closed applications since it is only temporary. |
170 void RememberUnpinnedRunningApplicationOrder(); | 165 void RememberUnpinnedRunningApplicationOrder(); |
171 void RestoreUnpinnedRunningApplicationOrder(const std::string& user_id); | 166 void RestoreUnpinnedRunningApplicationOrder(const std::string& user_id); |
172 | 167 |
173 // Invoked when the associated browser or app is closed. | 168 // Invoked when the associated browser or app is closed. |
174 void LauncherItemClosed(ash::ShelfID id); | 169 void RemoveShelfItem(ash::ShelfID id); |
175 | 170 |
176 // Internal helpers for pinning and unpinning that handle both | 171 // Internal helpers for pinning and unpinning that handle both |
177 // client-triggered and internal pinning operations. | 172 // client-triggered and internal pinning operations. |
178 void DoPinAppWithID(const std::string& app_id); | 173 void DoPinAppWithID(const std::string& app_id); |
179 void DoUnpinAppWithID(const std::string& app_id, bool update_prefs); | 174 void DoUnpinAppWithID(const std::string& app_id, bool update_prefs); |
180 | 175 |
181 // Pin a running app with |shelf_id| internally to |index|. | 176 // Pin a running app with |shelf_id| internally to |index|. |
182 void PinRunningAppInternal(int index, ash::ShelfID shelf_id); | 177 void PinRunningAppInternal(int index, ash::ShelfID shelf_id); |
183 | 178 |
184 // Unpin a locked application. This is an internal call which converts the | 179 // Unpin a locked application. This is an internal call which converts the |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
230 const Profile* profile); | 225 const Profile* profile); |
231 | 226 |
232 // Forget the current profile to allow attaching to a new one. | 227 // Forget the current profile to allow attaching to a new one. |
233 void ReleaseProfile(); | 228 void ReleaseProfile(); |
234 | 229 |
235 // ash::ShelfModelObserver: | 230 // ash::ShelfModelObserver: |
236 void ShelfItemAdded(int index) override; | 231 void ShelfItemAdded(int index) override; |
237 void ShelfItemRemoved(int index, const ash::ShelfItem& old_item) override; | 232 void ShelfItemRemoved(int index, const ash::ShelfItem& old_item) override; |
238 void ShelfItemMoved(int start_index, int target_index) override; | 233 void ShelfItemMoved(int start_index, int target_index) override; |
239 void ShelfItemChanged(int index, const ash::ShelfItem& old_item) override; | 234 void ShelfItemChanged(int index, const ash::ShelfItem& old_item) override; |
240 void OnSetShelfItemDelegate(ash::ShelfID id, | |
241 ash::ShelfItemDelegate* item_delegate) override; | |
242 | 235 |
243 // ash::WindowTreeHostManager::Observer: | 236 // ash::WindowTreeHostManager::Observer: |
244 void OnDisplayConfigurationChanged() override; | 237 void OnDisplayConfigurationChanged() override; |
245 | 238 |
246 // AppSyncUIStateObserver: | 239 // AppSyncUIStateObserver: |
247 void OnAppSyncUIStatusChanged() override; | 240 void OnAppSyncUIStatusChanged() override; |
248 | 241 |
249 // AppIconLoaderDelegate: | 242 // AppIconLoaderDelegate: |
250 void OnAppImageUpdated(const std::string& app_id, | 243 void OnAppImageUpdated(const std::string& app_id, |
251 const gfx::ImageSkia& image) override; | 244 const gfx::ImageSkia& image) override; |
252 | 245 |
253 // app_list::AppListSyncableService::Observer: | 246 // app_list::AppListSyncableService::Observer: |
254 void OnSyncModelUpdated() override; | 247 void OnSyncModelUpdated() override; |
255 | 248 |
256 // sync_preferences::PrefServiceSyncableObserver: | 249 // sync_preferences::PrefServiceSyncableObserver: |
257 void OnIsSyncingChanged() override; | 250 void OnIsSyncingChanged() override; |
258 | 251 |
259 // An internal helper to unpin a shelf item; this does not update prefs. | 252 // An internal helper to unpin a shelf item; this does not update prefs. |
260 void UnpinShelfItemInternal(ash::ShelfID id); | 253 void UnpinShelfItemInternal(ash::ShelfID id); |
261 | 254 |
262 ash::ShelfModel* model_; | 255 ash::ShelfModel* model_; |
263 | 256 |
264 // Controller items in this map are owned by |ShelfModel|. | |
265 IDToItemControllerMap id_to_item_controller_map_; | |
266 | |
267 // Direct access to app_id for a web contents. | 257 // Direct access to app_id for a web contents. |
268 WebContentsToAppIDMap web_contents_to_app_id_; | 258 WebContentsToAppIDMap web_contents_to_app_id_; |
269 | 259 |
270 // Used to track app windows. | 260 // Used to track app windows. |
271 std::vector<std::unique_ptr<AppWindowLauncherController>> | 261 std::vector<std::unique_ptr<AppWindowLauncherController>> |
272 app_window_controllers_; | 262 app_window_controllers_; |
273 | 263 |
274 // Used to handle app load/unload events. | 264 // Used to handle app load/unload events. |
275 std::vector<std::unique_ptr<LauncherAppUpdater>> app_updaters_; | 265 std::vector<std::unique_ptr<LauncherAppUpdater>> app_updaters_; |
276 | 266 |
(...skipping 17 matching lines...) Expand all Loading... |
294 typedef std::vector<std::string> RunningAppListIds; | 284 typedef std::vector<std::string> RunningAppListIds; |
295 typedef std::map<std::string, RunningAppListIds> RunningAppListIdMap; | 285 typedef std::map<std::string, RunningAppListIds> RunningAppListIdMap; |
296 RunningAppListIdMap last_used_running_application_order_; | 286 RunningAppListIdMap last_used_running_application_order_; |
297 | 287 |
298 base::WeakPtrFactory<ChromeLauncherControllerImpl> weak_ptr_factory_; | 288 base::WeakPtrFactory<ChromeLauncherControllerImpl> weak_ptr_factory_; |
299 | 289 |
300 DISALLOW_COPY_AND_ASSIGN(ChromeLauncherControllerImpl); | 290 DISALLOW_COPY_AND_ASSIGN(ChromeLauncherControllerImpl); |
301 }; | 291 }; |
302 | 292 |
303 #endif // CHROME_BROWSER_UI_ASH_LAUNCHER_CHROME_LAUNCHER_CONTROLLER_IMPL_H_ | 293 #endif // CHROME_BROWSER_UI_ASH_LAUNCHER_CHROME_LAUNCHER_CONTROLLER_IMPL_H_ |
OLD | NEW |