| Index: content/browser/media/session/media_session.cc
|
| diff --git a/content/browser/media/session/media_session.cc b/content/browser/media/session/media_session.cc
|
| index ea25caad4df7d8adeb230f46523aa00d64e6c3d1..1d9a38018f7be7d58dd1f8328aa0d6082286816c 100644
|
| --- a/content/browser/media/session/media_session.cc
|
| +++ b/content/browser/media/session/media_session.cc
|
| @@ -6,6 +6,7 @@
|
|
|
| #include "content/browser/media/session/audio_focus_delegate.h"
|
| #include "content/browser/media/session/media_session_player_observer.h"
|
| +#include "content/browser/media/session/media_session_service_impl.h"
|
| #include "content/browser/web_contents/web_contents_impl.h"
|
| #include "content/public/browser/web_contents.h"
|
| #include "content/public/browser/web_contents_delegate.h"
|
| @@ -72,6 +73,10 @@ void MediaSession::WebContentsDestroyed() {
|
| AbandonSystemAudioFocusIfNeeded();
|
| }
|
|
|
| +void MediaSession::SetMediaSessionService(MediaSessionServiceImpl* service) {
|
| + service_ = service;
|
| +}
|
| +
|
| void MediaSession::SetMetadata(const base::Optional<MediaMetadata>& metadata) {
|
| metadata_ = metadata;
|
| static_cast<WebContentsImpl*>(web_contents())
|
| @@ -234,6 +239,23 @@ void MediaSession::Stop(SuspendType suspend_type) {
|
| AbandonSystemAudioFocusIfNeeded();
|
| }
|
|
|
| +void MediaSession::OnMediaSessionEnabledAction(
|
| + blink::mojom::MediaSessionAction action) {
|
| + static_cast<WebContentsImpl*>(web_contents())
|
| + ->OnMediaSessionEnabledAction(action);
|
| +}
|
| +
|
| +void MediaSession::OnMediaSessionDisabledAction(
|
| + blink::mojom::MediaSessionAction action) {
|
| + static_cast<WebContentsImpl*>(web_contents())
|
| + ->OnMediaSessionDisabledAction(action);
|
| +}
|
| +
|
| +void MediaSession::DidReceiveAction(blink::mojom::MediaSessionAction action) {
|
| + if (service_)
|
| + service_->GetClient()->DidReceiveAction(action);
|
| +}
|
| +
|
| void MediaSession::StartDucking() {
|
| if (is_ducking_)
|
| return;
|
| @@ -379,7 +401,8 @@ MediaSession::MediaSession(WebContents* web_contents)
|
| audio_focus_state_(State::INACTIVE),
|
| audio_focus_type_(
|
| AudioFocusManager::AudioFocusType::GainTransientMayDuck),
|
| - is_ducking_(false) {}
|
| + is_ducking_(false),
|
| + service_(nullptr) {}
|
|
|
| void MediaSession::Initialize() {
|
| delegate_ = AudioFocusDelegate::Create(this);
|
|
|