OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_BACKGROUND_BACKGROUND_MODE_MANAGER_H_ | 5 #ifndef CHROME_BROWSER_BACKGROUND_BACKGROUND_MODE_MANAGER_H_ |
6 #define CHROME_BROWSER_BACKGROUND_BACKGROUND_MODE_MANAGER_H_ | 6 #define CHROME_BROWSER_BACKGROUND_BACKGROUND_MODE_MANAGER_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 | 9 |
10 #include "base/gtest_prod_util.h" | 10 #include "base/gtest_prod_util.h" |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
49 // background. | 49 // background. |
50 class BackgroundModeManager | 50 class BackgroundModeManager |
51 : public content::NotificationObserver, | 51 : public content::NotificationObserver, |
52 public chrome::BrowserListObserver, | 52 public chrome::BrowserListObserver, |
53 public BackgroundApplicationListModel::Observer, | 53 public BackgroundApplicationListModel::Observer, |
54 public ProfileInfoCacheObserver, | 54 public ProfileInfoCacheObserver, |
55 public StatusIconMenuModel::Delegate { | 55 public StatusIconMenuModel::Delegate { |
56 public: | 56 public: |
57 BackgroundModeManager(base::CommandLine* command_line, | 57 BackgroundModeManager(base::CommandLine* command_line, |
58 ProfileInfoCache* profile_cache); | 58 ProfileInfoCache* profile_cache); |
59 virtual ~BackgroundModeManager(); | 59 ~BackgroundModeManager() override; |
60 | 60 |
61 static void RegisterPrefs(PrefRegistrySimple* registry); | 61 static void RegisterPrefs(PrefRegistrySimple* registry); |
62 | 62 |
63 virtual void RegisterProfile(Profile* profile); | 63 virtual void RegisterProfile(Profile* profile); |
64 | 64 |
65 static void LaunchBackgroundApplication(Profile* profile, | 65 static void LaunchBackgroundApplication(Profile* profile, |
66 const extensions::Extension* extension); | 66 const extensions::Extension* extension); |
67 | 67 |
68 // Returns true if background mode is active. | 68 // Returns true if background mode is active. |
69 virtual bool IsBackgroundModeActive(); | 69 virtual bool IsBackgroundModeActive(); |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
112 FRIEND_TEST_ALL_PREFIXES(BackgroundModeManagerWithExtensionsTest, | 112 FRIEND_TEST_ALL_PREFIXES(BackgroundModeManagerWithExtensionsTest, |
113 BalloonDisplay); | 113 BalloonDisplay); |
114 FRIEND_TEST_ALL_PREFIXES(BackgroundAppBrowserTest, | 114 FRIEND_TEST_ALL_PREFIXES(BackgroundAppBrowserTest, |
115 ReloadBackgroundApp); | 115 ReloadBackgroundApp); |
116 | 116 |
117 class BackgroundModeData : public StatusIconMenuModel::Delegate { | 117 class BackgroundModeData : public StatusIconMenuModel::Delegate { |
118 public: | 118 public: |
119 explicit BackgroundModeData( | 119 explicit BackgroundModeData( |
120 Profile* profile, | 120 Profile* profile, |
121 CommandIdExtensionVector* command_id_extension_vector); | 121 CommandIdExtensionVector* command_id_extension_vector); |
122 virtual ~BackgroundModeData(); | 122 ~BackgroundModeData() override; |
123 | 123 |
124 // The cached list of BackgroundApplications. | 124 // The cached list of BackgroundApplications. |
125 scoped_ptr<BackgroundApplicationListModel> applications_; | 125 scoped_ptr<BackgroundApplicationListModel> applications_; |
126 | 126 |
127 // Overrides from StatusIconMenuModel::Delegate implementation. | 127 // Overrides from StatusIconMenuModel::Delegate implementation. |
128 virtual void ExecuteCommand(int command_id, int event_flags) override; | 128 void ExecuteCommand(int command_id, int event_flags) override; |
129 | 129 |
130 // Returns a browser window, or creates one if none are open. Used by | 130 // Returns a browser window, or creates one if none are open. Used by |
131 // operations (like displaying the preferences dialog) that require a | 131 // operations (like displaying the preferences dialog) that require a |
132 // Browser window. | 132 // Browser window. |
133 Browser* GetBrowserWindow(); | 133 Browser* GetBrowserWindow(); |
134 | 134 |
135 // Returns the number of background apps for this profile. | 135 // Returns the number of background apps for this profile. |
136 int GetBackgroundAppCount() const; | 136 int GetBackgroundAppCount() const; |
137 | 137 |
138 // Builds the profile specific parts of the menu. The menu passed in may | 138 // Builds the profile specific parts of the menu. The menu passed in may |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 // Similarly, we can't just have a map of BackgroundModeData objects, | 184 // Similarly, we can't just have a map of BackgroundModeData objects, |
185 // since BackgroundModeData contains a scoped_ptr which once again | 185 // since BackgroundModeData contains a scoped_ptr which once again |
186 // can't be copied. So rather than using BackgroundModeData* which | 186 // can't be copied. So rather than using BackgroundModeData* which |
187 // we'd have to remember to delete, we use the ref-counted linked_ptr | 187 // we'd have to remember to delete, we use the ref-counted linked_ptr |
188 // which is similar to a shared_ptr. | 188 // which is similar to a shared_ptr. |
189 typedef linked_ptr<BackgroundModeData> BackgroundModeInfo; | 189 typedef linked_ptr<BackgroundModeData> BackgroundModeInfo; |
190 | 190 |
191 typedef std::map<Profile*, BackgroundModeInfo> BackgroundModeInfoMap; | 191 typedef std::map<Profile*, BackgroundModeInfo> BackgroundModeInfoMap; |
192 | 192 |
193 // content::NotificationObserver implementation. | 193 // content::NotificationObserver implementation. |
194 virtual void Observe(int type, | 194 void Observe(int type, |
195 const content::NotificationSource& source, | 195 const content::NotificationSource& source, |
196 const content::NotificationDetails& details) override; | 196 const content::NotificationDetails& details) override; |
197 | 197 |
198 // Called when the kBackgroundModeEnabled preference changes. | 198 // Called when the kBackgroundModeEnabled preference changes. |
199 void OnBackgroundModeEnabledPrefChanged(); | 199 void OnBackgroundModeEnabledPrefChanged(); |
200 | 200 |
201 // BackgroundApplicationListModel::Observer implementation. | 201 // BackgroundApplicationListModel::Observer implementation. |
202 virtual void OnApplicationDataChanged(const extensions::Extension* extension, | 202 void OnApplicationDataChanged(const extensions::Extension* extension, |
203 Profile* profile) override; | 203 Profile* profile) override; |
204 virtual void OnApplicationListChanged(Profile* profile) override; | 204 void OnApplicationListChanged(Profile* profile) override; |
205 | 205 |
206 // Overrides from ProfileInfoCacheObserver | 206 // Overrides from ProfileInfoCacheObserver |
207 virtual void OnProfileAdded(const base::FilePath& profile_path) override; | 207 void OnProfileAdded(const base::FilePath& profile_path) override; |
208 virtual void OnProfileWillBeRemoved( | 208 void OnProfileWillBeRemoved(const base::FilePath& profile_path) override; |
209 const base::FilePath& profile_path) override; | 209 void OnProfileNameChanged(const base::FilePath& profile_path, |
210 virtual void OnProfileNameChanged( | 210 const base::string16& old_profile_name) override; |
211 const base::FilePath& profile_path, | |
212 const base::string16& old_profile_name) override; | |
213 | 211 |
214 // Overrides from StatusIconMenuModel::Delegate implementation. | 212 // Overrides from StatusIconMenuModel::Delegate implementation. |
215 virtual void ExecuteCommand(int command_id, int event_flags) override; | 213 void ExecuteCommand(int command_id, int event_flags) override; |
216 | 214 |
217 // chrome::BrowserListObserver implementation. | 215 // chrome::BrowserListObserver implementation. |
218 virtual void OnBrowserAdded(Browser* browser) override; | 216 void OnBrowserAdded(Browser* browser) override; |
219 | 217 |
220 // Invoked when an extension is installed so we can ensure that | 218 // Invoked when an extension is installed so we can ensure that |
221 // launch-on-startup is enabled if appropriate. |extension| can be NULL when | 219 // launch-on-startup is enabled if appropriate. |extension| can be NULL when |
222 // called from unit tests. | 220 // called from unit tests. |
223 void OnBackgroundAppInstalled( | 221 void OnBackgroundAppInstalled( |
224 const extensions::Extension* extension); | 222 const extensions::Extension* extension); |
225 | 223 |
226 // Walk the list of profiles and see if an extension or app is being | 224 // Walk the list of profiles and see if an extension or app is being |
227 // currently upgraded or reloaded by any profile. If so, update the | 225 // currently upgraded or reloaded by any profile. If so, update the |
228 // output variables appropriately. | 226 // output variables appropriately. |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
357 // Set to true when background mode is suspended. | 355 // Set to true when background mode is suspended. |
358 bool background_mode_suspended_; | 356 bool background_mode_suspended_; |
359 | 357 |
360 // Set to true when background mode is keeping Chrome alive. | 358 // Set to true when background mode is keeping Chrome alive. |
361 bool keeping_alive_; | 359 bool keeping_alive_; |
362 | 360 |
363 DISALLOW_COPY_AND_ASSIGN(BackgroundModeManager); | 361 DISALLOW_COPY_AND_ASSIGN(BackgroundModeManager); |
364 }; | 362 }; |
365 | 363 |
366 #endif // CHROME_BROWSER_BACKGROUND_BACKGROUND_MODE_MANAGER_H_ | 364 #endif // CHROME_BROWSER_BACKGROUND_BACKGROUND_MODE_MANAGER_H_ |
OLD | NEW |