Chromium Code Reviews| Index: content/browser/wake_lock/wake_lock_context_host.h |
| diff --git a/content/browser/wake_lock/wake_lock_context_host.h b/content/browser/wake_lock/wake_lock_context_host.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..0323e98ad65e2a804ca9af55121e8352bf2edf61 |
| --- /dev/null |
| +++ b/content/browser/wake_lock/wake_lock_context_host.h |
| @@ -0,0 +1,48 @@ |
| +// Copyright 2017 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef CONTENT_BROWSER_WAKE_LOCK_WAKE_LOCK_CONTEXT_HOST_H_ |
| +#define CONTENT_BROWSER_WAKE_LOCK_WAKE_LOCK_CONTEXT_HOST_H_ |
| + |
| +#include "content/public/browser/web_contents.h" |
| +#include "device/wake_lock/public/interfaces/wake_lock_context.mojom.h" |
| +#include "device/wake_lock/public/interfaces/wake_lock_context_provider.mojom.h" |
| +#include "ui/gfx/native_widget_types.h" |
| + |
| +namespace content { |
| + |
| +// On Android, WakeLockContext requires the NativeView associated with the |
| +// context in order to lock the screen. WakeLockContextHost provides this |
| +// functionality by mapping WakeLockContext IDs to the WebContents associated |
| +// with those IDs. |
| +class WakeLockContextHost { |
| + public: |
| + WakeLockContextHost(WebContents* web_contents); |
|
dcheng
2017/03/17 06:55:26
Nit: explicit
blundell
2017/03/17 12:28:21
Done.
|
| + ~WakeLockContextHost(); |
| + |
| + // This callback is passed into the DeviceService constructor in order to |
| + // enable WakeLockContext to map a context ID to a Native View as necessary. |
| + static gfx::NativeView GetNativeViewForContext(int context_id); |
| + |
| + // Returns the WakeLockContext* to which this instance is connected. |
| + device::mojom::WakeLockContext* GetWakeLockContext() { |
| + return wake_lock_context_.get(); |
| + } |
| + |
| + private: |
| + // This instance's ID. |
| + int id_; |
| + |
| + // The WebContents that owns this instance. |
| + WebContents* web_contents_; |
| + |
| + // The WakeLockContext instance that is connected to this instance. |
| + device::mojom::WakeLockContextPtr wake_lock_context_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(WakeLockContextHost); |
| +}; |
| + |
| +} // namespace content |
| + |
| +#endif // CONTENT_BROWSER_WAKE_LOCK_WAKE_LOCK_CONTEXT_HOST_H_ |