| Index: content/browser/media/session/media_session_delegate_default.cc
|
| diff --git a/content/browser/media/session/media_session_delegate_default.cc b/content/browser/media/session/media_session_delegate_default.cc
|
| index 688ce53d14f2743862310b10ae9d3c2286b72067..8a3db14fb2dc84a55ec612b4d849bd8f350ee0cc 100644
|
| --- a/content/browser/media/session/media_session_delegate_default.cc
|
| +++ b/content/browser/media/session/media_session_delegate_default.cc
|
| @@ -5,11 +5,13 @@
|
| #include "content/browser/media/session/media_session_delegate.h"
|
|
|
| #include "base/command_line.h"
|
| -#include "content/browser/web_contents/web_contents_impl.h"
|
| +#include "content/browser/media/session/audio_focus_manager.h"
|
| #include "media/base/media_switches.h"
|
|
|
| namespace content {
|
|
|
| +using AudioFocusType = AudioFocusManager::AudioFocusType;
|
| +
|
| namespace {
|
|
|
| // MediaSessionDelegateDefault is the default implementation of
|
| @@ -34,22 +36,21 @@ MediaSessionDelegateDefault::MediaSessionDelegateDefault(
|
| : media_session_(media_session) {
|
| }
|
|
|
| -bool MediaSessionDelegateDefault::RequestAudioFocus(MediaSession::Type) {
|
| +bool MediaSessionDelegateDefault::RequestAudioFocus(MediaSession::Type type) {
|
| if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
|
| switches::kEnableDefaultMediaSession)) {
|
| return true;
|
| }
|
|
|
| - for (WebContentsImpl* web_contents : WebContentsImpl::GetAllWebContents()) {
|
| - MediaSession* media_session = MediaSession::Get(web_contents);
|
| - if (media_session == media_session_ || !media_session->IsActive())
|
| - continue;
|
| - media_session->Suspend(MediaSession::SuspendType::SYSTEM);
|
| - }
|
| + AudioFocusManager::GetInstance()->RequestAudioFocus(
|
| + media_session_, type == MediaSession::Type::Content
|
| + ? AudioFocusType::Gain
|
| + : AudioFocusType::GainTransientMayDuck);
|
| return true;
|
| }
|
|
|
| void MediaSessionDelegateDefault::AbandonAudioFocus() {
|
| + AudioFocusManager::GetInstance()->AbandonAudioFocus(media_session_);
|
| }
|
|
|
| // static
|
|
|