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/browser/frame_host/render_frame_host_impl.h" | 5 #include "content/browser/frame_host/render_frame_host_impl.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
83 #include "content/public/common/file_chooser_file_info.h" | 83 #include "content/public/common/file_chooser_file_info.h" |
84 #include "content/public/common/file_chooser_params.h" | 84 #include "content/public/common/file_chooser_params.h" |
85 #include "content/public/common/isolated_world_ids.h" | 85 #include "content/public/common/isolated_world_ids.h" |
86 #include "content/public/common/service_manager_connection.h" | 86 #include "content/public/common/service_manager_connection.h" |
87 #include "content/public/common/url_constants.h" | 87 #include "content/public/common/url_constants.h" |
88 #include "content/public/common/url_utils.h" | 88 #include "content/public/common/url_utils.h" |
89 #include "device/generic_sensor/sensor_provider_impl.h" | 89 #include "device/generic_sensor/sensor_provider_impl.h" |
90 #include "device/geolocation/geolocation_service_context.h" | 90 #include "device/geolocation/geolocation_service_context.h" |
91 #include "device/vibration/vibration_manager_impl.h" | 91 #include "device/vibration/vibration_manager_impl.h" |
92 #include "device/wake_lock/wake_lock_service_context.h" | 92 #include "device/wake_lock/wake_lock_service_context.h" |
93 #include "media/base/media_switches.h" | |
93 #include "media/mojo/interfaces/media_service.mojom.h" | 94 #include "media/mojo/interfaces/media_service.mojom.h" |
94 #include "media/mojo/interfaces/service_factory.mojom.h" | 95 #include "media/mojo/interfaces/service_factory.mojom.h" |
95 #include "mojo/public/cpp/bindings/associated_interface_ptr.h" | 96 #include "mojo/public/cpp/bindings/associated_interface_ptr.h" |
97 #include "mojo/public/cpp/bindings/strong_binding.h" | |
96 #include "services/shell/public/cpp/connector.h" | 98 #include "services/shell/public/cpp/connector.h" |
97 #include "services/shell/public/cpp/interface_provider.h" | 99 #include "services/shell/public/cpp/interface_provider.h" |
98 #include "ui/accessibility/ax_tree.h" | 100 #include "ui/accessibility/ax_tree.h" |
99 #include "ui/accessibility/ax_tree_update.h" | 101 #include "ui/accessibility/ax_tree_update.h" |
100 #include "ui/gfx/geometry/quad_f.h" | 102 #include "ui/gfx/geometry/quad_f.h" |
101 #include "url/gurl.h" | 103 #include "url/gurl.h" |
102 | 104 |
103 #if defined(OS_ANDROID) | 105 #if defined(OS_ANDROID) |
104 #include "content/public/browser/android/java_interfaces.h" | 106 #include "content/public/browser/android/java_interfaces.h" |
105 #if defined(ENABLE_MOJO_CDM) | 107 #if defined(ENABLE_MOJO_CDM) |
106 #include "content/browser/media/android/provision_fetcher_impl.h" | 108 #include "content/browser/media/android/provision_fetcher_impl.h" |
107 #endif | 109 #endif |
110 #include "content/browser/media/android/media_player_renderer.h" | |
111 // TODO(tguilbert): For-reviewers -- Is there a convenient way to get rid of the | |
liberato (no reviews please)
2016/10/12 15:15:18
sorry, i don't.
don't forget to remove the commen
tguilbert
2016/10/12 21:46:24
Done.
| |
112 // dependency on these files? MojoRendererService complains about incomplete | |
113 // types because there is no move ctor define, but they aren't actually used... | |
114 #include "media/base/audio_renderer_sink.h" | |
115 #include "media/base/video_renderer_sink.h" | |
116 #include "media/mojo/services/mojo_renderer_service.h" | |
108 #endif | 117 #endif |
109 | 118 |
110 #if defined(OS_MACOSX) | 119 #if defined(OS_MACOSX) |
111 #include "content/browser/frame_host/popup_menu_helper_mac.h" | 120 #include "content/browser/frame_host/popup_menu_helper_mac.h" |
112 #endif | 121 #endif |
113 | 122 |
114 #if defined(ENABLE_WEBVR) | 123 #if defined(ENABLE_WEBVR) |
115 #include "base/command_line.h" | 124 #include "base/command_line.h" |
116 #include "content/public/common/content_switches.h" | 125 #include "content/public/common/content_switches.h" |
117 #include "device/vr/vr_service_impl.h" // nogncheck | 126 #include "device/vr/vr_service_impl.h" // nogncheck |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
199 RenderFrameHost* RenderFrameHost::FromID(int render_process_id, | 208 RenderFrameHost* RenderFrameHost::FromID(int render_process_id, |
200 int render_frame_id) { | 209 int render_frame_id) { |
201 return RenderFrameHostImpl::FromID(render_process_id, render_frame_id); | 210 return RenderFrameHostImpl::FromID(render_process_id, render_frame_id); |
202 } | 211 } |
203 | 212 |
204 #if defined(OS_ANDROID) | 213 #if defined(OS_ANDROID) |
205 // static | 214 // static |
206 void RenderFrameHost::AllowInjectingJavaScriptForAndroidWebView() { | 215 void RenderFrameHost::AllowInjectingJavaScriptForAndroidWebView() { |
207 g_allow_injecting_javascript = true; | 216 g_allow_injecting_javascript = true; |
208 } | 217 } |
209 #endif | 218 |
219 void CreateMediaPlayerRenderer( | |
220 content::RenderFrameHost* render_frame_host, | |
221 mojo::InterfaceRequest<media::mojom::Renderer> request) { | |
222 std::unique_ptr<MediaPlayerRenderer> renderer = | |
223 base::MakeUnique<MediaPlayerRenderer>(render_frame_host); | |
224 | |
225 // base::Unretained is safe here because the lifetime of the MediaPlayerRender | |
226 // is tied to the lifetime of the MojoRendererService. | |
227 media::MojoRendererService::InitiateSurfaceRequestCB surface_request_cb = | |
228 base::Bind(&MediaPlayerRenderer::InitiateScopedSurfaceRequest, | |
229 base::Unretained(renderer.get())); | |
230 | |
231 media::MojoRendererService::Create(nullptr, nullptr, nullptr, | |
xhwang
2016/10/12 20:14:14
add a comment about what those nullptrs are.
tguilbert
2016/10/12 21:46:24
Done.
| |
232 std::move(renderer), surface_request_cb, | |
233 std::move(request)); | |
234 } | |
235 #endif // defined(OS_ANDROID) | |
210 | 236 |
211 // static | 237 // static |
212 RenderFrameHostImpl* RenderFrameHostImpl::FromID(int process_id, | 238 RenderFrameHostImpl* RenderFrameHostImpl::FromID(int process_id, |
213 int routing_id) { | 239 int routing_id) { |
214 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 240 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
215 RoutingIDFrameMap* frames = g_routing_id_frame_map.Pointer(); | 241 RoutingIDFrameMap* frames = g_routing_id_frame_map.Pointer(); |
216 RoutingIDFrameMap::iterator it = frames->find( | 242 RoutingIDFrameMap::iterator it = frames->find( |
217 RenderFrameHostID(process_id, routing_id)); | 243 RenderFrameHostID(process_id, routing_id)); |
218 return it == frames->end() ? NULL : it->second; | 244 return it == frames->end() ? NULL : it->second; |
219 } | 245 } |
(...skipping 1937 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2157 GetInterfaceRegistry()->AddInterface(base::Bind( | 2183 GetInterfaceRegistry()->AddInterface(base::Bind( |
2158 &PresentationServiceImpl::CreateMojoService, base::Unretained(this))); | 2184 &PresentationServiceImpl::CreateMojoService, base::Unretained(this))); |
2159 | 2185 |
2160 GetInterfaceRegistry()->AddInterface( | 2186 GetInterfaceRegistry()->AddInterface( |
2161 base::Bind(&MediaSessionServiceImpl::Create, base::Unretained(this))); | 2187 base::Bind(&MediaSessionServiceImpl::Create, base::Unretained(this))); |
2162 | 2188 |
2163 #if defined(OS_ANDROID) | 2189 #if defined(OS_ANDROID) |
2164 GetInterfaceRegistry()->AddInterface( | 2190 GetInterfaceRegistry()->AddInterface( |
2165 GetGlobalJavaInterfaces() | 2191 GetGlobalJavaInterfaces() |
2166 ->CreateInterfaceFactory<device::VibrationManager>()); | 2192 ->CreateInterfaceFactory<device::VibrationManager>()); |
2193 | |
2194 if (base::FeatureList::IsEnabled(media::kEnableMediaPlayerRenderer)) { | |
watk
2016/10/11 23:49:35
Feature should not have "enable" in the name for c
tguilbert
2016/10/12 21:46:24
Done.
| |
2195 // Creates a MojoRendererService, passing it a MediaPlayerRender. | |
2196 GetInterfaceRegistry()->AddInterface<media::mojom::Renderer>(base::Bind( | |
2197 &content::CreateMediaPlayerRenderer, base::Unretained(this))); | |
2198 } | |
2167 #else | 2199 #else |
2168 GetInterfaceRegistry()->AddInterface( | 2200 GetInterfaceRegistry()->AddInterface( |
2169 base::Bind(&device::VibrationManagerImpl::Create)); | 2201 base::Bind(&device::VibrationManagerImpl::Create)); |
2170 #endif | 2202 #endif // defined(OS_ANDROID) |
2171 | 2203 |
2172 bool enable_web_bluetooth = base::CommandLine::ForCurrentProcess()->HasSwitch( | 2204 bool enable_web_bluetooth = base::CommandLine::ForCurrentProcess()->HasSwitch( |
2173 switches::kEnableWebBluetooth); | 2205 switches::kEnableWebBluetooth); |
2174 #if defined(OS_CHROMEOS) || defined(OS_ANDROID) || defined(OS_MACOSX) | 2206 #if defined(OS_CHROMEOS) || defined(OS_ANDROID) || defined(OS_MACOSX) |
2175 enable_web_bluetooth = true; | 2207 enable_web_bluetooth = true; |
2176 #endif | 2208 #endif |
2177 | 2209 |
2178 if (enable_web_bluetooth) { | 2210 if (enable_web_bluetooth) { |
2179 GetInterfaceRegistry()->AddInterface(base::Bind( | 2211 GetInterfaceRegistry()->AddInterface(base::Bind( |
2180 base::IgnoreResult(&RenderFrameHostImpl::CreateWebBluetoothService), | 2212 base::IgnoreResult(&RenderFrameHostImpl::CreateWebBluetoothService), |
(...skipping 926 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3107 web_bluetooth_service_->SetClientConnectionErrorHandler(base::Bind( | 3139 web_bluetooth_service_->SetClientConnectionErrorHandler(base::Bind( |
3108 &RenderFrameHostImpl::DeleteWebBluetoothService, base::Unretained(this))); | 3140 &RenderFrameHostImpl::DeleteWebBluetoothService, base::Unretained(this))); |
3109 return web_bluetooth_service_.get(); | 3141 return web_bluetooth_service_.get(); |
3110 } | 3142 } |
3111 | 3143 |
3112 void RenderFrameHostImpl::DeleteWebBluetoothService() { | 3144 void RenderFrameHostImpl::DeleteWebBluetoothService() { |
3113 web_bluetooth_service_.reset(); | 3145 web_bluetooth_service_.reset(); |
3114 } | 3146 } |
3115 | 3147 |
3116 } // namespace content | 3148 } // namespace content |
OLD | NEW |