Index: content/renderer/render_frame_impl.cc |
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc |
index d2030c35e017a83ed17e6526dbb2907d173b90c1..7ee528e5d1376daf65ceae41363f5f89e18d3d88 100644 |
--- a/content/renderer/render_frame_impl.cc |
+++ b/content/renderer/render_frame_impl.cc |
@@ -1127,6 +1127,8 @@ RenderFrameImpl::RenderFrameImpl(const CreateParams& params) |
pepper_last_mouse_event_target_(nullptr), |
#endif |
frame_binding_(this), |
+ is_remote_sink_available_(false), |
+ is_using_remoting_cdm_(false), |
weak_factory_(this) { |
// We don't have a shell::Connection at this point, so use nullptr. |
// TODO(beng): We should fix this, so we can apply policy about which |
@@ -2654,6 +2656,7 @@ blink::WebMediaPlayer* RenderFrameImpl::createMediaPlayer( |
render_thread->compositor_task_runner(), context_3d_cb, |
base::Bind(&v8::Isolate::AdjustAmountOfExternalAllocatedMemory, |
base::Unretained(blink::mainThreadIsolate())), |
+ base::Bind(&RenderFrameImpl::isUsingRemotingCdm, base::Unretained(this)), |
initial_cdm, media_surface_manager_, media_session); |
#if defined(OS_ANDROID) |
@@ -6156,6 +6159,14 @@ media::CdmFactory* RenderFrameImpl::GetCdmFactory() { |
if (cdm_factory_) |
return cdm_factory_.get(); |
+ if (is_remote_sink_available_) { |
+ VLOG(2) << "Using remoting CdmFactory."; |
+ is_using_remoting_cdm_ = true; |
+ // TODO(erickung): Return the CdmFactory for remoting. Possibly pass a |
+ // callback to the factory to check whether still in mirroring when calling |
+ // CreateCdm(). |
+ } |
+ |
#if defined(ENABLE_MOJO_CDM) |
if (UseMojoCdm()) { |
cdm_factory_.reset(new media::MojoCdmFactory(GetMediaInterfaceProvider())); |