Chromium Code Reviews| Index: content/renderer/device_sensors/device_light_event_pump.cc |
| diff --git a/content/renderer/device_sensors/device_light_event_pump.cc b/content/renderer/device_sensors/device_light_event_pump.cc |
| index a20919d968d9f3637afe8fb3e1435255d98890ce..2a1f25c7d842bc34a5bad1cb132d7501d295fd39 100644 |
| --- a/content/renderer/device_sensors/device_light_event_pump.cc |
| +++ b/content/renderer/device_sensors/device_light_event_pump.cc |
| @@ -37,13 +37,24 @@ bool DeviceLightEventPump::OnControlMessageReceived( |
| void DeviceLightEventPump::FireEvent() { |
| DCHECK(listener()); |
| DeviceLightData data; |
| - bool did_return_light_data = reader_->GetLatestData(&data); |
| - if (did_return_light_data && data.value != last_seen_data_) { |
| + if (reader_->GetLatestData(&data) && ShouldFireEvent(data.value)) { |
| last_seen_data_ = data.value; |
| listener()->didChangeDeviceLight(data.value); |
| } |
| } |
| +bool DeviceLightEventPump::ShouldFireEvent(double lux) const { |
| + if (lux < 0) |
| + return false; |
| + |
| + if (lux == std::numeric_limits<double>::infinity()) { |
| + // no data can be provided, this is a null event. |
|
timvolodine
2014/09/10 13:47:25
nit: strictly speaking it's not a null event, some
riju_
2014/09/22 08:22:21
Done.
|
| + return true; |
| + } |
| + |
| + return lux != last_seen_data_; |
| +} |
| + |
| bool DeviceLightEventPump::InitializeReader(base::SharedMemoryHandle handle) { |
| if (!reader_) |
| reader_.reset(new DeviceLightSharedMemoryReader()); |