Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/renderer_blink_platform_impl.h" | 5 #include "content/renderer/renderer_blink_platform_impl.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 45 #include "content/common/gpu/client/gpu_channel_host.h" | 45 #include "content/common/gpu/client/gpu_channel_host.h" |
| 46 #include "content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.h" | 46 #include "content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.h" |
| 47 #include "content/common/gpu/gpu_process_launch_causes.h" | 47 #include "content/common/gpu/gpu_process_launch_causes.h" |
| 48 #include "content/common/mime_registry_messages.h" | 48 #include "content/common/mime_registry_messages.h" |
| 49 #include "content/common/render_process_messages.h" | 49 #include "content/common/render_process_messages.h" |
| 50 #include "content/public/common/content_switches.h" | 50 #include "content/public/common/content_switches.h" |
| 51 #include "content/public/common/service_registry.h" | 51 #include "content/public/common/service_registry.h" |
| 52 #include "content/public/common/webplugininfo.h" | 52 #include "content/public/common/webplugininfo.h" |
| 53 #include "content/public/renderer/content_renderer_client.h" | 53 #include "content/public/renderer/content_renderer_client.h" |
| 54 #include "content/public/renderer/media_stream_api.h" | 54 #include "content/public/renderer/media_stream_api.h" |
| 55 #include "content/renderer/battery_status/battery_status_dispatcher.h" | |
| 56 #include "content/renderer/cache_storage/webserviceworkercachestorage_impl.h" | 55 #include "content/renderer/cache_storage/webserviceworkercachestorage_impl.h" |
| 57 #include "content/renderer/device_sensors/device_light_event_pump.h" | 56 #include "content/renderer/device_sensors/device_light_event_pump.h" |
| 58 #include "content/renderer/device_sensors/device_motion_event_pump.h" | 57 #include "content/renderer/device_sensors/device_motion_event_pump.h" |
| 59 #include "content/renderer/device_sensors/device_orientation_absolute_event_pump .h" | 58 #include "content/renderer/device_sensors/device_orientation_absolute_event_pump .h" |
| 60 #include "content/renderer/device_sensors/device_orientation_event_pump.h" | 59 #include "content/renderer/device_sensors/device_orientation_event_pump.h" |
| 61 #include "content/renderer/dom_storage/webstoragenamespace_impl.h" | 60 #include "content/renderer/dom_storage/webstoragenamespace_impl.h" |
| 62 #include "content/renderer/gamepad_shared_memory_reader.h" | 61 #include "content/renderer/gamepad_shared_memory_reader.h" |
| 63 #include "content/renderer/media/audio_decoder.h" | 62 #include "content/renderer/media/audio_decoder.h" |
| 64 #include "content/renderer/media/canvas_capture_handler.h" | 63 #include "content/renderer/media/canvas_capture_handler.h" |
| 65 #include "content/renderer/media/html_video_element_capturer_source.h" | 64 #include "content/renderer/media/html_video_element_capturer_source.h" |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 77 #include "ipc/ipc_sync_message_filter.h" | 76 #include "ipc/ipc_sync_message_filter.h" |
| 78 #include "media/audio/audio_output_device.h" | 77 #include "media/audio/audio_output_device.h" |
| 79 #include "media/base/audio_hardware_config.h" | 78 #include "media/base/audio_hardware_config.h" |
| 80 #include "media/base/key_systems.h" | 79 #include "media/base/key_systems.h" |
| 81 #include "media/base/mime_util.h" | 80 #include "media/base/mime_util.h" |
| 82 #include "media/blink/webcontentdecryptionmodule_impl.h" | 81 #include "media/blink/webcontentdecryptionmodule_impl.h" |
| 83 #include "media/filters/stream_parser_factory.h" | 82 #include "media/filters/stream_parser_factory.h" |
| 84 #include "storage/common/database/database_identifier.h" | 83 #include "storage/common/database/database_identifier.h" |
| 85 #include "storage/common/quota/quota_types.h" | 84 #include "storage/common/quota/quota_types.h" |
| 86 #include "third_party/WebKit/public/platform/URLConversion.h" | 85 #include "third_party/WebKit/public/platform/URLConversion.h" |
| 87 #include "third_party/WebKit/public/platform/WebBatteryStatusListener.h" | |
| 88 #include "third_party/WebKit/public/platform/WebBlobRegistry.h" | 86 #include "third_party/WebKit/public/platform/WebBlobRegistry.h" |
| 89 #include "third_party/WebKit/public/platform/WebDeviceLightListener.h" | 87 #include "third_party/WebKit/public/platform/WebDeviceLightListener.h" |
| 90 #include "third_party/WebKit/public/platform/WebFileInfo.h" | 88 #include "third_party/WebKit/public/platform/WebFileInfo.h" |
| 91 #include "third_party/WebKit/public/platform/WebGamepads.h" | 89 #include "third_party/WebKit/public/platform/WebGamepads.h" |
| 92 #include "third_party/WebKit/public/platform/WebMediaStreamCenter.h" | 90 #include "third_party/WebKit/public/platform/WebMediaStreamCenter.h" |
| 93 #include "third_party/WebKit/public/platform/WebMediaStreamCenterClient.h" | 91 #include "third_party/WebKit/public/platform/WebMediaStreamCenterClient.h" |
| 94 #include "third_party/WebKit/public/platform/WebPluginListBuilder.h" | 92 #include "third_party/WebKit/public/platform/WebPluginListBuilder.h" |
| 95 #include "third_party/WebKit/public/platform/WebURL.h" | 93 #include "third_party/WebKit/public/platform/WebURL.h" |
| 96 #include "third_party/WebKit/public/platform/WebVector.h" | 94 #include "third_party/WebKit/public/platform/WebVector.h" |
| 97 #include "third_party/WebKit/public/platform/modules/device_orientation/WebDevic eMotionListener.h" | 95 #include "third_party/WebKit/public/platform/modules/device_orientation/WebDevic eMotionListener.h" |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 169 namespace content { | 167 namespace content { |
| 170 | 168 |
| 171 namespace { | 169 namespace { |
| 172 | 170 |
| 173 bool g_sandbox_enabled = true; | 171 bool g_sandbox_enabled = true; |
| 174 double g_test_device_light_data = -1; | 172 double g_test_device_light_data = -1; |
| 175 base::LazyInstance<blink::WebDeviceMotionData>::Leaky | 173 base::LazyInstance<blink::WebDeviceMotionData>::Leaky |
| 176 g_test_device_motion_data = LAZY_INSTANCE_INITIALIZER; | 174 g_test_device_motion_data = LAZY_INSTANCE_INITIALIZER; |
| 177 base::LazyInstance<blink::WebDeviceOrientationData>::Leaky | 175 base::LazyInstance<blink::WebDeviceOrientationData>::Leaky |
| 178 g_test_device_orientation_data = LAZY_INSTANCE_INITIALIZER; | 176 g_test_device_orientation_data = LAZY_INSTANCE_INITIALIZER; |
| 179 // Set in startListening() when running layout tests, unset in stopListening(), | |
| 180 // not owned by us. | |
| 181 blink::WebBatteryStatusListener* g_test_battery_status_listener = nullptr; | |
| 182 | 177 |
| 183 } // namespace | 178 } // namespace |
| 184 | 179 |
| 185 //------------------------------------------------------------------------------ | 180 //------------------------------------------------------------------------------ |
| 186 | 181 |
| 187 class RendererBlinkPlatformImpl::MimeRegistry | 182 class RendererBlinkPlatformImpl::MimeRegistry |
| 188 : public SimpleWebMimeRegistryImpl { | 183 : public SimpleWebMimeRegistryImpl { |
| 189 public: | 184 public: |
| 190 blink::WebMimeRegistry::SupportsType supportsMediaMIMEType( | 185 blink::WebMimeRegistry::SupportsType supportsMediaMIMEType( |
| 191 const blink::WebString& mime_type, | 186 const blink::WebString& mime_type, |
| (...skipping 989 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1181 DVLOG(1) << "RendererBlinkPlatformImpl::startListening() with " | 1176 DVLOG(1) << "RendererBlinkPlatformImpl::startListening() with " |
| 1182 "unknown type."; | 1177 "unknown type."; |
| 1183 } | 1178 } |
| 1184 | 1179 |
| 1185 return NULL; | 1180 return NULL; |
| 1186 } | 1181 } |
| 1187 | 1182 |
| 1188 void RendererBlinkPlatformImpl::SetPlatformEventObserverForTesting( | 1183 void RendererBlinkPlatformImpl::SetPlatformEventObserverForTesting( |
| 1189 blink::WebPlatformEventType type, | 1184 blink::WebPlatformEventType type, |
| 1190 scoped_ptr<PlatformEventObserverBase> observer) { | 1185 scoped_ptr<PlatformEventObserverBase> observer) { |
| 1191 DCHECK(type != blink::WebPlatformEventTypeBattery); | |
| 1192 | |
| 1193 if (platform_event_observers_.Lookup(type)) | 1186 if (platform_event_observers_.Lookup(type)) |
| 1194 platform_event_observers_.Remove(type); | 1187 platform_event_observers_.Remove(type); |
| 1195 platform_event_observers_.AddWithID(observer.release(), type); | 1188 platform_event_observers_.AddWithID(observer.release(), type); |
| 1196 } | 1189 } |
| 1197 | 1190 |
| 1191 void RendererBlinkPlatformImpl::connectToRemoteService( | |
| 1192 const char* name, mojo::ScopedMessagePipeHandle handle) { | |
| 1193 // In the layout test mode, mock services should be used instead. | |
|
shalamov
2016/02/05 13:32:01
If I understand correctly, with this "if(layout_te
Yuki
2016/02/05 14:44:12
This is a dirty hack to make the layout test run a
| |
| 1194 if (RenderThreadImpl::current() && | |
| 1195 RenderThreadImpl::current()->layout_test_mode()) | |
| 1196 return; | |
| 1197 | |
| 1198 if (ServiceRegistry* registry = RenderThread::Get()->GetServiceRegistry()) { | |
| 1199 // registry can be null during testing. | |
| 1200 registry->ConnectToRemoteService(name, std::move(handle)); | |
| 1201 } | |
| 1202 } | |
| 1203 | |
| 1198 void RendererBlinkPlatformImpl::startListening( | 1204 void RendererBlinkPlatformImpl::startListening( |
| 1199 blink::WebPlatformEventType type, | 1205 blink::WebPlatformEventType type, |
| 1200 blink::WebPlatformEventListener* listener) { | 1206 blink::WebPlatformEventListener* listener) { |
| 1201 if (type == blink::WebPlatformEventTypeBattery) { | |
| 1202 if (RenderThreadImpl::current() && | |
| 1203 RenderThreadImpl::current()->layout_test_mode()) { | |
| 1204 g_test_battery_status_listener = | |
| 1205 static_cast<blink::WebBatteryStatusListener*>(listener); | |
| 1206 } else { | |
| 1207 battery_status_dispatcher_.reset(new BatteryStatusDispatcher( | |
| 1208 static_cast<blink::WebBatteryStatusListener*>(listener))); | |
| 1209 } | |
| 1210 return; | |
| 1211 } | |
| 1212 | |
| 1213 PlatformEventObserverBase* observer = platform_event_observers_.Lookup(type); | 1207 PlatformEventObserverBase* observer = platform_event_observers_.Lookup(type); |
| 1214 if (!observer) { | 1208 if (!observer) { |
| 1215 observer = CreatePlatformEventObserverFromType(type); | 1209 observer = CreatePlatformEventObserverFromType(type); |
| 1216 if (!observer) | 1210 if (!observer) |
| 1217 return; | 1211 return; |
| 1218 platform_event_observers_.AddWithID(observer, static_cast<int32_t>(type)); | 1212 platform_event_observers_.AddWithID(observer, static_cast<int32_t>(type)); |
| 1219 } | 1213 } |
| 1220 observer->Start(listener); | 1214 observer->Start(listener); |
| 1221 | 1215 |
| 1222 // Device events (motion, orientation and light) expect to get an event fired | 1216 // Device events (motion, orientation and light) expect to get an event fired |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1262 if (!data) | 1256 if (!data) |
| 1263 return; | 1257 return; |
| 1264 | 1258 |
| 1265 base::ThreadTaskRunnerHandle::Get()->PostTask( | 1259 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 1266 FROM_HERE, base::Bind(&PlatformEventObserverBase::SendFakeDataForTesting, | 1260 FROM_HERE, base::Bind(&PlatformEventObserverBase::SendFakeDataForTesting, |
| 1267 base::Unretained(observer), data)); | 1261 base::Unretained(observer), data)); |
| 1268 } | 1262 } |
| 1269 | 1263 |
| 1270 void RendererBlinkPlatformImpl::stopListening( | 1264 void RendererBlinkPlatformImpl::stopListening( |
| 1271 blink::WebPlatformEventType type) { | 1265 blink::WebPlatformEventType type) { |
| 1272 if (type == blink::WebPlatformEventTypeBattery) { | |
| 1273 g_test_battery_status_listener = nullptr; | |
| 1274 battery_status_dispatcher_.reset(); | |
| 1275 return; | |
| 1276 } | |
| 1277 | |
| 1278 PlatformEventObserverBase* observer = platform_event_observers_.Lookup(type); | 1266 PlatformEventObserverBase* observer = platform_event_observers_.Lookup(type); |
| 1279 if (!observer) | 1267 if (!observer) |
| 1280 return; | 1268 return; |
| 1281 observer->Stop(); | 1269 observer->Stop(); |
| 1282 } | 1270 } |
| 1283 | 1271 |
| 1284 //------------------------------------------------------------------------------ | 1272 //------------------------------------------------------------------------------ |
| 1285 | 1273 |
| 1286 void RendererBlinkPlatformImpl::queryStorageUsageAndQuota( | 1274 void RendererBlinkPlatformImpl::queryStorageUsageAndQuota( |
| 1287 const blink::WebURL& storage_partition, | 1275 const blink::WebURL& storage_partition, |
| 1288 blink::WebStorageQuotaType type, | 1276 blink::WebStorageQuotaType type, |
| 1289 blink::WebStorageQuotaCallbacks callbacks) { | 1277 blink::WebStorageQuotaCallbacks callbacks) { |
| 1290 if (!thread_safe_sender_.get() || !quota_message_filter_.get()) | 1278 if (!thread_safe_sender_.get() || !quota_message_filter_.get()) |
| 1291 return; | 1279 return; |
| 1292 QuotaDispatcher::ThreadSpecificInstance(thread_safe_sender_.get(), | 1280 QuotaDispatcher::ThreadSpecificInstance(thread_safe_sender_.get(), |
| 1293 quota_message_filter_.get()) | 1281 quota_message_filter_.get()) |
| 1294 ->QueryStorageUsageAndQuota( | 1282 ->QueryStorageUsageAndQuota( |
| 1295 storage_partition, | 1283 storage_partition, |
| 1296 static_cast<storage::StorageType>(type), | 1284 static_cast<storage::StorageType>(type), |
| 1297 QuotaDispatcher::CreateWebStorageQuotaCallbacksWrapper(callbacks)); | 1285 QuotaDispatcher::CreateWebStorageQuotaCallbacksWrapper(callbacks)); |
| 1298 } | 1286 } |
| 1299 | 1287 |
| 1300 //------------------------------------------------------------------------------ | |
| 1301 | |
| 1302 void RendererBlinkPlatformImpl::MockBatteryStatusChangedForTesting( | |
| 1303 const blink::WebBatteryStatus& status) { | |
| 1304 if (!g_test_battery_status_listener) | |
| 1305 return; | |
| 1306 g_test_battery_status_listener->updateBatteryStatus(status); | |
| 1307 } | |
| 1308 | |
| 1309 } // namespace content | 1288 } // namespace content |
| OLD | NEW |