Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(562)

Unified Diff: chrome/browser/chromeos/power/renderer_freezer.h

Issue 753313005: Revert of Re-land chromeos: Add non-extension renderers to the freezer cgroup (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 78ce9d6f6ea4f60ddb3f657872b94954aaac8643..d5ac6f9ae01c105cc906faffc7f270e9ada0c39f 100644
--- a/chrome/browser/chromeos/power/renderer_freezer.h
+++ b/chrome/browser/chromeos/power/renderer_freezer.h
@@ -5,24 +5,14 @@
#ifndef CHROME_BROWSER_CHROMEOS_POWER_RENDERER_FREEZER_H_
#define CHROME_BROWSER_CHROMEOS_POWER_RENDERER_FREEZER_H_
-#include <set>
-
#include "base/callback.h"
#include "base/cancelable_callback.h"
#include "base/macros.h"
#include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h"
-#include "base/process/kill.h"
#include "base/time/time.h"
#include "chromeos/chromeos_export.h"
#include "chromeos/dbus/power_manager_client.h"
-#include "content/public/browser/notification_observer.h"
-#include "content/public/browser/notification_registrar.h"
-#include "content/public/browser/render_process_host_observer.h"
-
-namespace content {
-class RenderProcessHost;
-}
namespace chromeos {
@@ -30,26 +20,18 @@
// them after the system fully resumes. This class registers itself as a
// PowerManagerClient::Observer on creation and unregisters itself on
// destruction.
-class CHROMEOS_EXPORT RendererFreezer
- : public PowerManagerClient::RenderProcessManagerDelegate,
- public content::NotificationObserver,
- public content::RenderProcessHostObserver {
+class CHROMEOS_EXPORT RendererFreezer : public PowerManagerClient::Observer {
public:
class Delegate {
public:
virtual ~Delegate() {}
- // If |frozen| is true, marks the renderer process |handle| to be frozen
- // when FreezeRenderers() is called; otherwise marks it to remain unfrozen.
- virtual void SetShouldFreezeRenderer(base::ProcessHandle handle,
- bool frozen) = 0;
-
- // Freezes the renderers marked for freezing by SetShouldFreezeRenderer().
- // Returns true if the operation was successful.
+ // Freezes the chrome renderers. Returns true if the operation was
+ // successful.
virtual bool FreezeRenderers() = 0;
- // Thaws the chrome renderers that were frozen by the call to
- // FreezeRenderers(). Returns true if the operation was successful.
+ // 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.
@@ -57,39 +39,22 @@
};
explicit RendererFreezer(scoped_ptr<Delegate> delegate);
- ~RendererFreezer() override;
+ virtual ~RendererFreezer();
- // PowerManagerClient::RenderProcessManagerDelegate implementation.
- void SuspendImminent() override;
- void SuspendDone() override;
-
- // content::NotificationObserver implementation.
- void Observe(int type,
- const content::NotificationSource& source,
- const content::NotificationDetails& details) override;
-
- // content::RenderProcessHostObserver overrides.
- void RenderProcessExited(content::RenderProcessHost* host,
- base::TerminationStatus status,
- int exit_code) override;
- void RenderProcessHostDestroyed(content::RenderProcessHost* host) override;
+ // PowerManagerClient::Observer implementation
+ virtual void SuspendImminent() override;
+ virtual void SuspendDone(const base::TimeDelta& sleep_duration) override;
private:
- // Called whenever a new renderer process is created.
- void OnRenderProcessCreated(content::RenderProcessHost* rph);
+ // Called when all asynchronous work is complete and renderers can be frozen.
+ void OnReadyToSuspend(const base::Closure& power_manager_callback);
- // Tracks if the renderers are currently frozen.
+ // Used to ensure that renderers do not get frozen if the suspend is canceled.
+ base::CancelableClosure suspend_readiness_callback_;
+
bool frozen_;
- // Delegate that takes care of actually freezing and thawing renderers for us.
scoped_ptr<Delegate> delegate_;
-
- // Set that keeps track of the RenderProcessHosts for processes that are
- // hosting GCM extensions.
- std::set<int> gcm_extension_processes_;
-
- // Manages notification registrations.
- content::NotificationRegistrar registrar_;
base::WeakPtrFactory<RendererFreezer> weak_factory_;
« no previous file with comments | « chrome/browser/chromeos/power/freezer_cgroup_process_manager.cc ('k') | chrome/browser/chromeos/power/renderer_freezer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698