| 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..e5e6f6ec7035c9db411f858419c15919d156f4e5 100644
|
| --- a/content/browser/media/session/media_session_service_impl.h
|
| +++ b/content/browser/media/session/media_session_service_impl.h
|
| @@ -12,32 +12,39 @@
|
|
|
| namespace content {
|
|
|
| -class MediaSessionImpl;
|
| class RenderFrameHost;
|
| +class MediaSessionImpl;
|
|
|
| -// There is one MediaSessionService per frame.
|
| -class MediaSessionServiceImpl : public blink::mojom::MediaSessionService {
|
| +// 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 CONTENT_EXPORT MediaSessionServiceImpl
|
| + : public blink::mojom::MediaSessionService {
|
| public:
|
| ~MediaSessionServiceImpl() override;
|
|
|
| static void Create(RenderFrameHost* render_frame_host,
|
| blink::mojom::MediaSessionServiceRequest request);
|
| const blink::mojom::MediaSessionClientPtr& GetClient() { return client_; }
|
| + RenderFrameHost* GetRenderFrameHost() { return render_frame_host_; }
|
|
|
| - private:
|
| - explicit MediaSessionServiceImpl(RenderFrameHost* render_frame_host);
|
| + const base::Optional<MediaMetadata>& metadata() const { return metadata_; }
|
| + const std::set<blink::mojom::MediaSessionAction>& actions() const {
|
| + return actions_;
|
| + }
|
|
|
| // 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.
|
| + protected:
|
| + explicit MediaSessionServiceImpl(RenderFrameHost* render_frame_host);
|
| +
|
| + private:
|
| MediaSessionImpl* GetMediaSession();
|
|
|
| void Bind(blink::mojom::MediaSessionServiceRequest request);
|
| @@ -48,6 +55,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);
|
| };
|
|
|