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 "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/files/file_path.h" | 8 #include "base/files/file_path.h" |
9 #include "base/lazy_instance.h" | 9 #include "base/lazy_instance.h" |
10 #include "base/location.h" | 10 #include "base/location.h" |
(...skipping 865 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
876 | 876 |
877 WebBlobRegistry* RendererBlinkPlatformImpl::blobRegistry() { | 877 WebBlobRegistry* RendererBlinkPlatformImpl::blobRegistry() { |
878 // blob_registry_ can be NULL when running some tests. | 878 // blob_registry_ can be NULL when running some tests. |
879 return blob_registry_.get(); | 879 return blob_registry_.get(); |
880 } | 880 } |
881 | 881 |
882 //------------------------------------------------------------------------------ | 882 //------------------------------------------------------------------------------ |
883 | 883 |
884 void RendererBlinkPlatformImpl::sampleGamepads(WebGamepads& gamepads) { | 884 void RendererBlinkPlatformImpl::sampleGamepads(WebGamepads& gamepads) { |
885 PlatformEventObserverBase* observer = | 885 PlatformEventObserverBase* observer = |
886 platform_event_observers_.Lookup(blink::WebPlatformEventGamepad); | 886 platform_event_observers_.Lookup(blink::WebPlatformEventTypeGamepad); |
887 if (!observer) | 887 if (!observer) |
888 return; | 888 return; |
889 static_cast<RendererGamepadProvider*>(observer)->SampleGamepads(gamepads); | 889 static_cast<RendererGamepadProvider*>(observer)->SampleGamepads(gamepads); |
890 } | 890 } |
891 | 891 |
892 //------------------------------------------------------------------------------ | 892 //------------------------------------------------------------------------------ |
893 | 893 |
894 WebMediaRecorderHandler* | 894 WebMediaRecorderHandler* |
895 RendererBlinkPlatformImpl::createMediaRecorderHandler() { | 895 RendererBlinkPlatformImpl::createMediaRecorderHandler() { |
896 #if !defined(OS_ANDROID) && defined(ENABLE_WEBRTC) | 896 #if !defined(OS_ANDROID) && defined(ENABLE_WEBRTC) |
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1121 blink::WebPlatformEventType type) { | 1121 blink::WebPlatformEventType type) { |
1122 RenderThread* thread = RenderThreadImpl::current(); | 1122 RenderThread* thread = RenderThreadImpl::current(); |
1123 | 1123 |
1124 // When running layout tests, those observers should not listen to the actual | 1124 // When running layout tests, those observers should not listen to the actual |
1125 // hardware changes. In order to make that happen, they will receive a null | 1125 // hardware changes. In order to make that happen, they will receive a null |
1126 // thread. | 1126 // thread. |
1127 if (thread && RenderThreadImpl::current()->layout_test_mode()) | 1127 if (thread && RenderThreadImpl::current()->layout_test_mode()) |
1128 thread = NULL; | 1128 thread = NULL; |
1129 | 1129 |
1130 switch (type) { | 1130 switch (type) { |
1131 case blink::WebPlatformEventDeviceMotion: | 1131 case blink::WebPlatformEventTypeDeviceMotion: |
1132 return new DeviceMotionEventPump(thread); | 1132 return new DeviceMotionEventPump(thread); |
1133 case blink::WebPlatformEventDeviceOrientation: | 1133 case blink::WebPlatformEventTypeDeviceOrientation: |
1134 return new DeviceOrientationEventPump(thread); | 1134 return new DeviceOrientationEventPump(thread); |
1135 case blink::WebPlatformEventDeviceLight: | 1135 case blink::WebPlatformEventTypeDeviceLight: |
1136 return new DeviceLightEventPump(thread); | 1136 return new DeviceLightEventPump(thread); |
1137 case blink::WebPlatformEventGamepad: | 1137 case blink::WebPlatformEventTypeGamepad: |
1138 return new GamepadSharedMemoryReader(thread); | 1138 return new GamepadSharedMemoryReader(thread); |
1139 case blink::WebPlatformEventScreenOrientation: | 1139 case blink::WebPlatformEventTypeScreenOrientation: |
1140 return new ScreenOrientationObserver(); | 1140 return new ScreenOrientationObserver(); |
1141 default: | 1141 default: |
1142 // A default statement is required to prevent compilation errors when | 1142 // A default statement is required to prevent compilation errors when |
1143 // Blink adds a new type. | 1143 // Blink adds a new type. |
1144 DVLOG(1) << "RendererBlinkPlatformImpl::startListening() with " | 1144 DVLOG(1) << "RendererBlinkPlatformImpl::startListening() with " |
1145 "unknown type."; | 1145 "unknown type."; |
1146 } | 1146 } |
1147 | 1147 |
1148 return NULL; | 1148 return NULL; |
1149 } | 1149 } |
1150 | 1150 |
1151 void RendererBlinkPlatformImpl::SetPlatformEventObserverForTesting( | 1151 void RendererBlinkPlatformImpl::SetPlatformEventObserverForTesting( |
1152 blink::WebPlatformEventType type, | 1152 blink::WebPlatformEventType type, |
1153 scoped_ptr<PlatformEventObserverBase> observer) { | 1153 scoped_ptr<PlatformEventObserverBase> observer) { |
1154 DCHECK(type != blink::WebPlatformEventBattery); | 1154 DCHECK(type != blink::WebPlatformEventTypeBattery); |
1155 | 1155 |
1156 if (platform_event_observers_.Lookup(type)) | 1156 if (platform_event_observers_.Lookup(type)) |
1157 platform_event_observers_.Remove(type); | 1157 platform_event_observers_.Remove(type); |
1158 platform_event_observers_.AddWithID(observer.release(), type); | 1158 platform_event_observers_.AddWithID(observer.release(), type); |
1159 } | 1159 } |
1160 | 1160 |
1161 void RendererBlinkPlatformImpl::startListening( | 1161 void RendererBlinkPlatformImpl::startListening( |
1162 blink::WebPlatformEventType type, | 1162 blink::WebPlatformEventType type, |
1163 blink::WebPlatformEventListener* listener) { | 1163 blink::WebPlatformEventListener* listener) { |
1164 if (type == blink::WebPlatformEventBattery) { | 1164 if (type == blink::WebPlatformEventTypeBattery) { |
1165 if (RenderThreadImpl::current() && | 1165 if (RenderThreadImpl::current() && |
1166 RenderThreadImpl::current()->layout_test_mode()) { | 1166 RenderThreadImpl::current()->layout_test_mode()) { |
1167 g_test_battery_status_listener = | 1167 g_test_battery_status_listener = |
1168 static_cast<blink::WebBatteryStatusListener*>(listener); | 1168 static_cast<blink::WebBatteryStatusListener*>(listener); |
1169 } else { | 1169 } else { |
1170 battery_status_dispatcher_.reset(new BatteryStatusDispatcher( | 1170 battery_status_dispatcher_.reset(new BatteryStatusDispatcher( |
1171 static_cast<blink::WebBatteryStatusListener*>(listener))); | 1171 static_cast<blink::WebBatteryStatusListener*>(listener))); |
1172 } | 1172 } |
1173 return; | 1173 return; |
1174 } | 1174 } |
1175 | 1175 |
1176 PlatformEventObserverBase* observer = platform_event_observers_.Lookup(type); | 1176 PlatformEventObserverBase* observer = platform_event_observers_.Lookup(type); |
1177 if (!observer) { | 1177 if (!observer) { |
1178 observer = CreatePlatformEventObserverFromType(type); | 1178 observer = CreatePlatformEventObserverFromType(type); |
1179 if (!observer) | 1179 if (!observer) |
1180 return; | 1180 return; |
1181 platform_event_observers_.AddWithID(observer, static_cast<int32>(type)); | 1181 platform_event_observers_.AddWithID(observer, static_cast<int32>(type)); |
1182 } | 1182 } |
1183 observer->Start(listener); | 1183 observer->Start(listener); |
1184 | 1184 |
1185 // Device events (motion, orientation and light) expect to get an event fired | 1185 // Device events (motion, orientation and light) expect to get an event fired |
1186 // as soon as a listener is registered if a fake data was passed before. | 1186 // as soon as a listener is registered if a fake data was passed before. |
1187 // TODO(mlamouri,timvolodine): make those send mock values directly instead of | 1187 // TODO(mlamouri,timvolodine): make those send mock values directly instead of |
1188 // using this broken pattern. | 1188 // using this broken pattern. |
1189 if (RenderThreadImpl::current() && | 1189 if (RenderThreadImpl::current() && |
1190 RenderThreadImpl::current()->layout_test_mode() && | 1190 RenderThreadImpl::current()->layout_test_mode() && |
1191 (type == blink::WebPlatformEventDeviceMotion || | 1191 (type == blink::WebPlatformEventTypeDeviceMotion || |
1192 type == blink::WebPlatformEventDeviceOrientation || | 1192 type == blink::WebPlatformEventTypeDeviceOrientation || |
1193 type == blink::WebPlatformEventDeviceLight)) { | 1193 type == blink::WebPlatformEventTypeDeviceLight)) { |
1194 SendFakeDeviceEventDataForTesting(type); | 1194 SendFakeDeviceEventDataForTesting(type); |
1195 } | 1195 } |
1196 } | 1196 } |
1197 | 1197 |
1198 void RendererBlinkPlatformImpl::SendFakeDeviceEventDataForTesting( | 1198 void RendererBlinkPlatformImpl::SendFakeDeviceEventDataForTesting( |
1199 blink::WebPlatformEventType type) { | 1199 blink::WebPlatformEventType type) { |
1200 PlatformEventObserverBase* observer = platform_event_observers_.Lookup(type); | 1200 PlatformEventObserverBase* observer = platform_event_observers_.Lookup(type); |
1201 CHECK(observer); | 1201 CHECK(observer); |
1202 | 1202 |
1203 void* data = 0; | 1203 void* data = 0; |
1204 | 1204 |
1205 switch (type) { | 1205 switch (type) { |
1206 case blink::WebPlatformEventDeviceMotion: | 1206 case blink::WebPlatformEventTypeDeviceMotion: |
1207 if (!(g_test_device_motion_data == 0)) | 1207 if (!(g_test_device_motion_data == 0)) |
1208 data = &g_test_device_motion_data.Get(); | 1208 data = &g_test_device_motion_data.Get(); |
1209 break; | 1209 break; |
1210 case blink::WebPlatformEventDeviceOrientation: | 1210 case blink::WebPlatformEventTypeDeviceOrientation: |
1211 if (!(g_test_device_orientation_data == 0)) | 1211 if (!(g_test_device_orientation_data == 0)) |
1212 data = &g_test_device_orientation_data.Get(); | 1212 data = &g_test_device_orientation_data.Get(); |
1213 break; | 1213 break; |
1214 case blink::WebPlatformEventDeviceLight: | 1214 case blink::WebPlatformEventTypeDeviceLight: |
1215 if (g_test_device_light_data >= 0) | 1215 if (g_test_device_light_data >= 0) |
1216 data = &g_test_device_light_data; | 1216 data = &g_test_device_light_data; |
1217 break; | 1217 break; |
1218 default: | 1218 default: |
1219 NOTREACHED(); | 1219 NOTREACHED(); |
1220 break; | 1220 break; |
1221 } | 1221 } |
1222 | 1222 |
1223 if (!data) | 1223 if (!data) |
1224 return; | 1224 return; |
1225 | 1225 |
1226 base::ThreadTaskRunnerHandle::Get()->PostTask( | 1226 base::ThreadTaskRunnerHandle::Get()->PostTask( |
1227 FROM_HERE, base::Bind(&PlatformEventObserverBase::SendFakeDataForTesting, | 1227 FROM_HERE, base::Bind(&PlatformEventObserverBase::SendFakeDataForTesting, |
1228 base::Unretained(observer), data)); | 1228 base::Unretained(observer), data)); |
1229 } | 1229 } |
1230 | 1230 |
1231 void RendererBlinkPlatformImpl::stopListening( | 1231 void RendererBlinkPlatformImpl::stopListening( |
1232 blink::WebPlatformEventType type) { | 1232 blink::WebPlatformEventType type) { |
1233 if (type == blink::WebPlatformEventBattery) { | 1233 if (type == blink::WebPlatformEventTypeBattery) { |
1234 g_test_battery_status_listener = nullptr; | 1234 g_test_battery_status_listener = nullptr; |
1235 battery_status_dispatcher_.reset(); | 1235 battery_status_dispatcher_.reset(); |
1236 return; | 1236 return; |
1237 } | 1237 } |
1238 | 1238 |
1239 PlatformEventObserverBase* observer = platform_event_observers_.Lookup(type); | 1239 PlatformEventObserverBase* observer = platform_event_observers_.Lookup(type); |
1240 if (!observer) | 1240 if (!observer) |
1241 return; | 1241 return; |
1242 observer->Stop(); | 1242 observer->Stop(); |
1243 } | 1243 } |
(...skipping 17 matching lines...) Expand all Loading... |
1261 //------------------------------------------------------------------------------ | 1261 //------------------------------------------------------------------------------ |
1262 | 1262 |
1263 void RendererBlinkPlatformImpl::MockBatteryStatusChangedForTesting( | 1263 void RendererBlinkPlatformImpl::MockBatteryStatusChangedForTesting( |
1264 const blink::WebBatteryStatus& status) { | 1264 const blink::WebBatteryStatus& status) { |
1265 if (!g_test_battery_status_listener) | 1265 if (!g_test_battery_status_listener) |
1266 return; | 1266 return; |
1267 g_test_battery_status_listener->updateBatteryStatus(status); | 1267 g_test_battery_status_listener->updateBatteryStatus(status); |
1268 } | 1268 } |
1269 | 1269 |
1270 } // namespace content | 1270 } // namespace content |
OLD | NEW |