Index: content/browser/web_contents/web_contents_impl.cc |
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc |
index 683bd7154d435222b2627e276aa7c6a001a10d12..6df95d6b5f1df886b2e810b6c78a0b06780f2e78 100644 |
--- a/content/browser/web_contents/web_contents_impl.cc |
+++ b/content/browser/web_contents/web_contents_impl.cc |
@@ -132,6 +132,7 @@ |
#if defined(OS_ANDROID) |
#include "content/browser/android/content_video_view.h" |
#include "content/browser/android/date_time_chooser_android.h" |
+#include "content/browser/media/android/browser_media_session_manager.h" |
#include "content/browser/media/android/media_web_contents_observer_android.h" |
#include "content/browser/web_contents/web_contents_android.h" |
#endif // OS_ANDROID |
@@ -3814,10 +3815,20 @@ void WebContentsImpl::OnUpdateFaviconURL( |
void WebContentsImpl::OnMediaSessionStateChanged() { |
MediaSession* session = MediaSession::Get(this); |
+ base::Optional<MediaMetadata> metadata; |
+#if defined(OS_ANDROID) |
+ BrowserMediaSessionManager* session_manager = |
+ static_cast<MediaWebContentsObserverAndroid*>( |
+ media_web_contents_observer()) |
+ ->GetMediaSessionManager(GetMainFrame()); |
+ if (session_manager->media_metadata()) { |
+ metadata = *session_manager->media_metadata(); |
+ } |
+#endif // defined(OS_ANDROID) |
FOR_EACH_OBSERVER(WebContentsObserver, observers_, |
MediaSessionStateChanged(session->IsControllable(), |
session->IsSuspended(), |
- session->metadata())); |
+ metadata)); |
} |
void WebContentsImpl::ResumeMediaSession() { |