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

Unified Diff: content/renderer/device_sensors/device_light_event_pump.cc

Issue 292693004: [DeviceLight] Browser+java part (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: null event test case Created 6 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
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());

Powered by Google App Engine
This is Rietveld 408576698