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

Unified Diff: content/browser/wake_lock/wake_lock_service_context.h

Issue 2378033002: Decouple WakeLock from direct //content dependencies (Closed)
Patch Set: Created 4 years, 3 months 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: content/browser/wake_lock/wake_lock_service_context.h
diff --git a/content/browser/wake_lock/wake_lock_service_context.h b/content/browser/wake_lock/wake_lock_service_context.h
index ce04e7975c721c733ddae656817d508f16af5aa9..1ee85fe0b37e48eab0c641de35d527e168490139 100644
--- a/content/browser/wake_lock/wake_lock_service_context.h
+++ b/content/browser/wake_lock/wake_lock_service_context.h
@@ -9,16 +9,15 @@
#include <set>
#include <utility>
+#include "base/callback.h"
#include "base/macros.h"
+#include "base/memory/ref_counted.h"
#include "base/memory/weak_ptr.h"
+#include "base/sequenced_task_runner.h"
#include "content/browser/wake_lock/wake_lock_service_impl.h"
#include "content/common/content_export.h"
-#include "content/public/browser/web_contents_observer.h"
#include "mojo/public/cpp/bindings/interface_request.h"
-
-#if defined(OS_ANDROID)
-#include "ui/android/view_android.h"
-#endif // OS_ANDROID
+#include "ui/gfx/native_widget_types.h"
namespace device {
class PowerSaveBlocker;
@@ -26,30 +25,22 @@ class PowerSaveBlocker;
namespace content {
-class RenderFrameHost;
-class WebContents;
-
-class CONTENT_EXPORT WakeLockServiceContext : public WebContentsObserver {
+class CONTENT_EXPORT WakeLockServiceContext {
public:
- explicit WakeLockServiceContext(WebContents* web_contents);
- ~WakeLockServiceContext() override;
+ WakeLockServiceContext(
+ scoped_refptr<base::SingleThreadTaskRunner> file_task_runner,
+ base::Callback<gfx::NativeView()> native_view_getter);
+ ~WakeLockServiceContext();
// Creates a WakeLockServiceImpl that is strongly bound to |request|.
void CreateService(
- int render_process_id,
- int render_frame_id,
mojo::InterfaceRequest<blink::mojom::WakeLockService> request);
- // WebContentsObserver implementation.
- void RenderFrameDeleted(RenderFrameHost* render_frame_host) override;
+ // Requests wake lock.
+ void RequestWakeLock();
- // Requests wake lock for RenderFrame identified by |render_process_id| and
- // |render_frame_id|.
- void RequestWakeLock(int render_process_id, int render_frame_id);
-
- // Cancels wake lock request for RenderFrame identified by
- // |render_process_id| and |render_frame_id|.
- void CancelWakeLock(int render_process_id, int render_frame_id);
+ // Cancels pending wake lock request.
+ void CancelWakeLock();
// Used by tests.
bool HasWakeLockForTests() const;
@@ -59,12 +50,14 @@ class CONTENT_EXPORT WakeLockServiceContext : public WebContentsObserver {
void RemoveWakeLock();
void UpdateWakeLock();
- // Set of (render_process_id, render_frame_id) pairs identifying all
- // RenderFrames requesting wake lock.
- std::set<std::pair<int, int>> frames_requesting_lock_;
+ scoped_refptr<base::SequencedTaskRunner> main_task_runner_;
+ scoped_refptr<base::SingleThreadTaskRunner> file_task_runner_;
+
+ int num_lock_requests_;
// The actual power save blocker for screen.
std::unique_ptr<device::PowerSaveBlocker> wake_lock_;
+ base::Callback<gfx::NativeView()> native_view_getter_;
base::WeakPtrFactory<WakeLockServiceContext> weak_factory_;
« no previous file with comments | « content/browser/frame_host/render_frame_host_impl.cc ('k') | content/browser/wake_lock/wake_lock_service_context.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698