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

Unified Diff: content/browser/media/android/media_web_contents_observer_android.h

Issue 1570043002: Implement MediaSession on top of the WebMediaPlayerDelegate. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@media_session
Patch Set: Rebase yet again. Created 4 years, 11 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/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 a95e1615fb695922fbdc7bfd8d250eeccd997bf1..9397a33504a21f4cff34b4dc33352c8446f576c8 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.
mlamouri (slow - plz ping) 2016/01/22 16:58:31 You reference multiple time this TODO. Maybe you s
DaleCurtis 2016/01/23 02:11:00 Done.
+ bool RequestPlay(RenderFrameHost* render_frame_host,
+ int64_t player_cookie,
+ bool has_audio,
+ bool is_remote,
+ base::TimeDelta duration);
+
#if defined(VIDEO_HOLE)
void OnFrameInfoUpdated();
#endif // defined(VIDEO_HOLE)
@@ -48,6 +59,22 @@ class CONTENT_EXPORT MediaWebContentsObserverAndroid
RenderFrameHost* render_frame_host) override;
private:
+ // Handles messages for the media player delegate; does not modify the handled
nasko 2016/01/22 17:28:32 nit: Is "media player delegate" a type? If yes, wh
DaleCurtis 2016/01/23 02:11:00 Done.
+ // state since the superclass needs to handle these as well.
+ void OnMediaPlayerDelegateMessageReceived(const IPC::Message& msg,
+ RenderFrameHost* render_frame_host);
+ void OnMediaDestroyedNotification(RenderFrameHost* render_frame_host,
+ int64_t player_cookie);
+ void OnMediaPlayingNotification(RenderFrameHost* render_frame_host,
+ int64_t player_cookie,
+ bool has_video,
+ bool has_audio,
+ bool is_remote,
+ base::TimeDelta duration);
+ void OnMediaPausedNotification(RenderFrameHost* render_frame_host,
+ int64_t player_cookie,
+ bool reached_end_of_stream);
+
// Helper functions to handle media player IPC messages. Returns whether the
// |message| is handled in the function.
bool OnMediaPlayerMessageReceived(const IPC::Message& message,
@@ -70,6 +97,11 @@ class CONTENT_EXPORT MediaWebContentsObserverAndroid
scoped_ptr<BrowserMediaSessionManager>>;
MediaSessionManagerMap media_session_managers_;
+ // Map of renderer side media players to session controllers.
nasko 2016/01/22 17:28:32 nit: s/renderer side/renderer process/
DaleCurtis 2016/01/23 02:11:00 Done.
+ using MediaSessionMap =
+ std::map<MediaPlayerId, scoped_ptr<MediaSessionController>>;
+ MediaSessionMap media_session_map_;
+
DISALLOW_COPY_AND_ASSIGN(MediaWebContentsObserverAndroid);
};

Powered by Google App Engine
This is Rietveld 408576698