Index: mojo/services/html_viewer/webmediaplayer_factory.cc |
diff --git a/mojo/services/html_viewer/webmediaplayer_factory.cc b/mojo/services/html_viewer/webmediaplayer_factory.cc |
index 7f067545a6418e370fead2b004d8425fbead1f38..ec0f1d4d8fb19ac9bd45746915333df212054cf8 100644 |
--- a/mojo/services/html_viewer/webmediaplayer_factory.cc |
+++ b/mojo/services/html_viewer/webmediaplayer_factory.cc |
@@ -47,6 +47,14 @@ WebMediaPlayerFactory::WebMediaPlayerFactory( |
WebMediaPlayerFactory::~WebMediaPlayerFactory() { |
} |
xhwang
2014/12/13 01:06:31
err, I'll add #if !defined(OS_ANDROID) here...
xhwang
2014/12/15 19:51:11
Done.
|
+// Helper function to take the ownership of |service_provider_ptr|. Note that |
+// mojo::ConnectToService takes a raw pointer which doesn't take the ownership. |
+static void ConnectToMediaRendererService( |
+ ServiceProviderPtr service_provider_ptr, |
+ InterfacePtr<MediaRenderer>* media_renderer_ptr) { |
+ ConnectToService(service_provider_ptr.get(), media_renderer_ptr); |
+} |
+ |
blink::WebMediaPlayer* WebMediaPlayerFactory::CreateMediaPlayer( |
blink::WebLocalFrame* frame, |
const blink::WebURL& url, |
@@ -62,8 +70,9 @@ blink::WebMediaPlayer* WebMediaPlayerFactory::CreateMediaPlayer( |
ServiceProviderPtr media_renderer_service_provider; |
shell->ConnectToApplication("mojo:media", |
GetProxy(&media_renderer_service_provider)); |
- media_renderer_factory.reset( |
- new media::MojoRendererFactory(media_renderer_service_provider.Pass())); |
+ media_renderer_factory.reset(new media::MojoRendererFactory( |
+ base::Bind(&ConnectToMediaRendererService, |
+ base::Passed(&media_renderer_service_provider)))); |
} else { |
media_renderer_factory.reset( |
new media::DefaultRendererFactory(media_log, |