Index: device/generic_sensor/platform_sensor_provider_android.cc |
diff --git a/device/generic_sensor/platform_sensor_provider_android.cc b/device/generic_sensor/platform_sensor_provider_android.cc |
index 05a008a2cfb3982b1f2026e0cbb1cf9c5db4623e..ecfaa8ae22f96165442d96fb7e43fae92d3d89d9 100644 |
--- a/device/generic_sensor/platform_sensor_provider_android.cc |
+++ b/device/generic_sensor/platform_sensor_provider_android.cc |
@@ -28,6 +28,12 @@ PlatformSensorProviderAndroid::PlatformSensorProviderAndroid() { |
PlatformSensorProviderAndroid::~PlatformSensorProviderAndroid() = default; |
+void PlatformSensorProviderAndroid::SetSensorManagerToNullForTesting() { |
+ JNIEnv* env = AttachCurrentThread(); |
+ Java_PlatformSensorProvider_setSensorManagerToNullForTest(env, |
+ j_object_.obj()); |
+} |
+ |
void PlatformSensorProviderAndroid::CreateSensorInternal( |
mojom::SensorType type, |
mojo::ScopedSharedBufferMapping mapping, |
@@ -36,8 +42,10 @@ void PlatformSensorProviderAndroid::CreateSensorInternal( |
ScopedJavaLocalRef<jobject> sensor = Java_PlatformSensorProvider_createSensor( |
env, j_object_.obj(), static_cast<jint>(type)); |
- if (!sensor.obj()) |
+ if (!sensor.obj()) { |
callback.Run(nullptr); |
+ return; |
+ } |
scoped_refptr<PlatformSensorAndroid> concrete_sensor = |
new PlatformSensorAndroid(type, std::move(mapping), this, sensor); |