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

Unified Diff: content/browser/media/session/media_session_service_impl.h

Issue 2526533002: Allow MediaSession in iframes to be routed (Closed)
Patch Set: nits Created 4 years, 1 month 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/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);
};

Powered by Google App Engine
This is Rietveld 408576698