Index: chrome/browser/profile_manager.h |
=================================================================== |
--- chrome/browser/profile_manager.h (revision 6119) |
+++ chrome/browser/profile_manager.h (working copy) |
@@ -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 @@ |
DISALLOW_EVIL_CONSTRUCTORS(AvailableProfile); |
}; |
-class ProfileManager { |
+class ProfileManager : public NonThreadSafe, |
+ public base::SystemMonitor::PowerObserver { |
public: |
ProfileManager(); |
virtual ~ProfileManager(); |
@@ -122,6 +126,11 @@ |
// 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 @@ |
// 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_; |