| Index: content/browser/media/session/media_session_impl.cc
|
| diff --git a/content/browser/media/session/media_session_impl.cc b/content/browser/media/session/media_session_impl.cc
|
| index e3f1c26a2bcd94505bbc2c44f96bdf97a02c8692..a4aa4f80b173b337334126d4d818369e05b6dde3 100644
|
| --- a/content/browser/media/session/media_session_impl.cc
|
| +++ b/content/browser/media/session/media_session_impl.cc
|
| @@ -291,12 +291,12 @@ void MediaSessionImpl::OnPlayerPaused(MediaSessionPlayerObserver* observer,
|
| }
|
|
|
| // Otherwise, suspend the session.
|
| - DCHECK(!IsSuspended());
|
| + DCHECK(IsActive());
|
| OnSuspendInternal(SuspendType::CONTENT, State::SUSPENDED);
|
| }
|
|
|
| void MediaSessionImpl::Resume(SuspendType suspend_type) {
|
| - DCHECK(IsReallySuspended());
|
| + DCHECK(IsSuspended());
|
|
|
| // When the resume requests comes from another source than system, audio focus
|
| // must be requested.
|
| @@ -316,7 +316,7 @@ void MediaSessionImpl::Resume(SuspendType suspend_type) {
|
| }
|
|
|
| void MediaSessionImpl::Suspend(SuspendType suspend_type) {
|
| - if (IsSuspended())
|
| + if (!IsActive())
|
| return;
|
|
|
| OnSuspendInternal(suspend_type, State::SUSPENDED);
|
| @@ -371,13 +371,16 @@ bool MediaSessionImpl::IsActive() const {
|
| return audio_focus_state_ == State::ACTIVE;
|
| }
|
|
|
| -bool MediaSessionImpl::IsReallySuspended() const {
|
| +bool MediaSessionImpl::IsSuspended() const {
|
| return audio_focus_state_ == State::SUSPENDED;
|
| }
|
|
|
| -bool MediaSessionImpl::IsSuspended() const {
|
| - // TODO(mlamouri): should be == State::SUSPENDED.
|
| - return audio_focus_state_ != State::ACTIVE;
|
| +bool MediaSessionImpl::IsActuallyPaused() const {
|
| + if (routed_service_ && routed_service_->playback_state() ==
|
| + blink::mojom::MediaSessionPlaybackState::PLAYING) {
|
| + return false;
|
| + }
|
| + return !IsActive();
|
| }
|
|
|
| bool MediaSessionImpl::IsControllable() const {
|
| @@ -404,10 +407,6 @@ void MediaSessionImpl::SetDelegateForTests(
|
| delegate_ = std::move(delegate);
|
| }
|
|
|
| -bool MediaSessionImpl::IsActiveForTest() const {
|
| - return audio_focus_state_ == State::ACTIVE;
|
| -}
|
| -
|
| MediaSessionUmaHelper* MediaSessionImpl::uma_helper_for_test() {
|
| return &uma_helper_;
|
| }
|
| @@ -529,21 +528,11 @@ void MediaSessionImpl::AbandonSystemAudioFocusIfNeeded() {
|
| }
|
|
|
| void MediaSessionImpl::NotifyAboutStateChange() {
|
| - bool is_actually_suspended = IsSuspended();
|
| - // Compute the actual playback state using both the MediaSessionService state
|
| - // and real state.
|
| - //
|
| - // TODO(zqzhang): Maybe also compute for IsControllable()? See
|
| - // https://crbug.com/674983
|
| - if (routed_service_ &&
|
| - routed_service_->playback_state() ==
|
| - blink::mojom::MediaSessionPlaybackState::PLAYING) {
|
| - is_actually_suspended = false;
|
| - }
|
| + bool is_actually_paused = IsActuallyPaused();
|
|
|
| media_session_state_listeners_.Notify(audio_focus_state_);
|
| for (auto& observer : observers_)
|
| - observer.MediaSessionStateChanged(IsControllable(), is_actually_suspended);
|
| + observer.MediaSessionStateChanged(IsControllable(), is_actually_paused);
|
| }
|
|
|
| void MediaSessionImpl::SetAudioFocusState(State audio_focus_state) {
|
|
|