Index: content/browser/device_orientation/data_fetcher_shared_memory_default.cc |
diff --git a/content/browser/device_orientation/data_fetcher_shared_memory_default.cc b/content/browser/device_orientation/data_fetcher_shared_memory_default.cc |
index ce7b5676e6686ad75d4f5cb4299aaca634a50767..f2dfb299a33ff45f4ac30dc57be7917c18ee7fcb 100644 |
--- a/content/browser/device_orientation/data_fetcher_shared_memory_default.cc |
+++ b/content/browser/device_orientation/data_fetcher_shared_memory_default.cc |
@@ -9,6 +9,15 @@ |
namespace { |
+static bool SetLightBuffer(content::DeviceLightHardwareBuffer* buffer, |
+ bool enabled) { |
+ if (!buffer) |
+ return false; |
+ buffer->seqlock.WriteBegin(); |
+ buffer->seqlock.WriteEnd(); |
+ return true; |
+} |
+ |
static bool SetMotionBuffer(content::DeviceMotionHardwareBuffer* buffer, |
bool enabled) { |
if (!buffer) |
@@ -29,12 +38,12 @@ static bool SetOrientationBuffer( |
return true; |
} |
-} |
+} // namespace |
namespace content { |
DataFetcherSharedMemory::DataFetcherSharedMemory() |
- : motion_buffer_(NULL), orientation_buffer_(NULL) { |
+ : light_buffer_(NULL), motion_buffer_(NULL), orientation_buffer_(NULL) { |
} |
DataFetcherSharedMemory::~DataFetcherSharedMemory() { |
@@ -44,6 +53,10 @@ bool DataFetcherSharedMemory::Start(ConsumerType consumer_type, void* buffer) { |
DCHECK(buffer); |
switch (consumer_type) { |
+ case CONSUMER_TYPE_LIGHT: |
+ light_buffer_ = static_cast<DeviceLightHardwareBuffer*>(buffer); |
+ UMA_HISTOGRAM_BOOLEAN("InertialSensor.LightDefaultAvailable", false); |
+ return SetLightBuffer(light_buffer_, true); |
case CONSUMER_TYPE_MOTION: |
motion_buffer_ = static_cast<DeviceMotionHardwareBuffer*>(buffer); |
UMA_HISTOGRAM_BOOLEAN("InertialSensor.MotionDefaultAvailable", false); |
@@ -61,8 +74,9 @@ bool DataFetcherSharedMemory::Start(ConsumerType consumer_type, void* buffer) { |
} |
bool DataFetcherSharedMemory::Stop(ConsumerType consumer_type) { |
- |
switch (consumer_type) { |
+ case CONSUMER_TYPE_LIGHT: |
+ return SetLightBuffer(light_buffer_, false); |
case CONSUMER_TYPE_MOTION: |
return SetMotionBuffer(motion_buffer_, false); |
case CONSUMER_TYPE_ORIENTATION: |