Index: content/browser/media/session/media_session_service_impl.h |
diff --git a/content/browser/media/session/media_session_service_impl.h b/content/browser/media/session/media_session_service_impl.h |
index 37629c37f38cac272a35ea274b9f40d352977b0e..0211522f49151f356ac5e75b026e6ffdc812fffa 100644 |
--- a/content/browser/media/session/media_session_service_impl.h |
+++ b/content/browser/media/session/media_session_service_impl.h |
@@ -12,10 +12,12 @@ |
namespace content { |
-class MediaSessionImpl; |
class RenderFrameHost; |
+class MediaSessionImpl; |
-// There is one MediaSessionService per frame. |
+// There is one MediaSessionService per frame. The class is owned by |
+// RenderFrameHost and should register/unregister itself to/from |
+// MediaSessionImpl when RenderFrameHost is created/destroyed. |
class MediaSessionServiceImpl : public blink::mojom::MediaSessionService { |
public: |
~MediaSessionServiceImpl() override; |
@@ -23,6 +25,12 @@ class MediaSessionServiceImpl : public blink::mojom::MediaSessionService { |
static void Create(RenderFrameHost* render_frame_host, |
blink::mojom::MediaSessionServiceRequest request); |
const blink::mojom::MediaSessionClientPtr& GetClient() { return client_; } |
+ RenderFrameHost* GetRenderFrameHost() { return render_frame_host_; } |
+ |
+ const base::Optional<MediaMetadata>& metadata() const { return metadata_; } |
+ const std::set<blink::mojom::MediaSessionAction>& actions() const { |
+ return actions_; |
+ } |
private: |
explicit MediaSessionServiceImpl(RenderFrameHost* render_frame_host); |
@@ -30,14 +38,11 @@ class MediaSessionServiceImpl : public blink::mojom::MediaSessionService { |
// blink::mojom::MediaSessionService implementation. |
void SetClient(blink::mojom::MediaSessionClientPtr client) override; |
- void SetMetadata( |
- const base::Optional<content::MediaMetadata>& metadata) override; |
+ void SetMetadata(const base::Optional<MediaMetadata>& metadata) override; |
void EnableAction(blink::mojom::MediaSessionAction action) override; |
void DisableAction(blink::mojom::MediaSessionAction action) override; |
- // Returns the content::MediaSession this service is associated with. Only |
- // returns non-null when this service is in the top-level frame. |
MediaSessionImpl* GetMediaSession(); |
void Bind(blink::mojom::MediaSessionServiceRequest request); |
@@ -48,6 +53,8 @@ class MediaSessionServiceImpl : public blink::mojom::MediaSessionService { |
// The binding is removed when binding_ is cleared or goes out of scope. |
std::unique_ptr<mojo::Binding<blink::mojom::MediaSessionService>> binding_; |
blink::mojom::MediaSessionClientPtr client_; |
+ base::Optional<MediaMetadata> metadata_; |
+ std::set<blink::mojom::MediaSessionAction> actions_; |
DISALLOW_COPY_AND_ASSIGN(MediaSessionServiceImpl); |
}; |