Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1980)

Unified Diff: content/renderer/render_frame_impl.cc

Issue 1470233002: media: Generalize MediaPermissionDispatcher. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/renderer/render_frame_impl.cc
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index 59b2ed02d20416bde3d88627d90eef73d42b1ae8..c750abbbee6e5b9a70e170849d622ae9ebaa97dc 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -750,7 +750,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),
@@ -5263,9 +5262,12 @@ RendererMediaPlayerManager* RenderFrameImpl::GetMediaPlayerManager() {
#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))));
nasko 2015/11/25 15:04:27 Please add a comment why using base::Unretained(th
+ }
+ return media_permission_dispatcher_.get();
}
#if defined(ENABLE_MOJO_MEDIA)
@@ -5334,17 +5336,23 @@ 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_)
- GetServiceRegistry()->ConnectToRemoteService(mojo::GetProxy(&mojo_shell_));
+ ConnectToService(mojo::GetProxy(&mojo_shell_));
mojo::ServiceProviderPtr service_provider;
mojo::URLRequestPtr request(mojo::URLRequest::New());
request->url = mojo::String::From(url);
mojo_shell_->ConnectToApplication(request.Pass(), GetProxy(&service_provider),
nullptr, nullptr,
base::Bind(&OnGotContentHandlerID));
- return service_provider.Pass();
+ return std::move(service_provider);
}
media::RendererWebMediaPlayerDelegate*
« content/renderer/render_frame_impl.h ('K') | « content/renderer/render_frame_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698