Index: content/renderer/render_frame_impl.cc |
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc |
index c56c958e5218569e5c0efe62616cab93b254f0b6..631051072df4475b6f1722f9884c48cb5e35a626 100644 |
--- a/content/renderer/render_frame_impl.cc |
+++ b/content/renderer/render_frame_impl.cc |
@@ -169,8 +169,10 @@ |
#include "content/renderer/android/synchronous_compositor_factory.h" |
#include "content/renderer/java/gin_java_bridge_dispatcher.h" |
#include "content/renderer/media/android/renderer_media_player_manager.h" |
+#include "content/renderer/media/android/renderer_media_session_manager.h" |
#include "content/renderer/media/android/stream_texture_factory_impl.h" |
#include "content/renderer/media/android/webmediaplayer_android.h" |
+#include "content/renderer/media/android/webmediasession_android.h" |
#else |
#include "cc/blink/context_provider_web_context.h" |
#endif |
@@ -212,6 +214,7 @@ using blink::WebLocalFrame; |
using blink::WebMediaPlayer; |
using blink::WebMediaPlayerClient; |
using blink::WebMediaPlayerEncryptedMediaClient; |
+using blink::WebMediaSession; |
using blink::WebNavigationPolicy; |
using blink::WebNavigationType; |
using blink::WebNode; |
@@ -668,6 +671,7 @@ RenderFrameImpl::RenderFrameImpl(const CreateParams& params) |
midi_dispatcher_(NULL), |
#if defined(OS_ANDROID) |
media_player_manager_(NULL), |
+ media_session_manager_(NULL), |
#endif |
#if defined(ENABLE_BROWSER_CDMS) |
cdm_manager_(NULL), |
@@ -2068,6 +2072,16 @@ blink::WebMediaPlayer* RenderFrameImpl::createMediaPlayer( |
#endif // defined(OS_ANDROID) && !defined(ENABLE_MEDIA_PIPELINE_ON_ANDROID) |
} |
+blink::WebMediaSession* RenderFrameImpl::createMediaSession( |
+ blink::WebLocalFrame* frame) { |
+#if defined(OS_ANDROID) |
+ return CreateAndroidWebMediaSession(); |
+#else |
+ NOTREACHED(); |
+ return nullptr; |
+#endif // defined(OS_ANDROID) |
+} |
+ |
blink::WebApplicationCacheHost* RenderFrameImpl::createApplicationCacheHost( |
blink::WebLocalFrame* frame, |
blink::WebApplicationCacheHostClient* client) { |
@@ -4992,6 +5006,16 @@ RendererMediaPlayerManager* RenderFrameImpl::GetMediaPlayerManager() { |
return media_player_manager_; |
} |
+WebMediaSession* RenderFrameImpl::CreateAndroidWebMediaSession() { |
+ return new WebMediaSessionAndroid(GetMediaSessionManager()); |
+} |
+ |
+RendererMediaSessionManager* RenderFrameImpl::GetMediaSessionManager() { |
+ if (!media_session_manager_) |
+ media_session_manager_ = new RendererMediaSessionManager(this); |
+ return media_session_manager_; |
+} |
+ |
#endif // defined(OS_ANDROID) |
media::MediaPermission* RenderFrameImpl::GetMediaPermission() { |