Chromium Code Reviews| Index: chrome/browser/background/background_mode_manager.h |
| =================================================================== |
| --- chrome/browser/background/background_mode_manager.h (revision 111700) |
| +++ chrome/browser/background/background_mode_manager.h (working copy) |
| @@ -11,6 +11,7 @@ |
| #include "base/gtest_prod_util.h" |
| #include "chrome/browser/background/background_application_list_model.h" |
| #include "chrome/browser/prefs/pref_change_registrar.h" |
| +#include "chrome/browser/profiles/profile_info_cache_observer.h" |
| #include "chrome/browser/profiles/profile_keyed_service.h" |
| #include "chrome/browser/status_icons/status_icon.h" |
| #include "content/public/browser/notification_observer.h" |
| @@ -43,6 +44,7 @@ |
| class BackgroundModeManager |
| : public content::NotificationObserver, |
| public BackgroundApplicationListModel::Observer, |
| + public ProfileInfoCacheObserver, |
| public ProfileKeyedService, |
| public ui::SimpleMenuModel::Delegate { |
| public: |
| @@ -59,6 +61,8 @@ |
| static bool IsBackgroundModePermanentlyDisabled( |
| const CommandLine* command_line); |
| + ProfileInfoCache* profile_cache(); |
| + |
| static void LaunchBackgroundApplication(Profile* profile, |
| const Extension* extension); |
| @@ -112,6 +116,14 @@ |
| void BuildProfileMenu(ui::SimpleMenuModel* menu, |
| ui::SimpleMenuModel* containing_menu); |
| + // Set the name associated with this background mode data for displaying in |
| + // the status tray. |
| + void SetName(const string16& new_profile_name); |
| + |
| + // The name associated with this background mode data. This should match |
| + // the name in the ProfileInfoCache for this profile. |
| + string16 name(); |
| + |
| // Used for sorting BackgroundModeData*s. |
| static bool BackgroundModeDataCompare(const BackgroundModeData* bmd1, |
| const BackgroundModeData* bmd2); |
| @@ -139,6 +151,8 @@ |
| // which is similar to a shared_ptr. |
| typedef linked_ptr<BackgroundModeData> BackgroundModeInfo; |
| + typedef std::map<Profile*, BackgroundModeInfo> BackgroundModeInfoMap; |
| + |
| // content::NotificationObserver implementation. |
| virtual void Observe(int type, |
| const content::NotificationSource& source, |
| @@ -149,6 +163,13 @@ |
| Profile* profile) OVERRIDE; |
| virtual void OnApplicationListChanged(Profile* profile) OVERRIDE; |
| + // Overrides from ProfileInfoCacheObserver |
| + virtual void OnProfileAdded(const string16& profile_name, |
| + const string16& profile_base_dir) OVERRIDE; |
| + virtual void OnProfileRemoved(const string16& profile_name) OVERRIDE; |
| + virtual void OnProfileNameChanged(const string16& old_profile_name, |
| + const string16& new_profile_name) OVERRIDE; |
| + |
| // Overrides from SimpleMenuModel::Delegate implementation. |
| virtual bool IsCommandIdChecked(int command_id) const OVERRIDE; |
| virtual bool IsCommandIdEnabled(int command_id) const OVERRIDE; |
| @@ -211,6 +232,11 @@ |
| BackgroundModeManager::BackgroundModeData* GetBackgroundModeData( |
| Profile* const profile) const; |
| + // Returns the iterator associated with a particular profile name. |
| + // If it does not exist, returns NULL. |
|
Andrew T Wilson (Slow)
2011/12/06 00:46:03
Update this comment since this cannot return NULL.
rpetterson
2011/12/06 05:52:34
Done.
|
| + BackgroundModeInfoMap::const_iterator GetBackgroundModeIterator( |
| + const string16& profile_name) const; |
| + |
| // Returns true if the "Let chrome run in the background" pref is checked. |
| // (virtual to allow overriding in tests). |
| virtual bool IsBackgroundModePrefEnabled() const; |
| @@ -237,7 +263,7 @@ |
| PrefChangeRegistrar pref_registrar_; |
| // The profile-keyed data for this background mode manager. Keyed on profile. |
| - std::map<Profile*, BackgroundModeInfo> background_mode_data_; |
| + BackgroundModeInfoMap background_mode_data_; |
| // Reference to our status tray. If null, the platform doesn't support status |
| // icons. |