Index: content/renderer/render_frame_impl.cc |
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc |
index e82c518e921ebc7f96f2fd536a86dc7ad30f2e5c..55125cf5d62ac3ebfcb74d1f8c275c631bcc05b7 100644 |
--- a/content/renderer/render_frame_impl.cc |
+++ b/content/renderer/render_frame_impl.cc |
@@ -2317,7 +2317,7 @@ blink::WebMediaPlayer* RenderFrameImpl::createMediaPlayer( |
#if defined(ENABLE_MOJO_MEDIA) && !defined(OS_ANDROID) |
scoped_ptr<media::RendererFactory> media_renderer_factory( |
- new media::MojoRendererFactory(GetMediaServiceFactory())); |
+ new media::MojoRendererFactory(GetMediaServiceProvider())); |
#else |
scoped_ptr<media::RendererFactory> media_renderer_factory = |
GetContentClient()->renderer()->CreateMediaRendererFactory( |
@@ -5544,25 +5544,10 @@ media::MediaPermission* RenderFrameImpl::GetMediaPermission() { |
} |
#if defined(ENABLE_MOJO_MEDIA) |
-media::interfaces::ServiceFactory* RenderFrameImpl::GetMediaServiceFactory() { |
- if (!media_service_factory_) { |
- mojo::ServiceProviderPtr service_provider = |
- ConnectToApplication(GURL("mojo:media")); |
- mojo::ConnectToService(service_provider.get(), &media_service_factory_); |
- media_service_factory_.set_connection_error_handler( |
- base::Bind(&RenderFrameImpl::OnMediaServiceFactoryConnectionError, |
- base::Unretained(this))); |
- } |
- |
- return media_service_factory_.get(); |
-} |
- |
-void RenderFrameImpl::OnMediaServiceFactoryConnectionError() { |
- // TODO(xhwang): Resetting |media_service_factory_| could cause access |
- // violation on the old |media_service_factory_| by outstanding |
- // media::CdmFactory or media::RendererFactory. Find a better way to handle |
- // this. |
- // media_service_factory_.reset(); |
+mojo::ServiceProvider* RenderFrameImpl::GetMediaServiceProvider() { |
+ if (!media_service_provider_) |
+ media_service_provider_ = ConnectToApplication(GURL("mojo:media")); |
+ return media_service_provider_.get(); |
} |
#endif |
@@ -5586,7 +5571,7 @@ media::CdmFactory* RenderFrameImpl::GetCdmFactory() { |
DCHECK(frame_); |
#if defined(ENABLE_MOJO_MEDIA) |
- cdm_factory_.reset(new media::MojoCdmFactory(GetMediaServiceFactory())); |
+ cdm_factory_.reset(new media::MojoCdmFactory(GetMediaServiceProvider())); |
#else |
cdm_factory_.reset(new RenderCdmFactory( |
#if defined(ENABLE_PEPPER_CDMS) |