Index: chrome/browser/chromeos/power/renderer_freezer.h |
diff --git a/chrome/browser/chromeos/power/renderer_freezer.h b/chrome/browser/chromeos/power/renderer_freezer.h |
index 5af26f8cb22a68f0426bfc63910065030b5a6dd1..6a5da1a1c24780b9d6bcf9ee99b8e718a16544e3 100644 |
--- a/chrome/browser/chromeos/power/renderer_freezer.h |
+++ b/chrome/browser/chromeos/power/renderer_freezer.h |
@@ -6,7 +6,7 @@ |
#define CHROME_BROWSER_CHROMEOS_POWER_RENDERER_FREEZER_H_ |
#include "base/callback.h" |
-#include "base/files/file_path.h" |
+#include "base/memory/scoped_ptr.h" |
#include "base/memory/weak_ptr.h" |
#include "base/time/time.h" |
#include "chromeos/chromeos_export.h" |
@@ -20,7 +20,23 @@ namespace chromeos { |
// destruction. |
class CHROMEOS_EXPORT RendererFreezer : public PowerManagerClient::Observer { |
public: |
- RendererFreezer(); |
+ class Delegate { |
+ public: |
+ virtual ~Delegate() {} |
+ |
+ // Freezes the chrome renderers. Returns true if the operation was |
+ // successful. |
+ virtual bool FreezeRenderers() = 0; |
+ |
+ // Thaws the chrome renderers. Returns true if the operation was |
+ // successful. |
+ virtual bool ThawRenderers() = 0; |
+ |
+ // Returns true iff the delegate is capable of freezing renderers. |
+ virtual bool CanFreezeRenderers() = 0; |
+ }; |
+ |
+ explicit RendererFreezer(scoped_ptr<Delegate> delegate); |
virtual ~RendererFreezer(); |
// PowerManagerClient::Observer implementation |
@@ -28,12 +44,13 @@ class CHROMEOS_EXPORT RendererFreezer : public PowerManagerClient::Observer { |
virtual void SuspendDone(const base::TimeDelta& sleep_duration) OVERRIDE; |
private: |
+ // Called when all asynchronous work is complete and renderers can be frozen. |
void OnReadyToSuspend(); |
- base::FilePath state_path_; |
- bool enabled_; |
bool frozen_; |
+ scoped_ptr<Delegate> delegate_; |
+ |
// Callback used to asynchronously report suspend readiness. |
base::Closure suspend_readiness_callback_; |