Index: content/renderer/render_frame_impl.cc |
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc |
index b1171dbec5a413b87fde7a2f3bdc0fd80f2dc05a..77b9e5ba63ecca3f62c4c7e88ee9127cd1c35db4 100644 |
--- a/content/renderer/render_frame_impl.cc |
+++ b/content/renderer/render_frame_impl.cc |
@@ -974,7 +974,6 @@ RenderFrameImpl::RenderFrameImpl(const CreateParams& params) |
handling_select_range_(false), |
notification_permission_dispatcher_(NULL), |
web_user_media_client_(NULL), |
- media_permission_dispatcher_(NULL), |
midi_dispatcher_(NULL), |
#if defined(OS_ANDROID) |
media_player_manager_(NULL), |
@@ -5970,9 +5969,12 @@ RendererMediaSessionManager* RenderFrameImpl::GetMediaSessionManager() { |
#endif // defined(OS_ANDROID) |
media::MediaPermission* RenderFrameImpl::GetMediaPermission() { |
- if (!media_permission_dispatcher_) |
- media_permission_dispatcher_ = new MediaPermissionDispatcher(this); |
- return media_permission_dispatcher_; |
+ if (!media_permission_dispatcher_) { |
+ media_permission_dispatcher_.reset(new MediaPermissionDispatcher( |
+ base::Bind(&RenderFrameImpl::ConnectToService<PermissionService>, |
+ base::Unretained(this)))); |
+ } |
+ return media_permission_dispatcher_.get(); |
} |
#if defined(ENABLE_MOJO_MEDIA) |
@@ -6042,6 +6044,12 @@ void RenderFrameImpl::RegisterMojoServices() { |
} |
} |
+template <typename Interface> |
+void RenderFrameImpl::ConnectToService( |
+ mojo::InterfaceRequest<Interface> request) { |
+ GetServiceRegistry()->ConnectToRemoteService(std::move(request)); |
+} |
+ |
mojo::ServiceProviderPtr RenderFrameImpl::ConnectToApplication( |
const GURL& url) { |
if (!mojo_shell_) |