diff options
Diffstat (limited to 'chrome/browser/profile_manager.h')
-rw-r--r-- | chrome/browser/profile_manager.h | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/chrome/browser/profile_manager.h b/chrome/browser/profile_manager.h index 5c3ad89..72f1d63 100644 --- a/chrome/browser/profile_manager.h +++ b/chrome/browser/profile_manager.h @@ -12,6 +12,9 @@ #include <vector> #include "base/basictypes.h" +#include "base/message_loop.h" +#include "base/non_thread_safe.h" +#include "base/system_monitor.h" #include "base/values.h" #include "chrome/browser/profile.h" @@ -57,7 +60,8 @@ class AvailableProfile { DISALLOW_EVIL_CONSTRUCTORS(AvailableProfile); }; -class ProfileManager { +class ProfileManager : public NonThreadSafe, + public base::SystemMonitor::PowerObserver { public: ProfileManager(); virtual ~ProfileManager(); @@ -122,6 +126,11 @@ class ProfileManager { // Creates a new window with the given profile. void NewWindowWithProfile(Profile* profile); + // PowerObserver notifications + void OnPowerStateChange(base::SystemMonitor*) {} + void OnSuspend(base::SystemMonitor*); + void OnResume(base::SystemMonitor*); + // ------------------ static utility functions ------------------- // Returns the path to the profile directory based on the user data directory. @@ -157,6 +166,11 @@ class ProfileManager { // or NULL if no match is found. AvailableProfile* GetAvailableProfileByID(const std::wstring& id); + // Hooks to suspend/resume per-profile network traffic. + // These must be called on the IO thread. + static void SuspendProfile(Profile*); + static void ResumeProfile(Profile*); + // We keep a simple vector of profiles rather than something fancier // because we expect there to be a small number of profiles active. ProfileVector profiles_; |