Index: content/browser/media/android/media_web_contents_observer_android.h |
diff --git a/content/browser/media/android/media_web_contents_observer_android.h b/content/browser/media/android/media_web_contents_observer_android.h |
index 5a6f481ed6e3011f42e0bfd3c3c498cf85adbe91..e60246817f7730774bf6bea536a45fbe406d2376 100644 |
--- a/content/browser/media/android/media_web_contents_observer_android.h |
+++ b/content/browser/media/android/media_web_contents_observer_android.h |
@@ -18,6 +18,7 @@ namespace content { |
class BrowserCdmManager; |
class BrowserMediaPlayerManager; |
class BrowserMediaSessionManager; |
+class MediaSessionController; |
// This class adds Android specific extensions to the MediaWebContentsObserver. |
class CONTENT_EXPORT MediaWebContentsObserverAndroid |
@@ -38,6 +39,16 @@ class CONTENT_EXPORT MediaWebContentsObserverAndroid |
BrowserMediaSessionManager* GetMediaSessionManager( |
RenderFrameHost* render_frame_host); |
+ // Initiates a synchronous MediaSession request for browser side players. |
+ // |
+ // TODO(dalecurtis): Delete this method once we're no longer using WMPA and |
+ // the BrowserMediaPlayerManagers. Tracked by http://crbug.com/580626 |
+ bool RequestPlay(RenderFrameHost* render_frame_host, |
+ int delegate_id, |
+ bool has_audio, |
+ bool is_remote, |
+ base::TimeDelta duration); |
+ |
#if defined(VIDEO_HOLE) |
void OnFrameInfoUpdated(); |
#endif // defined(VIDEO_HOLE) |
@@ -48,6 +59,21 @@ class CONTENT_EXPORT MediaWebContentsObserverAndroid |
RenderFrameHost* render_frame_host) override; |
private: |
+ // Handles messages from the WebMediaPlayerDelegate; does not modify the |
+ // handled state since the superclass needs to handle these as well. |
+ void OnMediaPlayerDelegateMessageReceived(const IPC::Message& msg, |
+ RenderFrameHost* render_frame_host); |
+ void OnMediaDestroyed(RenderFrameHost* render_frame_host, int delegate_id); |
+ void OnMediaPaused(RenderFrameHost* render_frame_host, |
+ int delegate_id, |
+ bool reached_end_of_stream); |
+ void OnMediaPlaying(RenderFrameHost* render_frame_host, |
+ int delegate_id, |
+ bool has_video, |
+ bool has_audio, |
+ bool is_remote, |
+ base::TimeDelta duration); |
+ |
// Helper functions to handle media player IPC messages. Returns whether the |
// |message| is handled in the function. |
bool OnMediaPlayerMessageReceived(const IPC::Message& message, |
@@ -73,6 +99,11 @@ class CONTENT_EXPORT MediaWebContentsObserverAndroid |
scoped_ptr<BrowserMediaSessionManager>>; |
MediaSessionManagerMap media_session_managers_; |
+ // Map of renderer process media players to session controllers. |
+ using MediaSessionMap = |
+ std::map<MediaPlayerId, scoped_ptr<MediaSessionController>>; |
+ MediaSessionMap media_session_map_; |
+ |
DISALLOW_COPY_AND_ASSIGN(MediaWebContentsObserverAndroid); |
}; |