| 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_)
|
|
|