Index: device/generic_sensor/sensor_provider_impl.cc |
diff --git a/device/generic_sensor/sensor_provider_impl.cc b/device/generic_sensor/sensor_provider_impl.cc |
index 1a2f79a82b726a972ff9370bdf7c003aa9a75eb5..2aa61f0240c74430202e6bf62e4ce5678651e4b7 100644 |
--- a/device/generic_sensor/sensor_provider_impl.cc |
+++ b/device/generic_sensor/sensor_provider_impl.cc |
@@ -8,6 +8,7 @@ |
#include "device/generic_sensor/platform_sensor_provider.h" |
#include "device/generic_sensor/sensor_impl.h" |
+#include "mojo/public/cpp/bindings/strong_binding.h" |
namespace device { |
@@ -22,17 +23,16 @@ uint64_t GetBufferOffset(mojom::SensorType type) { |
} // namespace |
// static |
-void SensorProviderImpl::Create( |
- mojo::InterfaceRequest<mojom::SensorProvider> request) { |
+void SensorProviderImpl::Create(mojom::SensorProviderRequest request) { |
PlatformSensorProvider* provider = PlatformSensorProvider::GetInstance(); |
- if (provider) |
- new SensorProviderImpl(std::move(request), provider); |
+ if (provider) { |
+ mojo::MakeStrongBinding(base::WrapUnique(new SensorProviderImpl(provider)), |
+ std::move(request)); |
+ } |
} |
-SensorProviderImpl::SensorProviderImpl( |
- mojo::InterfaceRequest<mojom::SensorProvider> request, |
- PlatformSensorProvider* provider) |
- : binding_(this, std::move(request)), provider_(provider) { |
+SensorProviderImpl::SensorProviderImpl(PlatformSensorProvider* provider) |
+ : provider_(provider) { |
DCHECK(provider_); |
} |
@@ -58,7 +58,7 @@ void SensorProviderImpl::GetSensor(mojom::SensorType type, |
return; |
} |
- auto sensor_impl = new SensorImpl(std::move(sensor_request), sensor); |
+ auto sensor_impl = base::MakeUnique<SensorImpl>(sensor); |
auto sensor_read_buffer = mojom::SensorReadBuffer::New(); |
sensor_read_buffer->memory = std::move(cloned_handle); |
@@ -66,6 +66,8 @@ void SensorProviderImpl::GetSensor(mojom::SensorType type, |
sensor_read_buffer->mode = sensor->GetReportingMode(); |
callback.Run(std::move(sensor_read_buffer), sensor_impl->GetClient()); |
+ |
+ mojo::MakeStrongBinding(std::move(sensor_impl), std::move(sensor_request)); |
} |
} // namespace device |