Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(243)

Unified Diff: device/generic_sensor/sensor_provider_impl.cc

Issue 2326913003: Privatize StrongBinding lifetime management (Closed)
Patch Set: rebase Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « device/generic_sensor/sensor_provider_impl.h ('k') | device/serial/serial_connection.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « device/generic_sensor/sensor_provider_impl.h ('k') | device/serial/serial_connection.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698