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

Side by Side 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 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/render_frame_impl.h" 5 #include "content/renderer/render_frame_impl.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 9
10 #include "base/auto_reset.h" 10 #include "base/auto_reset.h"
(...skipping 732 matching lines...) Expand 10 before | Expand all | Expand 10 after
743 proxy_routing_id_(MSG_ROUTING_NONE), 743 proxy_routing_id_(MSG_ROUTING_NONE),
744 #if defined(ENABLE_PLUGINS) 744 #if defined(ENABLE_PLUGINS)
745 plugin_power_saver_helper_(nullptr), 745 plugin_power_saver_helper_(nullptr),
746 #endif 746 #endif
747 cookie_jar_(this), 747 cookie_jar_(this),
748 selection_text_offset_(0), 748 selection_text_offset_(0),
749 selection_range_(gfx::Range::InvalidRange()), 749 selection_range_(gfx::Range::InvalidRange()),
750 handling_select_range_(false), 750 handling_select_range_(false),
751 notification_permission_dispatcher_(NULL), 751 notification_permission_dispatcher_(NULL),
752 web_user_media_client_(NULL), 752 web_user_media_client_(NULL),
753 media_permission_dispatcher_(NULL),
754 midi_dispatcher_(NULL), 753 midi_dispatcher_(NULL),
755 #if defined(OS_ANDROID) 754 #if defined(OS_ANDROID)
756 media_player_manager_(NULL), 755 media_player_manager_(NULL),
757 #endif 756 #endif
758 #if defined(ENABLE_BROWSER_CDMS) 757 #if defined(ENABLE_BROWSER_CDMS)
759 cdm_manager_(NULL), 758 cdm_manager_(NULL),
760 #endif 759 #endif
761 #if defined(VIDEO_HOLE) 760 #if defined(VIDEO_HOLE)
762 contains_media_player_(false), 761 contains_media_player_(false),
763 #endif 762 #endif
(...skipping 4492 matching lines...) Expand 10 before | Expand all | Expand 10 after
5256 } 5255 }
5257 5256
5258 RendererMediaPlayerManager* RenderFrameImpl::GetMediaPlayerManager() { 5257 RendererMediaPlayerManager* RenderFrameImpl::GetMediaPlayerManager() {
5259 if (!media_player_manager_) 5258 if (!media_player_manager_)
5260 media_player_manager_ = new RendererMediaPlayerManager(this); 5259 media_player_manager_ = new RendererMediaPlayerManager(this);
5261 return media_player_manager_; 5260 return media_player_manager_;
5262 } 5261 }
5263 #endif // defined(OS_ANDROID) 5262 #endif // defined(OS_ANDROID)
5264 5263
5265 media::MediaPermission* RenderFrameImpl::GetMediaPermission() { 5264 media::MediaPermission* RenderFrameImpl::GetMediaPermission() {
5266 if (!media_permission_dispatcher_) 5265 if (!media_permission_dispatcher_) {
5267 media_permission_dispatcher_ = new MediaPermissionDispatcher(this); 5266 media_permission_dispatcher_.reset(new MediaPermissionDispatcher(
5268 return media_permission_dispatcher_; 5267 base::Bind(&RenderFrameImpl::ConnectToService<PermissionService>,
5268 base::Unretained(this))));
nasko 2015/11/25 15:04:27 Please add a comment why using base::Unretained(th
5269 }
5270 return media_permission_dispatcher_.get();
5269 } 5271 }
5270 5272
5271 #if defined(ENABLE_MOJO_MEDIA) 5273 #if defined(ENABLE_MOJO_MEDIA)
5272 media::interfaces::ServiceFactory* RenderFrameImpl::GetMediaServiceFactory() { 5274 media::interfaces::ServiceFactory* RenderFrameImpl::GetMediaServiceFactory() {
5273 if (!media_service_factory_) { 5275 if (!media_service_factory_) {
5274 DVLOG(3) << "Connect to ServiceProvider service."; 5276 DVLOG(3) << "Connect to ServiceProvider service.";
5275 mojo::ServiceProviderPtr service_provider = 5277 mojo::ServiceProviderPtr service_provider =
5276 ConnectToApplication(GURL("mojo:media")); 5278 ConnectToApplication(GURL("mojo:media"));
5277 mojo::ConnectToService(service_provider.get(), &media_service_factory_); 5279 mojo::ConnectToService(service_provider.get(), &media_service_factory_);
5278 media_service_factory_.set_connection_error_handler( 5280 media_service_factory_.set_connection_error_handler(
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
5327 5329
5328 void RenderFrameImpl::RegisterMojoServices() { 5330 void RenderFrameImpl::RegisterMojoServices() {
5329 // Only main frames have an ImageDownloader service. 5331 // Only main frames have an ImageDownloader service.
5330 if (!frame_->parent()) { 5332 if (!frame_->parent()) {
5331 GetServiceRegistry()->AddService<image_downloader::ImageDownloader>( 5333 GetServiceRegistry()->AddService<image_downloader::ImageDownloader>(
5332 base::Bind(&ImageDownloaderImpl::CreateMojoService, 5334 base::Bind(&ImageDownloaderImpl::CreateMojoService,
5333 base::Unretained(this))); 5335 base::Unretained(this)));
5334 } 5336 }
5335 } 5337 }
5336 5338
5339 template <typename Interface>
5340 void RenderFrameImpl::ConnectToService(
5341 mojo::InterfaceRequest<Interface> request) {
5342 GetServiceRegistry()->ConnectToRemoteService(std::move(request));
5343 }
5344
5337 mojo::ServiceProviderPtr RenderFrameImpl::ConnectToApplication( 5345 mojo::ServiceProviderPtr RenderFrameImpl::ConnectToApplication(
5338 const GURL& url) { 5346 const GURL& url) {
5339 if (!mojo_shell_) 5347 if (!mojo_shell_)
5340 GetServiceRegistry()->ConnectToRemoteService(mojo::GetProxy(&mojo_shell_)); 5348 ConnectToService(mojo::GetProxy(&mojo_shell_));
5341 mojo::ServiceProviderPtr service_provider; 5349 mojo::ServiceProviderPtr service_provider;
5342 mojo::URLRequestPtr request(mojo::URLRequest::New()); 5350 mojo::URLRequestPtr request(mojo::URLRequest::New());
5343 request->url = mojo::String::From(url); 5351 request->url = mojo::String::From(url);
5344 mojo_shell_->ConnectToApplication(request.Pass(), GetProxy(&service_provider), 5352 mojo_shell_->ConnectToApplication(request.Pass(), GetProxy(&service_provider),
5345 nullptr, nullptr, 5353 nullptr, nullptr,
5346 base::Bind(&OnGotContentHandlerID)); 5354 base::Bind(&OnGotContentHandlerID));
5347 return service_provider.Pass(); 5355 return std::move(service_provider);
5348 } 5356 }
5349 5357
5350 media::RendererWebMediaPlayerDelegate* 5358 media::RendererWebMediaPlayerDelegate*
5351 RenderFrameImpl::GetWebMediaPlayerDelegate() { 5359 RenderFrameImpl::GetWebMediaPlayerDelegate() {
5352 if (!media_player_delegate_) 5360 if (!media_player_delegate_)
5353 media_player_delegate_ = new media::RendererWebMediaPlayerDelegate(this); 5361 media_player_delegate_ = new media::RendererWebMediaPlayerDelegate(this);
5354 return media_player_delegate_; 5362 return media_player_delegate_;
5355 } 5363 }
5356 5364
5357 void RenderFrameImpl::checkIfAudioSinkExistsAndIsAuthorized( 5365 void RenderFrameImpl::checkIfAudioSinkExistsAndIsAuthorized(
5358 const blink::WebString& sink_id, 5366 const blink::WebString& sink_id,
5359 const blink::WebSecurityOrigin& security_origin, 5367 const blink::WebSecurityOrigin& security_origin,
5360 blink::WebSetSinkIdCallbacks* web_callbacks) { 5368 blink::WebSetSinkIdCallbacks* web_callbacks) {
5361 media::SwitchOutputDeviceCB callback = 5369 media::SwitchOutputDeviceCB callback =
5362 media::ConvertToSwitchOutputDeviceCB(web_callbacks); 5370 media::ConvertToSwitchOutputDeviceCB(web_callbacks);
5363 scoped_refptr<media::AudioOutputDevice> device = 5371 scoped_refptr<media::AudioOutputDevice> device =
5364 AudioDeviceFactory::NewOutputDevice(routing_id_, 0, sink_id.utf8(), 5372 AudioDeviceFactory::NewOutputDevice(routing_id_, 0, sink_id.utf8(),
5365 security_origin); 5373 security_origin);
5366 media::OutputDeviceStatus status = device->GetDeviceStatus(); 5374 media::OutputDeviceStatus status = device->GetDeviceStatus();
5367 device->Stop(); 5375 device->Stop();
5368 callback.Run(status); 5376 callback.Run(status);
5369 } 5377 }
5370 5378
5371 } // namespace content 5379 } // namespace content
OLDNEW
« 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