| Index: content/browser/media/session/media_session_impl.h
|
| diff --git a/content/browser/media/session/media_session_impl.h b/content/browser/media/session/media_session_impl.h
|
| index 1f1a0fc85d172fd45655d48251e7ee86ac05bae3..663bb96d6cb8ad67a3bccc2de8968cd8b53ba6af 100644
|
| --- a/content/browser/media/session/media_session_impl.h
|
| +++ b/content/browser/media/session/media_session_impl.h
|
| @@ -7,6 +7,8 @@
|
|
|
| #include <stddef.h>
|
|
|
| +#include <set>
|
| +
|
| #include "base/callback_list.h"
|
| #include "base/id_map.h"
|
| #include "base/macros.h"
|
| @@ -39,7 +41,7 @@ class MediaSessionImplStateObserver;
|
| class MediaSessionImplVisibilityBrowserTest;
|
| class MediaSessionObserver;
|
| class MediaSessionPlayerObserver;
|
| -class MediaSessionServiceImpl;
|
| +class MediaSessionServiceRouter;
|
|
|
| #if defined(OS_ANDROID)
|
| class MediaSessionAndroid;
|
| @@ -84,8 +86,10 @@ class MediaSessionImpl : public MediaSession,
|
| void AddObserver(MediaSessionObserver* observer);
|
| void RemoveObserver(MediaSessionObserver* observer);
|
|
|
| - void SetMetadata(const base::Optional<MediaMetadata>& metadata);
|
| - const base::Optional<MediaMetadata>& metadata() const { return metadata_; }
|
| + void NotifyMediaSessionMetadataChange(
|
| + const base::Optional<MediaMetadata>& metadata);
|
| + void NotifyMediaSessionActionsChange(
|
| + const std::set<blink::mojom::MediaSessionAction>& actions);
|
|
|
| // Adds the given player to the current media session. Returns whether the
|
| // player was successfully added. If it returns false, AddPlayer() should be
|
| @@ -127,13 +131,10 @@ class MediaSessionImpl : public MediaSession,
|
| // Received a media session action and forward to blink::MediaSession.
|
| void DidReceiveAction(blink::mojom::MediaSessionAction action) override;
|
|
|
| - // Called when an action is enabled in blink::MediaSession. This method will
|
| - // notify the observers that the action is enabled.
|
| - void OnMediaSessionEnabledAction(blink::mojom::MediaSessionAction action);
|
| -
|
| - // Called when an action is disabled in blink::MediaSession. This method will
|
| - // notify the observers that the action is disabled.
|
| - void OnMediaSessionDisabledAction(blink::mojom::MediaSessionAction action);
|
| + // Called when blink::MediaSession action list has changed. This method will
|
| + // notify the observers of the change.
|
| + void OnMediaSessionActionsChanged(
|
| + const std::set<blink::mojom::MediaSessionAction>& actions);
|
|
|
| // Let the media session start ducking such that the volume multiplier is
|
| // reduced.
|
| @@ -172,10 +173,13 @@ class MediaSessionImpl : public MediaSession,
|
| // WebContentsObserver implementation
|
| void WebContentsDestroyed() override;
|
|
|
| - // Sets the associated MediaSessionService for communicating with
|
| + // Getting the associated MediaSessionServiceRouter for communicating with
|
| // blink::MediaSession.
|
| - MediaSessionServiceImpl* GetMediaSessionService() { return service_; }
|
| - void SetMediaSessionService(MediaSessionServiceImpl* service);
|
| + MediaSessionServiceRouter* GetMediaSessionServiceRouter() {
|
| + return service_router_.get();
|
| + }
|
| +
|
| + MediaSessionPlayerObserver* GetMostMeaningfulPlayerObserver();
|
|
|
| private:
|
| friend class content::WebContentsUserData<MediaSessionImpl>;
|
| @@ -267,7 +271,6 @@ class MediaSessionImpl : public MediaSession,
|
| // StopDucking().
|
| bool is_ducking_;
|
|
|
| - base::Optional<MediaMetadata> metadata_;
|
| base::CallbackList<void(State)> media_session_state_listeners_;
|
|
|
| base::ObserverList<MediaSessionObserver> observers_;
|
| @@ -278,7 +281,7 @@ class MediaSessionImpl : public MediaSession,
|
|
|
| // The MediaSessionService this session is associated with (the service of the
|
| // top-level frame).
|
| - MediaSessionServiceImpl* service_;
|
| + std::unique_ptr<MediaSessionServiceRouter> service_router_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(MediaSessionImpl);
|
| };
|
|
|