Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(680)

Unified Diff: content/browser/media/session/media_session_impl.cc

Issue 2442303002: Adding new media controls to MediaNotification (Closed)
Patch Set: rebased Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 022efebc1331af527436b75cc650e019644d8266..7b56e49618c3ff198418fb8706fafdde4b180cdb 100644
--- a/content/browser/media/session/media_session_impl.cc
+++ b/content/browser/media/session/media_session_impl.cc
@@ -6,9 +6,11 @@
#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/media_session.h"
+#include "content/public/browser/media_session_observer.h"
#include "content/public/browser/web_contents.h"
-#include "content/public/browser/web_contents_delegate.h"
#include "media/base/media_content_type.h"
#if defined(OS_ANDROID)
@@ -83,6 +85,11 @@ void MediaSessionImpl::WebContentsDestroyed() {
AbandonSystemAudioFocusIfNeeded();
}
+void MediaSessionImpl::SetMediaSessionService(
+ MediaSessionServiceImpl* service) {
+ service_ = service;
+}
+
void MediaSessionImpl::AddObserver(MediaSessionObserver* observer) {
observers_.AddObserver(observer);
}
@@ -254,6 +261,24 @@ void MediaSessionImpl::Stop(SuspendType suspend_type) {
AbandonSystemAudioFocusIfNeeded();
}
+void MediaSessionImpl::DidReceiveAction(
+ blink::mojom::MediaSessionAction action) {
+ if (service_)
+ service_->GetClient()->DidReceiveAction(action);
+}
+
+void MediaSessionImpl::OnMediaSessionEnabledAction(
+ blink::mojom::MediaSessionAction action) {
+ for (auto& observer : observers_)
+ observer.MediaSessionEnabledAction(action);
+}
+
+void MediaSessionImpl::OnMediaSessionDisabledAction(
+ blink::mojom::MediaSessionAction action) {
+ for (auto& observer : observers_)
+ observer.MediaSessionDisabledAction(action);
+}
+
void MediaSessionImpl::StartDucking() {
if (is_ducking_)
return;
@@ -399,7 +424,8 @@ MediaSessionImpl::MediaSessionImpl(WebContents* web_contents)
audio_focus_state_(State::INACTIVE),
audio_focus_type_(
AudioFocusManager::AudioFocusType::GainTransientMayDuck),
- is_ducking_(false) {
+ is_ducking_(false),
+ service_(nullptr) {
#if defined(OS_ANDROID)
session_android_.reset(new MediaSessionAndroid(this));
#endif // defined(OS_ANDROID)
« no previous file with comments | « content/browser/media/session/media_session_impl.h ('k') | content/browser/media/session/media_session_service_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698