| OLD | NEW |
| 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 #include <utility> | 9 #include <utility> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 1109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1120 effective_connection_type_( | 1120 effective_connection_type_( |
| 1121 blink::WebEffectiveConnectionType::TypeUnknown), | 1121 blink::WebEffectiveConnectionType::TypeUnknown), |
| 1122 is_pasting_(false), | 1122 is_pasting_(false), |
| 1123 suppress_further_dialogs_(false), | 1123 suppress_further_dialogs_(false), |
| 1124 blame_context_(nullptr), | 1124 blame_context_(nullptr), |
| 1125 #if defined(ENABLE_PLUGINS) | 1125 #if defined(ENABLE_PLUGINS) |
| 1126 focused_pepper_plugin_(nullptr), | 1126 focused_pepper_plugin_(nullptr), |
| 1127 pepper_last_mouse_event_target_(nullptr), | 1127 pepper_last_mouse_event_target_(nullptr), |
| 1128 #endif | 1128 #endif |
| 1129 frame_binding_(this), | 1129 frame_binding_(this), |
| 1130 is_remote_sink_available_(false), |
| 1131 is_using_remoting_cdm_(false), |
| 1130 weak_factory_(this) { | 1132 weak_factory_(this) { |
| 1131 // We don't have a shell::Connection at this point, so use nullptr. | 1133 // We don't have a shell::Connection at this point, so use nullptr. |
| 1132 // TODO(beng): We should fix this, so we can apply policy about which | 1134 // TODO(beng): We should fix this, so we can apply policy about which |
| 1133 // interfaces get exposed. | 1135 // interfaces get exposed. |
| 1134 interface_registry_.reset(new shell::InterfaceRegistry(nullptr)); | 1136 interface_registry_.reset(new shell::InterfaceRegistry(nullptr)); |
| 1135 shell::mojom::InterfaceProviderPtr remote_interfaces; | 1137 shell::mojom::InterfaceProviderPtr remote_interfaces; |
| 1136 pending_remote_interface_provider_request_ = GetProxy(&remote_interfaces); | 1138 pending_remote_interface_provider_request_ = GetProxy(&remote_interfaces); |
| 1137 remote_interfaces_.reset(new shell::InterfaceProvider); | 1139 remote_interfaces_.reset(new shell::InterfaceProvider); |
| 1138 remote_interfaces_->Bind(std::move(remote_interfaces)); | 1140 remote_interfaces_->Bind(std::move(remote_interfaces)); |
| 1139 blink_service_registry_.reset(new BlinkServiceRegistryImpl( | 1141 blink_service_registry_.reset(new BlinkServiceRegistryImpl( |
| (...skipping 1507 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2647 media::WebMediaPlayerParams params( | 2649 media::WebMediaPlayerParams params( |
| 2648 base::Bind(&ContentRendererClient::DeferMediaLoad, | 2650 base::Bind(&ContentRendererClient::DeferMediaLoad, |
| 2649 base::Unretained(GetContentClient()->renderer()), | 2651 base::Unretained(GetContentClient()->renderer()), |
| 2650 static_cast<RenderFrame*>(this), | 2652 static_cast<RenderFrame*>(this), |
| 2651 GetWebMediaPlayerDelegate()->has_played_media()), | 2653 GetWebMediaPlayerDelegate()->has_played_media()), |
| 2652 audio_renderer_sink, media_log, render_thread->GetMediaThreadTaskRunner(), | 2654 audio_renderer_sink, media_log, render_thread->GetMediaThreadTaskRunner(), |
| 2653 render_thread->GetWorkerTaskRunner(), | 2655 render_thread->GetWorkerTaskRunner(), |
| 2654 render_thread->compositor_task_runner(), context_3d_cb, | 2656 render_thread->compositor_task_runner(), context_3d_cb, |
| 2655 base::Bind(&v8::Isolate::AdjustAmountOfExternalAllocatedMemory, | 2657 base::Bind(&v8::Isolate::AdjustAmountOfExternalAllocatedMemory, |
| 2656 base::Unretained(blink::mainThreadIsolate())), | 2658 base::Unretained(blink::mainThreadIsolate())), |
| 2659 base::Bind(&RenderFrameImpl::isUsingRemotingCdm, base::Unretained(this)), |
| 2657 initial_cdm, media_surface_manager_, media_session); | 2660 initial_cdm, media_surface_manager_, media_session); |
| 2658 | 2661 |
| 2659 #if defined(OS_ANDROID) | 2662 #if defined(OS_ANDROID) |
| 2660 if (!UseWebMediaPlayerImpl(url)) { | 2663 if (!UseWebMediaPlayerImpl(url)) { |
| 2661 return CreateAndroidWebMediaPlayer(client, encrypted_client, params); | 2664 return CreateAndroidWebMediaPlayer(client, encrypted_client, params); |
| 2662 } | 2665 } |
| 2663 #endif // defined(OS_ANDROID) | 2666 #endif // defined(OS_ANDROID) |
| 2664 | 2667 |
| 2665 #if defined(ENABLE_MOJO_RENDERER) | 2668 #if defined(ENABLE_MOJO_RENDERER) |
| 2666 std::unique_ptr<media::RendererFactory> media_renderer_factory( | 2669 std::unique_ptr<media::RendererFactory> media_renderer_factory( |
| (...skipping 3482 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6149 .use_video_overlay_for_embedded_encrypted_video; | 6152 .use_video_overlay_for_embedded_encrypted_video; |
| 6150 #else | 6153 #else |
| 6151 return false; | 6154 return false; |
| 6152 #endif // defined(OS_ANDROID) | 6155 #endif // defined(OS_ANDROID) |
| 6153 } | 6156 } |
| 6154 | 6157 |
| 6155 media::CdmFactory* RenderFrameImpl::GetCdmFactory() { | 6158 media::CdmFactory* RenderFrameImpl::GetCdmFactory() { |
| 6156 if (cdm_factory_) | 6159 if (cdm_factory_) |
| 6157 return cdm_factory_.get(); | 6160 return cdm_factory_.get(); |
| 6158 | 6161 |
| 6162 if (is_remote_sink_available_) { |
| 6163 VLOG(2) << "Using remoting CdmFactory."; |
| 6164 is_using_remoting_cdm_ = true; |
| 6165 // TODO(erickung): Return the CdmFactory for remoting. Possibly pass a |
| 6166 // callback to the factory to check whether still in mirroring when calling |
| 6167 // CreateCdm(). |
| 6168 } |
| 6169 |
| 6159 #if defined(ENABLE_MOJO_CDM) | 6170 #if defined(ENABLE_MOJO_CDM) |
| 6160 if (UseMojoCdm()) { | 6171 if (UseMojoCdm()) { |
| 6161 cdm_factory_.reset(new media::MojoCdmFactory(GetMediaInterfaceProvider())); | 6172 cdm_factory_.reset(new media::MojoCdmFactory(GetMediaInterfaceProvider())); |
| 6162 return cdm_factory_.get(); | 6173 return cdm_factory_.get(); |
| 6163 } | 6174 } |
| 6164 #endif // defined(ENABLE_MOJO_CDM) | 6175 #endif // defined(ENABLE_MOJO_CDM) |
| 6165 | 6176 |
| 6166 #if defined(ENABLE_PEPPER_CDMS) | 6177 #if defined(ENABLE_PEPPER_CDMS) |
| 6167 DCHECK(frame_); | 6178 DCHECK(frame_); |
| 6168 cdm_factory_.reset( | 6179 cdm_factory_.reset( |
| (...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6366 // event target. Potentially a Pepper plugin will receive the event. | 6377 // event target. Potentially a Pepper plugin will receive the event. |
| 6367 // In order to tell whether a plugin gets the last mouse event and which it | 6378 // In order to tell whether a plugin gets the last mouse event and which it |
| 6368 // is, we set |pepper_last_mouse_event_target_| to null here. If a plugin gets | 6379 // is, we set |pepper_last_mouse_event_target_| to null here. If a plugin gets |
| 6369 // the event, it will notify us via DidReceiveMouseEvent() and set itself as | 6380 // the event, it will notify us via DidReceiveMouseEvent() and set itself as |
| 6370 // |pepper_last_mouse_event_target_|. | 6381 // |pepper_last_mouse_event_target_|. |
| 6371 pepper_last_mouse_event_target_ = nullptr; | 6382 pepper_last_mouse_event_target_ = nullptr; |
| 6372 #endif | 6383 #endif |
| 6373 } | 6384 } |
| 6374 | 6385 |
| 6375 } // namespace content | 6386 } // namespace content |
| OLD | NEW |