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); |