summaryrefslogtreecommitdiff
path: root/chromium/services/device
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/services/device')
-rw-r--r--chromium/services/device/generic_sensor/fake_platform_sensor_and_provider.cc19
-rw-r--r--chromium/services/device/generic_sensor/fake_platform_sensor_and_provider.h6
-rw-r--r--chromium/services/device/generic_sensor/platform_sensor.cc11
-rw-r--r--chromium/services/device/generic_sensor/platform_sensor.h4
-rw-r--r--chromium/services/device/generic_sensor/platform_sensor_accelerometer_mac.cc4
-rw-r--r--chromium/services/device/generic_sensor/platform_sensor_accelerometer_mac.h2
-rw-r--r--chromium/services/device/generic_sensor/platform_sensor_ambient_light_mac.cc4
-rw-r--r--chromium/services/device/generic_sensor/platform_sensor_ambient_light_mac.h2
-rw-r--r--chromium/services/device/generic_sensor/platform_sensor_android.cc4
-rw-r--r--chromium/services/device/generic_sensor/platform_sensor_android.h2
-rw-r--r--chromium/services/device/generic_sensor/platform_sensor_fusion.cc24
-rw-r--r--chromium/services/device/generic_sensor/platform_sensor_fusion.h4
-rw-r--r--chromium/services/device/generic_sensor/platform_sensor_fusion_unittest.cc5
-rw-r--r--chromium/services/device/generic_sensor/platform_sensor_linux.cc4
-rw-r--r--chromium/services/device/generic_sensor/platform_sensor_linux.h2
-rw-r--r--chromium/services/device/generic_sensor/platform_sensor_provider_android.cc29
-rw-r--r--chromium/services/device/generic_sensor/platform_sensor_provider_android.h8
-rw-r--r--chromium/services/device/generic_sensor/platform_sensor_provider_base.cc44
-rw-r--r--chromium/services/device/generic_sensor/platform_sensor_provider_base.h5
-rw-r--r--chromium/services/device/generic_sensor/platform_sensor_provider_linux.cc24
-rw-r--r--chromium/services/device/generic_sensor/platform_sensor_provider_linux.h6
-rw-r--r--chromium/services/device/generic_sensor/platform_sensor_provider_mac.cc10
-rw-r--r--chromium/services/device/generic_sensor/platform_sensor_provider_mac.h2
-rw-r--r--chromium/services/device/generic_sensor/platform_sensor_provider_win.cc13
-rw-r--r--chromium/services/device/generic_sensor/platform_sensor_provider_win.h4
-rw-r--r--chromium/services/device/generic_sensor/platform_sensor_win.cc4
-rw-r--r--chromium/services/device/generic_sensor/platform_sensor_win.h2
27 files changed, 130 insertions, 118 deletions
diff --git a/chromium/services/device/generic_sensor/fake_platform_sensor_and_provider.cc b/chromium/services/device/generic_sensor/fake_platform_sensor_and_provider.cc
index 3f69846b8db..166f9951490 100644
--- a/chromium/services/device/generic_sensor/fake_platform_sensor_and_provider.cc
+++ b/chromium/services/device/generic_sensor/fake_platform_sensor_and_provider.cc
@@ -12,10 +12,11 @@ using ::testing::_;
namespace device {
-FakePlatformSensor::FakePlatformSensor(mojom::SensorType type,
- mojo::ScopedSharedBufferMapping mapping,
- PlatformSensorProvider* provider)
- : PlatformSensor(type, std::move(mapping), provider) {
+FakePlatformSensor::FakePlatformSensor(
+ mojom::SensorType type,
+ SensorReadingSharedBuffer* reading_buffer,
+ PlatformSensorProvider* provider)
+ : PlatformSensor(type, reading_buffer, provider) {
ON_CALL(*this, StartSensor(_))
.WillByDefault(
Invoke([this](const PlatformSensorConfiguration& configuration) {
@@ -68,18 +69,20 @@ FakePlatformSensorProvider::FakePlatformSensorProvider() {
FakePlatformSensorProvider::~FakePlatformSensorProvider() = default;
-mojo::ScopedSharedBufferMapping FakePlatformSensorProvider::GetMapping(
+SensorReadingSharedBuffer* FakePlatformSensorProvider::GetSensorReadingBuffer(
mojom::SensorType type) {
- return CreateSharedBufferIfNeeded() ? MapSharedBufferForType(type) : nullptr;
+ return CreateSharedBufferIfNeeded()
+ ? GetSensorReadingSharedBufferForType(type)
+ : nullptr;
}
void FakePlatformSensorProvider::CreateSensorInternal(
mojom::SensorType type,
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
const CreateSensorCallback& callback) {
DCHECK(type >= mojom::SensorType::FIRST && type <= mojom::SensorType::LAST);
auto sensor =
- base::MakeRefCounted<FakePlatformSensor>(type, std::move(mapping), this);
+ base::MakeRefCounted<FakePlatformSensor>(type, reading_buffer, this);
DoCreateSensorInternal(type, std::move(sensor), callback);
}
diff --git a/chromium/services/device/generic_sensor/fake_platform_sensor_and_provider.h b/chromium/services/device/generic_sensor/fake_platform_sensor_and_provider.h
index 53c646ced72..79cf9cd1fc1 100644
--- a/chromium/services/device/generic_sensor/fake_platform_sensor_and_provider.h
+++ b/chromium/services/device/generic_sensor/fake_platform_sensor_and_provider.h
@@ -15,7 +15,7 @@ namespace device {
class FakePlatformSensor : public PlatformSensor {
public:
FakePlatformSensor(mojom::SensorType type,
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
PlatformSensorProvider* provider);
// PlatformSensor:
@@ -51,11 +51,11 @@ class FakePlatformSensorProvider : public PlatformSensorProvider {
scoped_refptr<PlatformSensor>,
const CreateSensorCallback&));
- mojo::ScopedSharedBufferMapping GetMapping(mojom::SensorType type);
+ SensorReadingSharedBuffer* GetSensorReadingBuffer(mojom::SensorType type);
private:
void CreateSensorInternal(mojom::SensorType type,
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
const CreateSensorCallback& callback) override;
DISALLOW_COPY_AND_ASSIGN(FakePlatformSensorProvider);
diff --git a/chromium/services/device/generic_sensor/platform_sensor.cc b/chromium/services/device/generic_sensor/platform_sensor.cc
index 36b22f4182a..7bc6b95fba3 100644
--- a/chromium/services/device/generic_sensor/platform_sensor.cc
+++ b/chromium/services/device/generic_sensor/platform_sensor.cc
@@ -16,10 +16,10 @@
namespace device {
PlatformSensor::PlatformSensor(mojom::SensorType type,
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
PlatformSensorProvider* provider)
: task_runner_(base::ThreadTaskRunnerHandle::Get()),
- shared_buffer_mapping_(std::move(mapping)),
+ reading_buffer_(reading_buffer),
type_(type),
provider_(provider),
weak_factory_(this) {}
@@ -103,10 +103,8 @@ void PlatformSensor::RemoveClient(Client* client) {
bool PlatformSensor::GetLatestReading(SensorReading* result) {
if (!shared_buffer_reader_) {
- const auto* buffer = static_cast<const device::SensorReadingSharedBuffer*>(
- shared_buffer_mapping_.get());
shared_buffer_reader_ =
- std::make_unique<SensorReadingSharedBufferReader>(buffer);
+ std::make_unique<SensorReadingSharedBufferReader>(reading_buffer_);
}
return shared_buffer_reader_->GetReading(result);
@@ -121,8 +119,7 @@ void PlatformSensor::UpdateSharedBufferAndNotifyClients(
}
void PlatformSensor::UpdateSharedBuffer(const SensorReading& reading) {
- ReadingBuffer* buffer =
- static_cast<ReadingBuffer*>(shared_buffer_mapping_.get());
+ ReadingBuffer* buffer = reading_buffer_;
auto& seqlock = buffer->seqlock.value();
seqlock.WriteBegin();
buffer->reading = reading;
diff --git a/chromium/services/device/generic_sensor/platform_sensor.h b/chromium/services/device/generic_sensor/platform_sensor.h
index 7387f8d2d7a..76aac492cd0 100644
--- a/chromium/services/device/generic_sensor/platform_sensor.h
+++ b/chromium/services/device/generic_sensor/platform_sensor.h
@@ -78,7 +78,7 @@ class PlatformSensor : public base::RefCountedThreadSafe<PlatformSensor> {
protected:
virtual ~PlatformSensor();
PlatformSensor(mojom::SensorType type,
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
PlatformSensorProvider* provider);
using ReadingBuffer = SensorReadingSharedBuffer;
@@ -106,7 +106,7 @@ class PlatformSensor : public base::RefCountedThreadSafe<PlatformSensor> {
private:
friend class base::RefCountedThreadSafe<PlatformSensor>;
- const mojo::ScopedSharedBufferMapping shared_buffer_mapping_;
+ SensorReadingSharedBuffer* reading_buffer_; // NOTE: Owned by |provider_|.
std::unique_ptr<SensorReadingSharedBufferReader> shared_buffer_reader_;
mojom::SensorType type_;
ConfigMap config_map_;
diff --git a/chromium/services/device/generic_sensor/platform_sensor_accelerometer_mac.cc b/chromium/services/device/generic_sensor/platform_sensor_accelerometer_mac.cc
index 8c1696c71bd..1d0afc6fc80 100644
--- a/chromium/services/device/generic_sensor/platform_sensor_accelerometer_mac.cc
+++ b/chromium/services/device/generic_sensor/platform_sensor_accelerometer_mac.cc
@@ -35,9 +35,9 @@ namespace device {
using mojom::SensorType;
PlatformSensorAccelerometerMac::PlatformSensorAccelerometerMac(
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
PlatformSensorProvider* provider)
- : PlatformSensor(SensorType::ACCELEROMETER, std::move(mapping), provider),
+ : PlatformSensor(SensorType::ACCELEROMETER, reading_buffer, provider),
sudden_motion_sensor_(SuddenMotionSensor::Create()) {}
PlatformSensorAccelerometerMac::~PlatformSensorAccelerometerMac() = default;
diff --git a/chromium/services/device/generic_sensor/platform_sensor_accelerometer_mac.h b/chromium/services/device/generic_sensor/platform_sensor_accelerometer_mac.h
index 41a662ca69f..8e8dbb03ab6 100644
--- a/chromium/services/device/generic_sensor/platform_sensor_accelerometer_mac.h
+++ b/chromium/services/device/generic_sensor/platform_sensor_accelerometer_mac.h
@@ -23,7 +23,7 @@ class PlatformSensorAccelerometerMac : public PlatformSensor {
public:
// Construct a platform sensor of type ACCELEROMETER, given a buffer |mapping|
// where readings will be written.
- PlatformSensorAccelerometerMac(mojo::ScopedSharedBufferMapping mapping,
+ PlatformSensorAccelerometerMac(SensorReadingSharedBuffer* reading_buffer,
PlatformSensorProvider* provider);
mojom::ReportingMode GetReportingMode() override;
diff --git a/chromium/services/device/generic_sensor/platform_sensor_ambient_light_mac.cc b/chromium/services/device/generic_sensor/platform_sensor_ambient_light_mac.cc
index b99ed16d9fa..c20fd92073b 100644
--- a/chromium/services/device/generic_sensor/platform_sensor_ambient_light_mac.cc
+++ b/chromium/services/device/generic_sensor/platform_sensor_ambient_light_mac.cc
@@ -50,9 +50,9 @@ enum LmuFunctionIndex {
};
PlatformSensorAmbientLightMac::PlatformSensorAmbientLightMac(
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
PlatformSensorProvider* provider)
- : PlatformSensor(SensorType::AMBIENT_LIGHT, std::move(mapping), provider),
+ : PlatformSensor(SensorType::AMBIENT_LIGHT, reading_buffer, provider),
light_sensor_port_(nullptr),
current_lux_(0.0) {}
diff --git a/chromium/services/device/generic_sensor/platform_sensor_ambient_light_mac.h b/chromium/services/device/generic_sensor/platform_sensor_ambient_light_mac.h
index 86c4871e2a4..012647b41fc 100644
--- a/chromium/services/device/generic_sensor/platform_sensor_ambient_light_mac.h
+++ b/chromium/services/device/generic_sensor/platform_sensor_ambient_light_mac.h
@@ -21,7 +21,7 @@ class PlatformSensorAmbientLightMac : public PlatformSensor {
public:
// Construct a platform sensor of AMBIENT_LIGHT, given a buffer |mapping|
// to write the result back.
- PlatformSensorAmbientLightMac(mojo::ScopedSharedBufferMapping mapping,
+ PlatformSensorAmbientLightMac(SensorReadingSharedBuffer* reading_buffer,
PlatformSensorProvider* provider);
mojom::ReportingMode GetReportingMode() override;
diff --git a/chromium/services/device/generic_sensor/platform_sensor_android.cc b/chromium/services/device/generic_sensor/platform_sensor_android.cc
index 85db6a70388..1be0f539a72 100644
--- a/chromium/services/device/generic_sensor/platform_sensor_android.cc
+++ b/chromium/services/device/generic_sensor/platform_sensor_android.cc
@@ -14,10 +14,10 @@ namespace device {
PlatformSensorAndroid::PlatformSensorAndroid(
mojom::SensorType type,
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
PlatformSensorProvider* provider,
const JavaRef<jobject>& java_sensor)
- : PlatformSensor(type, std::move(mapping), provider) {
+ : PlatformSensor(type, reading_buffer, provider) {
JNIEnv* env = AttachCurrentThread();
j_object_.Reset(java_sensor);
diff --git a/chromium/services/device/generic_sensor/platform_sensor_android.h b/chromium/services/device/generic_sensor/platform_sensor_android.h
index fecf930987a..7e3dd3d470d 100644
--- a/chromium/services/device/generic_sensor/platform_sensor_android.h
+++ b/chromium/services/device/generic_sensor/platform_sensor_android.h
@@ -14,7 +14,7 @@ namespace device {
class PlatformSensorAndroid : public PlatformSensor {
public:
PlatformSensorAndroid(mojom::SensorType type,
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
PlatformSensorProvider* provider,
const base::android::JavaRef<jobject>& java_sensor);
diff --git a/chromium/services/device/generic_sensor/platform_sensor_fusion.cc b/chromium/services/device/generic_sensor/platform_sensor_fusion.cc
index bf4b9805506..d7168a2b224 100644
--- a/chromium/services/device/generic_sensor/platform_sensor_fusion.cc
+++ b/chromium/services/device/generic_sensor/platform_sensor_fusion.cc
@@ -14,11 +14,11 @@ namespace device {
class PlatformSensorFusion::Factory : public base::RefCounted<Factory> {
public:
static void CreateSensorFusion(
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
std::unique_ptr<PlatformSensorFusionAlgorithm> fusion_algorithm,
const PlatformSensorProviderBase::CreateSensorCallback& callback,
PlatformSensorProvider* provider) {
- scoped_refptr<Factory> factory(new Factory(std::move(mapping),
+ scoped_refptr<Factory> factory(new Factory(reading_buffer,
std::move(fusion_algorithm),
std::move(callback), provider));
factory->FetchSources();
@@ -27,20 +27,20 @@ class PlatformSensorFusion::Factory : public base::RefCounted<Factory> {
private:
friend class base::RefCounted<Factory>;
- Factory(mojo::ScopedSharedBufferMapping mapping,
+ Factory(SensorReadingSharedBuffer* reading_buffer,
std::unique_ptr<PlatformSensorFusionAlgorithm> fusion_algorithm,
const PlatformSensorProviderBase::CreateSensorCallback& callback,
PlatformSensorProvider* provider)
: fusion_algorithm_(std::move(fusion_algorithm)),
result_callback_(std::move(callback)),
- mapping_(std::move(mapping)),
+ reading_buffer_(reading_buffer),
provider_(provider) {
const auto& types = fusion_algorithm_->source_types();
DCHECK(!types.empty());
// Make sure there are no dups.
DCHECK(std::adjacent_find(types.begin(), types.end()) == types.end());
DCHECK(result_callback_);
- DCHECK(mapping_);
+ DCHECK(reading_buffer_);
DCHECK(provider_);
}
@@ -74,7 +74,7 @@ class PlatformSensorFusion::Factory : public base::RefCounted<Factory> {
sources_map_[type] = std::move(sensor);
if (sources_map_.size() == fusion_algorithm_->source_types().size()) {
scoped_refptr<PlatformSensor> fusion_sensor(new PlatformSensorFusion(
- std::move(mapping_), provider_, std::move(fusion_algorithm_),
+ reading_buffer_, provider_, std::move(fusion_algorithm_),
std::move(sources_map_)));
std::move(result_callback_).Run(fusion_sensor);
}
@@ -82,29 +82,27 @@ class PlatformSensorFusion::Factory : public base::RefCounted<Factory> {
std::unique_ptr<PlatformSensorFusionAlgorithm> fusion_algorithm_;
PlatformSensorProviderBase::CreateSensorCallback result_callback_;
- mojo::ScopedSharedBufferMapping mapping_;
+ SensorReadingSharedBuffer* reading_buffer_; // NOTE: Owned by |provider_|.
PlatformSensorProvider* provider_;
PlatformSensorFusion::SourcesMap sources_map_;
};
// static
void PlatformSensorFusion::Create(
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
PlatformSensorProvider* provider,
std::unique_ptr<PlatformSensorFusionAlgorithm> fusion_algorithm,
const PlatformSensorProviderBase::CreateSensorCallback& callback) {
- Factory::CreateSensorFusion(std::move(mapping), std::move(fusion_algorithm),
+ Factory::CreateSensorFusion(reading_buffer, std::move(fusion_algorithm),
callback, provider);
}
PlatformSensorFusion::PlatformSensorFusion(
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
PlatformSensorProvider* provider,
std::unique_ptr<PlatformSensorFusionAlgorithm> fusion_algorithm,
PlatformSensorFusion::SourcesMap sources)
- : PlatformSensor(fusion_algorithm->fused_type(),
- std::move(mapping),
- provider),
+ : PlatformSensor(fusion_algorithm->fused_type(), reading_buffer, provider),
fusion_algorithm_(std::move(fusion_algorithm)),
source_sensors_(std::move(sources)),
reporting_mode_(mojom::ReportingMode::CONTINUOUS) {
diff --git a/chromium/services/device/generic_sensor/platform_sensor_fusion.h b/chromium/services/device/generic_sensor/platform_sensor_fusion.h
index 2f7ff71cd74..0ce3d9fb60f 100644
--- a/chromium/services/device/generic_sensor/platform_sensor_fusion.h
+++ b/chromium/services/device/generic_sensor/platform_sensor_fusion.h
@@ -38,7 +38,7 @@ class PlatformSensorFusion : public PlatformSensor,
// |callback| call: it can be either newly created object on success or
// nullptr on failure.
static void Create(
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
PlatformSensorProvider* provider,
std::unique_ptr<PlatformSensorFusionAlgorithm> fusion_algorithm,
const PlatformSensorProviderBase::CreateSensorCallback& callback);
@@ -64,7 +64,7 @@ class PlatformSensorFusion : public PlatformSensor,
using SourcesMapEntry =
std::pair<mojom::SensorType, scoped_refptr<PlatformSensor>>;
PlatformSensorFusion(
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
PlatformSensorProvider* provider,
std::unique_ptr<PlatformSensorFusionAlgorithm> fusion_algorithm,
SourcesMap sources);
diff --git a/chromium/services/device/generic_sensor/platform_sensor_fusion_unittest.cc b/chromium/services/device/generic_sensor/platform_sensor_fusion_unittest.cc
index 01d89bb54d6..91106d5734d 100644
--- a/chromium/services/device/generic_sensor/platform_sensor_fusion_unittest.cc
+++ b/chromium/services/device/generic_sensor/platform_sensor_fusion_unittest.cc
@@ -85,8 +85,9 @@ class PlatformSensorFusionTest : public DeviceServiceTestBase {
base::Bind(&PlatformSensorFusionTest::PlatformSensorFusionCallback,
base::Unretained(this));
SensorType type = fusion_algorithm->fused_type();
- PlatformSensorFusion::Create(provider_->GetMapping(type), provider_.get(),
- std::move(fusion_algorithm), callback);
+ PlatformSensorFusion::Create(provider_->GetSensorReadingBuffer(type),
+ provider_.get(), std::move(fusion_algorithm),
+ callback);
EXPECT_TRUE(platform_sensor_fusion_callback_called_);
}
diff --git a/chromium/services/device/generic_sensor/platform_sensor_linux.cc b/chromium/services/device/generic_sensor/platform_sensor_linux.cc
index b250981100c..19874eae972 100644
--- a/chromium/services/device/generic_sensor/platform_sensor_linux.cc
+++ b/chromium/services/device/generic_sensor/platform_sensor_linux.cc
@@ -25,11 +25,11 @@ bool HaveValuesChanged(const SensorReading& lhs, const SensorReading& rhs) {
PlatformSensorLinux::PlatformSensorLinux(
mojom::SensorType type,
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
PlatformSensorProvider* provider,
const SensorInfoLinux* sensor_device,
scoped_refptr<base::SingleThreadTaskRunner> polling_thread_task_runner)
- : PlatformSensor(type, std::move(mapping), provider),
+ : PlatformSensor(type, reading_buffer, provider),
default_configuration_(
PlatformSensorConfiguration(sensor_device->device_frequency)),
reporting_mode_(sensor_device->reporting_mode),
diff --git a/chromium/services/device/generic_sensor/platform_sensor_linux.h b/chromium/services/device/generic_sensor/platform_sensor_linux.h
index 310c8a17bee..7d2337ed25f 100644
--- a/chromium/services/device/generic_sensor/platform_sensor_linux.h
+++ b/chromium/services/device/generic_sensor/platform_sensor_linux.h
@@ -20,7 +20,7 @@ class PlatformSensorLinux : public PlatformSensor {
public:
PlatformSensorLinux(
mojom::SensorType type,
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
PlatformSensorProvider* provider,
const SensorInfoLinux* sensor_device,
scoped_refptr<base::SingleThreadTaskRunner> polling_thread_task_runner);
diff --git a/chromium/services/device/generic_sensor/platform_sensor_provider_android.cc b/chromium/services/device/generic_sensor/platform_sensor_provider_android.cc
index f45b87103a9..44500357a44 100644
--- a/chromium/services/device/generic_sensor/platform_sensor_provider_android.cc
+++ b/chromium/services/device/generic_sensor/platform_sensor_provider_android.cc
@@ -45,7 +45,7 @@ void PlatformSensorProviderAndroid::SetSensorManagerToNullForTesting() {
void PlatformSensorProviderAndroid::CreateSensorInternal(
mojom::SensorType type,
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
const CreateSensorCallback& callback) {
JNIEnv* env = AttachCurrentThread();
@@ -54,16 +54,13 @@ void PlatformSensorProviderAndroid::CreateSensorInternal(
// option.
switch (type) {
case mojom::SensorType::ABSOLUTE_ORIENTATION_EULER_ANGLES:
- CreateAbsoluteOrientationEulerAnglesSensor(env, std::move(mapping),
- callback);
+ CreateAbsoluteOrientationEulerAnglesSensor(env, reading_buffer, callback);
break;
case mojom::SensorType::ABSOLUTE_ORIENTATION_QUATERNION:
- CreateAbsoluteOrientationQuaternionSensor(env, std::move(mapping),
- callback);
+ CreateAbsoluteOrientationQuaternionSensor(env, reading_buffer, callback);
break;
case mojom::SensorType::RELATIVE_ORIENTATION_EULER_ANGLES:
- CreateRelativeOrientationEulerAnglesSensor(env, std::move(mapping),
- callback);
+ CreateRelativeOrientationEulerAnglesSensor(env, reading_buffer, callback);
break;
default: {
ScopedJavaLocalRef<jobject> sensor =
@@ -76,7 +73,7 @@ void PlatformSensorProviderAndroid::CreateSensorInternal(
}
auto concrete_sensor = base::MakeRefCounted<PlatformSensorAndroid>(
- type, std::move(mapping), this, sensor);
+ type, reading_buffer, this, sensor);
callback.Run(concrete_sensor);
break;
}
@@ -93,7 +90,7 @@ void PlatformSensorProviderAndroid::CreateSensorInternal(
// C: Combination of ACCELEROMETER and MAGNETOMETER
void PlatformSensorProviderAndroid::CreateAbsoluteOrientationEulerAnglesSensor(
JNIEnv* env,
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
const CreateSensorCallback& callback) {
if (static_cast<bool>(Java_PlatformSensorProvider_hasSensorType(
env, j_object_,
@@ -105,7 +102,7 @@ void PlatformSensorProviderAndroid::CreateAbsoluteOrientationEulerAnglesSensor(
// If this PlatformSensorFusion object is successfully initialized,
// |callback| will be run with a reference to this object.
- PlatformSensorFusion::Create(std::move(mapping), this,
+ PlatformSensorFusion::Create(reading_buffer, this,
std::move(sensor_fusion_algorithm), callback);
} else {
auto sensor_fusion_algorithm = std::make_unique<
@@ -113,7 +110,7 @@ void PlatformSensorProviderAndroid::CreateAbsoluteOrientationEulerAnglesSensor(
// If this PlatformSensorFusion object is successfully initialized,
// |callback| will be run with a reference to this object.
- PlatformSensorFusion::Create(std::move(mapping), this,
+ PlatformSensorFusion::Create(reading_buffer, this,
std::move(sensor_fusion_algorithm), callback);
}
}
@@ -125,7 +122,7 @@ void PlatformSensorProviderAndroid::CreateAbsoluteOrientationEulerAnglesSensor(
// B: ABSOLUTE_ORIENTATION_EULER_ANGLES
void PlatformSensorProviderAndroid::CreateAbsoluteOrientationQuaternionSensor(
JNIEnv* env,
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
const CreateSensorCallback& callback) {
ScopedJavaLocalRef<jobject> sensor = Java_PlatformSensorProvider_createSensor(
env, j_object_,
@@ -133,7 +130,7 @@ void PlatformSensorProviderAndroid::CreateAbsoluteOrientationQuaternionSensor(
if (sensor.obj()) {
auto concrete_sensor = base::MakeRefCounted<PlatformSensorAndroid>(
- mojom::SensorType::ABSOLUTE_ORIENTATION_QUATERNION, std::move(mapping),
+ mojom::SensorType::ABSOLUTE_ORIENTATION_QUATERNION, reading_buffer,
this, sensor);
callback.Run(concrete_sensor);
@@ -144,7 +141,7 @@ void PlatformSensorProviderAndroid::CreateAbsoluteOrientationQuaternionSensor(
// If this PlatformSensorFusion object is successfully initialized,
// |callback| will be run with a reference to this object.
- PlatformSensorFusion::Create(std::move(mapping), this,
+ PlatformSensorFusion::Create(reading_buffer, this,
std::move(sensor_fusion_algorithm), callback);
}
}
@@ -153,7 +150,7 @@ void PlatformSensorProviderAndroid::CreateAbsoluteOrientationQuaternionSensor(
// (if it uses TYPE_GAME_ROTATION_VECTOR directly).
void PlatformSensorProviderAndroid::CreateRelativeOrientationEulerAnglesSensor(
JNIEnv* env,
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
const CreateSensorCallback& callback) {
if (static_cast<bool>(Java_PlatformSensorProvider_hasSensorType(
env, j_object_,
@@ -165,7 +162,7 @@ void PlatformSensorProviderAndroid::CreateRelativeOrientationEulerAnglesSensor(
// If this PlatformSensorFusion object is successfully initialized,
// |callback| will be run with a reference to this object.
- PlatformSensorFusion::Create(std::move(mapping), this,
+ PlatformSensorFusion::Create(reading_buffer, this,
std::move(sensor_fusion_algorithm), callback);
} else {
callback.Run(nullptr);
diff --git a/chromium/services/device/generic_sensor/platform_sensor_provider_android.h b/chromium/services/device/generic_sensor/platform_sensor_provider_android.h
index 365694e3b42..5c4a311af9b 100644
--- a/chromium/services/device/generic_sensor/platform_sensor_provider_android.h
+++ b/chromium/services/device/generic_sensor/platform_sensor_provider_android.h
@@ -22,21 +22,21 @@ class PlatformSensorProviderAndroid : public PlatformSensorProvider {
protected:
void CreateSensorInternal(mojom::SensorType type,
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
const CreateSensorCallback& callback) override;
private:
void CreateAbsoluteOrientationEulerAnglesSensor(
JNIEnv* env,
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
const CreateSensorCallback& callback);
void CreateAbsoluteOrientationQuaternionSensor(
JNIEnv* env,
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
const CreateSensorCallback& callback);
void CreateRelativeOrientationEulerAnglesSensor(
JNIEnv* env,
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
const CreateSensorCallback& callback);
// Java object org.chromium.device.sensors.PlatformSensorProvider
diff --git a/chromium/services/device/generic_sensor/platform_sensor_provider_base.cc b/chromium/services/device/generic_sensor/platform_sensor_provider_base.cc
index 898989e9c86..887d84ee79b 100644
--- a/chromium/services/device/generic_sensor/platform_sensor_provider_base.cc
+++ b/chromium/services/device/generic_sensor/platform_sensor_provider_base.cc
@@ -35,8 +35,9 @@ void PlatformSensorProviderBase::CreateSensor(
return;
}
- mojo::ScopedSharedBufferMapping mapping = MapSharedBufferForType(type);
- if (!mapping) {
+ SensorReadingSharedBuffer* reading_buffer =
+ GetSensorReadingSharedBufferForType(type);
+ if (!reading_buffer) {
callback.Run(nullptr);
return;
}
@@ -48,7 +49,7 @@ void PlatformSensorProviderBase::CreateSensor(
requests_map_[type] = CallbackQueue({callback});
CreateSensorInternal(
- type, std::move(mapping),
+ type, reading_buffer,
base::Bind(&PlatformSensorProviderBase::NotifySensorCreated,
base::Unretained(this), type));
}
@@ -66,18 +67,30 @@ scoped_refptr<PlatformSensor> PlatformSensorProviderBase::GetSensor(
bool PlatformSensorProviderBase::CreateSharedBufferIfNeeded() {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
- if (shared_buffer_handle_.is_valid())
+ if (shared_buffer_mapping_.get())
return true;
- shared_buffer_handle_ =
- mojo::SharedBufferHandle::Create(kSharedBufferSizeInBytes);
- return shared_buffer_handle_.is_valid();
+ if (!shared_buffer_handle_.is_valid()) {
+ shared_buffer_handle_ =
+ mojo::SharedBufferHandle::Create(kSharedBufferSizeInBytes);
+ if (!shared_buffer_handle_.is_valid())
+ return false;
+ }
+
+ // Create a writable mapping for the buffer as soon as possible, that will be
+ // used by all platform sensor implementations that want to update it. Note
+ // that on Android, cloning the shared memory handle readonly (as performed
+ // by CloneSharedBufferHandle()) will seal the region read-only, preventing
+ // future writable mappings to be created (but this one will survive).
+ shared_buffer_mapping_ = shared_buffer_handle_->Map(kSharedBufferSizeInBytes);
+ return shared_buffer_mapping_.get() != nullptr;
}
void PlatformSensorProviderBase::FreeResourcesIfNeeded() {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
if (sensor_map_.empty() && requests_map_.empty()) {
FreeResources();
+ shared_buffer_mapping_.reset();
shared_buffer_handle_.reset();
}
}
@@ -147,13 +160,16 @@ PlatformSensorProviderBase::GetPendingRequestTypes() {
return request_types;
}
-mojo::ScopedSharedBufferMapping
-PlatformSensorProviderBase::MapSharedBufferForType(mojom::SensorType type) {
- mojo::ScopedSharedBufferMapping mapping = shared_buffer_handle_->MapAtOffset(
- kReadingBufferSize, SensorReadingSharedBuffer::GetOffset(type));
- if (mapping)
- memset(mapping.get(), 0, kReadingBufferSize);
- return mapping;
+SensorReadingSharedBuffer*
+PlatformSensorProviderBase::GetSensorReadingSharedBufferForType(
+ mojom::SensorType type) {
+ auto* ptr = static_cast<char*>(shared_buffer_mapping_.get());
+ if (!ptr)
+ return nullptr;
+
+ ptr += SensorReadingSharedBuffer::GetOffset(type);
+ memset(ptr, 0, kReadingBufferSize);
+ return reinterpret_cast<SensorReadingSharedBuffer*>(ptr);
}
} // namespace device
diff --git a/chromium/services/device/generic_sensor/platform_sensor_provider_base.h b/chromium/services/device/generic_sensor/platform_sensor_provider_base.h
index baed45c5bf2..de534d0b743 100644
--- a/chromium/services/device/generic_sensor/platform_sensor_provider_base.h
+++ b/chromium/services/device/generic_sensor/platform_sensor_provider_base.h
@@ -45,7 +45,7 @@ class PlatformSensorProviderBase {
// Method that must be implemented by platform specific classes.
virtual void CreateSensorInternal(mojom::SensorType type,
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
const CreateSensorCallback& callback) = 0;
// Implementations might override this method to free resources when there
@@ -59,7 +59,7 @@ class PlatformSensorProviderBase {
bool CreateSharedBufferIfNeeded();
- mojo::ScopedSharedBufferMapping MapSharedBufferForType(
+ SensorReadingSharedBuffer* GetSensorReadingSharedBufferForType(
mojom::SensorType type);
THREAD_CHECKER(thread_checker_);
@@ -76,6 +76,7 @@ class PlatformSensorProviderBase {
std::map<mojom::SensorType, PlatformSensor*> sensor_map_;
std::map<mojom::SensorType, CallbackQueue> requests_map_;
mojo::ScopedSharedBufferHandle shared_buffer_handle_;
+ mojo::ScopedSharedBufferMapping shared_buffer_mapping_;
DISALLOW_COPY_AND_ASSIGN(PlatformSensorProviderBase);
};
diff --git a/chromium/services/device/generic_sensor/platform_sensor_provider_linux.cc b/chromium/services/device/generic_sensor/platform_sensor_provider_linux.cc
index f346de961ca..4746313891d 100644
--- a/chromium/services/device/generic_sensor/platform_sensor_provider_linux.cc
+++ b/chromium/services/device/generic_sensor/platform_sensor_provider_linux.cc
@@ -53,7 +53,7 @@ PlatformSensorProviderLinux::~PlatformSensorProviderLinux() {
void PlatformSensorProviderLinux::CreateSensorInternal(
mojom::SensorType type,
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
const CreateSensorCallback& callback) {
if (!sensor_device_manager_)
sensor_device_manager_.reset(new SensorDeviceManager());
@@ -61,7 +61,7 @@ void PlatformSensorProviderLinux::CreateSensorInternal(
if (IsFusionSensorType(type)) {
// For sensor fusion the device nodes initialization will happen
// during fetching the source sensors.
- CreateFusionSensor(type, std::move(mapping), callback);
+ CreateFusionSensor(type, reading_buffer, callback);
return;
}
@@ -81,12 +81,12 @@ void PlatformSensorProviderLinux::CreateSensorInternal(
return;
}
- SensorDeviceFound(type, std::move(mapping), callback, sensor_device);
+ SensorDeviceFound(type, reading_buffer, callback, sensor_device);
}
void PlatformSensorProviderLinux::SensorDeviceFound(
mojom::SensorType type,
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
const PlatformSensorProviderBase::CreateSensorCallback& callback,
const SensorInfoLinux* sensor_device) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
@@ -98,7 +98,7 @@ void PlatformSensorProviderLinux::SensorDeviceFound(
}
scoped_refptr<PlatformSensorLinux> sensor =
- new PlatformSensorLinux(type, std::move(mapping), this, sensor_device,
+ new PlatformSensorLinux(type, reading_buffer, this, sensor_device,
polling_thread_->task_runner());
callback.Run(sensor);
}
@@ -201,11 +201,11 @@ void PlatformSensorProviderLinux::CreateSensorAndNotify(
SensorInfoLinux* sensor_device) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
scoped_refptr<PlatformSensorLinux> sensor;
- mojo::ScopedSharedBufferMapping mapping = MapSharedBufferForType(type);
- if (sensor_device && mapping && StartPollingThread()) {
- sensor =
- new PlatformSensorLinux(type, std::move(mapping), this, sensor_device,
- polling_thread_->task_runner());
+ SensorReadingSharedBuffer* reading_buffer =
+ GetSensorReadingSharedBufferForType(type);
+ if (sensor_device && reading_buffer && StartPollingThread()) {
+ sensor = new PlatformSensorLinux(type, reading_buffer, this, sensor_device,
+ polling_thread_->task_runner());
}
NotifySensorCreated(type, sensor);
}
@@ -243,7 +243,7 @@ void PlatformSensorProviderLinux::OnDeviceRemoved(
void PlatformSensorProviderLinux::CreateFusionSensor(
mojom::SensorType type,
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
const CreateSensorCallback& callback) {
DCHECK(IsFusionSensorType(type));
std::unique_ptr<PlatformSensorFusionAlgorithm> fusion_algorithm;
@@ -266,7 +266,7 @@ void PlatformSensorProviderLinux::CreateFusionSensor(
}
DCHECK(fusion_algorithm);
- PlatformSensorFusion::Create(std::move(mapping), this,
+ PlatformSensorFusion::Create(reading_buffer, this,
std::move(fusion_algorithm), callback);
}
diff --git a/chromium/services/device/generic_sensor/platform_sensor_provider_linux.h b/chromium/services/device/generic_sensor/platform_sensor_provider_linux.h
index 11396719099..e308233d196 100644
--- a/chromium/services/device/generic_sensor/platform_sensor_provider_linux.h
+++ b/chromium/services/device/generic_sensor/platform_sensor_provider_linux.h
@@ -37,7 +37,7 @@ class PlatformSensorProviderLinux : public PlatformSensorProvider,
~PlatformSensorProviderLinux() override;
void CreateSensorInternal(mojom::SensorType type,
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
const CreateSensorCallback& callback) override;
void FreeResources() override;
@@ -55,7 +55,7 @@ class PlatformSensorProviderLinux : public PlatformSensorProvider,
void SensorDeviceFound(
mojom::SensorType type,
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
const PlatformSensorProviderBase::CreateSensorCallback& callback,
const SensorInfoLinux* sensor_device);
@@ -92,7 +92,7 @@ class PlatformSensorProviderLinux : public PlatformSensorProvider,
const std::string& device_node) override;
void CreateFusionSensor(mojom::SensorType type,
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
const CreateSensorCallback& callback);
// Set to true when enumeration is ready.
diff --git a/chromium/services/device/generic_sensor/platform_sensor_provider_mac.cc b/chromium/services/device/generic_sensor/platform_sensor_provider_mac.cc
index dd77644d2af..8cbdbc1f264 100644
--- a/chromium/services/device/generic_sensor/platform_sensor_provider_mac.cc
+++ b/chromium/services/device/generic_sensor/platform_sensor_provider_mac.cc
@@ -27,19 +27,19 @@ PlatformSensorProviderMac::~PlatformSensorProviderMac() = default;
void PlatformSensorProviderMac::CreateSensorInternal(
mojom::SensorType type,
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
const CreateSensorCallback& callback) {
// Create Sensors here.
switch (type) {
case mojom::SensorType::AMBIENT_LIGHT: {
scoped_refptr<PlatformSensor> sensor =
- new PlatformSensorAmbientLightMac(std::move(mapping), this);
+ new PlatformSensorAmbientLightMac(reading_buffer, this);
callback.Run(std::move(sensor));
break;
}
case mojom::SensorType::ACCELEROMETER: {
callback.Run(base::MakeRefCounted<PlatformSensorAccelerometerMac>(
- std::move(mapping), this));
+ reading_buffer, this));
break;
}
case mojom::SensorType::RELATIVE_ORIENTATION_EULER_ANGLES: {
@@ -47,7 +47,7 @@ void PlatformSensorProviderMac::CreateSensorInternal(
RelativeOrientationEulerAnglesFusionAlgorithmUsingAccelerometer>();
// If this PlatformSensorFusion object is successfully initialized,
// |callback| will be run with a reference to this object.
- PlatformSensorFusion::Create(std::move(mapping), this,
+ PlatformSensorFusion::Create(reading_buffer, this,
std::move(fusion_algorithm), callback);
break;
}
@@ -59,7 +59,7 @@ void PlatformSensorProviderMac::CreateSensorInternal(
// If this PlatformSensorFusion object is successfully initialized,
// |callback| will be run with a reference to this object.
PlatformSensorFusion::Create(
- std::move(mapping), this,
+ reading_buffer, this,
std::move(orientation_quaternion_fusion_algorithm_using_euler_angles),
callback);
break;
diff --git a/chromium/services/device/generic_sensor/platform_sensor_provider_mac.h b/chromium/services/device/generic_sensor/platform_sensor_provider_mac.h
index 809a4f21609..79d11b1ff35 100644
--- a/chromium/services/device/generic_sensor/platform_sensor_provider_mac.h
+++ b/chromium/services/device/generic_sensor/platform_sensor_provider_mac.h
@@ -18,7 +18,7 @@ class PlatformSensorProviderMac : public PlatformSensorProvider {
protected:
void CreateSensorInternal(mojom::SensorType type,
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
const CreateSensorCallback& callback) override;
private:
diff --git a/chromium/services/device/generic_sensor/platform_sensor_provider_win.cc b/chromium/services/device/generic_sensor/platform_sensor_provider_win.cc
index 212b393c1e1..15602986141 100644
--- a/chromium/services/device/generic_sensor/platform_sensor_provider_win.cc
+++ b/chromium/services/device/generic_sensor/platform_sensor_provider_win.cc
@@ -61,7 +61,7 @@ PlatformSensorProviderWin::~PlatformSensorProviderWin() = default;
void PlatformSensorProviderWin::CreateSensorInternal(
mojom::SensorType type,
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
const CreateSensorCallback& callback) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
if (!StartSensorThread()) {
@@ -77,8 +77,8 @@ void PlatformSensorProviderWin::CreateSensorInternal(
// If this PlatformSensorFusion object is successfully initialized,
// |callback| will be run with a reference to this object.
PlatformSensorFusion::Create(
- std::move(mapping), this,
- std::move(linear_acceleration_fusion_algorithm), callback);
+ reading_buffer, this, std::move(linear_acceleration_fusion_algorithm),
+ callback);
break;
}
@@ -89,8 +89,7 @@ void PlatformSensorProviderWin::CreateSensorInternal(
base::Bind(&PlatformSensorProviderWin::CreateSensorReader,
base::Unretained(this), type),
base::Bind(&PlatformSensorProviderWin::SensorReaderCreated,
- base::Unretained(this), type, base::Passed(&mapping),
- callback));
+ base::Unretained(this), type, reading_buffer, callback));
break;
}
}
@@ -119,7 +118,7 @@ void PlatformSensorProviderWin::StopSensorThread() {
void PlatformSensorProviderWin::SensorReaderCreated(
mojom::SensorType type,
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
const CreateSensorCallback& callback,
std::unique_ptr<PlatformSensorReaderWin> sensor_reader) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
@@ -129,7 +128,7 @@ void PlatformSensorProviderWin::SensorReaderCreated(
}
scoped_refptr<PlatformSensor> sensor = new PlatformSensorWin(
- type, std::move(mapping), this, sensor_thread_->task_runner(),
+ type, reading_buffer, this, sensor_thread_->task_runner(),
std::move(sensor_reader));
callback.Run(sensor);
}
diff --git a/chromium/services/device/generic_sensor/platform_sensor_provider_win.h b/chromium/services/device/generic_sensor/platform_sensor_provider_win.h
index 208667d0e6d..6b621b79809 100644
--- a/chromium/services/device/generic_sensor/platform_sensor_provider_win.h
+++ b/chromium/services/device/generic_sensor/platform_sensor_provider_win.h
@@ -39,7 +39,7 @@ class PlatformSensorProviderWin final : public PlatformSensorProvider {
// PlatformSensorProvider interface implementation.
void FreeResources() override;
void CreateSensorInternal(mojom::SensorType type,
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
const CreateSensorCallback& callback) override;
private:
@@ -52,7 +52,7 @@ class PlatformSensorProviderWin final : public PlatformSensorProvider {
mojom::SensorType type);
void SensorReaderCreated(
mojom::SensorType type,
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
const CreateSensorCallback& callback,
std::unique_ptr<PlatformSensorReaderWin> sensor_reader);
diff --git a/chromium/services/device/generic_sensor/platform_sensor_win.cc b/chromium/services/device/generic_sensor/platform_sensor_win.cc
index d85535cd8c9..d1ee11459c5 100644
--- a/chromium/services/device/generic_sensor/platform_sensor_win.cc
+++ b/chromium/services/device/generic_sensor/platform_sensor_win.cc
@@ -14,11 +14,11 @@ constexpr double kDefaultSensorReportingFrequency = 5.0;
PlatformSensorWin::PlatformSensorWin(
mojom::SensorType type,
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
PlatformSensorProvider* provider,
scoped_refptr<base::SingleThreadTaskRunner> sensor_thread_runner,
std::unique_ptr<PlatformSensorReaderWin> sensor_reader)
- : PlatformSensor(type, std::move(mapping), provider),
+ : PlatformSensor(type, reading_buffer, provider),
sensor_thread_runner_(sensor_thread_runner),
sensor_reader_(sensor_reader.release()),
weak_factory_(this) {
diff --git a/chromium/services/device/generic_sensor/platform_sensor_win.h b/chromium/services/device/generic_sensor/platform_sensor_win.h
index b2bd4c223cf..bae519df27f 100644
--- a/chromium/services/device/generic_sensor/platform_sensor_win.h
+++ b/chromium/services/device/generic_sensor/platform_sensor_win.h
@@ -27,7 +27,7 @@ class PlatformSensorWin final : public PlatformSensor,
public:
PlatformSensorWin(
mojom::SensorType type,
- mojo::ScopedSharedBufferMapping mapping,
+ SensorReadingSharedBuffer* reading_buffer,
PlatformSensorProvider* provider,
scoped_refptr<base::SingleThreadTaskRunner> sensor_thread_runner,
std::unique_ptr<PlatformSensorReaderWin> sensor_reader);