| Index: content/browser/media/session/media_session.h
|
| diff --git a/content/browser/media/session/media_session.h b/content/browser/media/session/media_session.h
|
| index 9d501fcfd8b7324f41eaf052962620b96e4c43fb..ce800125d895e796ec948caa697cfa7b6f8710b4 100644
|
| --- a/content/browser/media/session/media_session.h
|
| +++ b/content/browser/media/session/media_session.h
|
| @@ -63,6 +63,8 @@ class MediaSession : public WebContentsObserver,
|
|
|
| ~MediaSession() override;
|
|
|
| + void WasShown() override;
|
| +
|
| void SetMetadata(const MediaMetadata& metadata);
|
| const MediaMetadata& metadata() const { return metadata_; }
|
|
|
| @@ -111,6 +113,8 @@ class MediaSession : public WebContentsObserver,
|
| // recovered.
|
| CONTENT_EXPORT void StopDucking();
|
|
|
| + CONTENT_EXPORT bool IsDucking() { return is_ducking_; }
|
| +
|
| // Returns if the session can be controlled by Resume() and Suspend calls
|
| // above.
|
| CONTENT_EXPORT bool IsControllable() const;
|
| @@ -128,6 +132,11 @@ class MediaSession : public WebContentsObserver,
|
| // Returns if the session is currently suspended or inactive.
|
| CONTENT_EXPORT bool IsSuspended() const;
|
|
|
| + void AllowPepperOverrideDucking();
|
| + void DisallowPepperOverrideDucking();
|
| +
|
| + bool HasPepper() const;
|
| +
|
| private:
|
| friend class content::WebContentsUserData<MediaSession>;
|
| friend class ::MediaSessionBrowserTest;
|
| @@ -198,14 +207,19 @@ class MediaSession : public WebContentsObserver,
|
| // Get the volume multiplier, which depends on whether the media session is
|
| // ducking.
|
| double GetVolumeMultiplier() const;
|
| + double GetPepperVolumeMultiplier() const;
|
|
|
| // Registers a MediaSession state change callback.
|
| CONTENT_EXPORT std::unique_ptr<base::CallbackList<void(State)>::Subscription>
|
| RegisterMediaSessionStateChangedCallbackForTest(
|
| const StateChangedCallback& cb);
|
|
|
| + CONTENT_EXPORT bool AddPepperPlayer(MediaSessionObserver* observer,
|
| + int player_id);
|
| +
|
| std::unique_ptr<MediaSessionDelegate> delegate_;
|
| PlayersMap players_;
|
| + PlayersMap pepper_players_;
|
|
|
| State audio_focus_state_;
|
| SuspendType suspend_type_;
|
| @@ -217,6 +231,9 @@ class MediaSession : public WebContentsObserver,
|
| // is set to |true| after StartDucking(), and will be set to |false| after
|
| // StopDucking().
|
| bool is_ducking_;
|
| + // Whether allow pepper to override ducking (play in full volume) when the
|
| + // session is not active.
|
| + bool allow_pepper_override_ducking_;
|
|
|
| MediaMetadata metadata_;
|
| base::CallbackList<void(State)> media_session_state_listeners_;
|
|
|