Index: content/browser/media/media_web_contents_observer.h |
diff --git a/content/browser/media/media_web_contents_observer.h b/content/browser/media/media_web_contents_observer.h |
index 3a2a0d3a5c3c8b8b8dc2c0d3de3c532eb58a4c05..0e61ecffbc80b73aaa3d6ce210fb727e3cfe7eb3 100644 |
--- a/content/browser/media/media_web_contents_observer.h |
+++ b/content/browser/media/media_web_contents_observer.h |
@@ -15,15 +15,12 @@ |
#include "content/browser/media/session/media_session_controllers_manager.h" |
#include "content/common/content_export.h" |
#include "content/public/browser/web_contents_observer.h" |
+#include "device/wake_lock/public/interfaces/wake_lock_service.mojom.h" |
#if defined(OS_ANDROID) |
#include "ui/android/view_android.h" |
#endif // OS_ANDROID |
-namespace device { |
-class PowerSaveBlocker; |
-} // namespace device |
- |
namespace media { |
enum class MediaContentType; |
} // namespace media |
@@ -63,12 +60,12 @@ class CONTENT_EXPORT MediaWebContentsObserver : public WebContentsObserver { |
// fullscreening video element to the same place. |
void RequestPersistentVideo(bool value); |
- bool has_audio_power_save_blocker_for_testing() const { |
- return !!audio_power_save_blocker_; |
+ bool has_audio_wake_lock_for_testing() const { |
+ return has_audio_wake_lock_for_testing_; |
} |
- bool has_video_power_save_blocker_for_testing() const { |
- return !!video_power_save_blocker_; |
+ bool has_video_wake_lock_for_testing() const { |
+ return has_video_wake_lock_for_testing_; |
} |
protected: |
@@ -91,17 +88,18 @@ class CONTENT_EXPORT MediaWebContentsObserver : public WebContentsObserver { |
int delegate_id, |
bool is_fullscreen); |
- // Clear |render_frame_host|'s tracking entry for its power save blockers. |
- void ClearPowerSaveBlockers(RenderFrameHost* render_frame_host); |
+ // Clear |render_frame_host|'s tracking entry for its WakeLocks. |
+ void ClearWakeLocks(RenderFrameHost* render_frame_host); |
+ |
+ device::mojom::WakeLockService* GetAudioWakeLock(); |
+ device::mojom::WakeLockService* GetVideoWakeLock(); |
- // Creates an audio or video power save blocker respectively. |
- void CreateAudioPowerSaveBlocker(); |
- void CreateVideoPowerSaveBlocker(); |
+ void LockAudio(); |
+ void LockVideo(); |
- // Releases the audio power save blockers if |active_audio_players_| is empty. |
- // Likewise, releases the video power save blockers if |active_video_players_| |
- // is empty. |
- void MaybeReleasePowerSaveBlockers(); |
+ void CancelAudioLock(); |
+ void CancelVideoLock(); |
+ void MaybeCancelVideoLock(); |
// Helper methods for adding or removing player entries in |player_map|. |
using PlayerSet = std::set<int>; |
@@ -117,12 +115,14 @@ class CONTENT_EXPORT MediaWebContentsObserver : public WebContentsObserver { |
ActiveMediaPlayerMap* player_map, |
std::set<MediaPlayerId>* removed_players); |
- // Tracking variables and associated power save blockers for media playback. |
+ // Tracking variables and associated wake locks for media playback. |
ActiveMediaPlayerMap active_audio_players_; |
ActiveMediaPlayerMap active_video_players_; |
- std::unique_ptr<device::PowerSaveBlocker> audio_power_save_blocker_; |
- std::unique_ptr<device::PowerSaveBlocker> video_power_save_blocker_; |
+ device::mojom::WakeLockServicePtr audio_wake_lock_; |
+ device::mojom::WakeLockServicePtr video_wake_lock_; |
base::Optional<MediaPlayerId> fullscreen_player_; |
+ bool has_audio_wake_lock_for_testing_; |
+ bool has_video_wake_lock_for_testing_; |
MediaSessionControllersManager session_controllers_manager_; |