Index: third_party/WebKit/Source/modules/sensor/Sensor.cpp |
diff --git a/third_party/WebKit/Source/modules/sensor/Sensor.cpp b/third_party/WebKit/Source/modules/sensor/Sensor.cpp |
index c9f902d42ad470d7f9d58be39494524c9fa69d63..0a0ded64b3d126ed3e66cfde7491dc0d3b350ee7 100644 |
--- a/third_party/WebKit/Source/modules/sensor/Sensor.cpp |
+++ b/third_party/WebKit/Source/modules/sensor/Sensor.cpp |
@@ -138,6 +138,23 @@ bool Sensor::hasPendingActivity() const { |
return hasEventListeners(); |
} |
+auto Sensor::createSensorConfig() -> SensorConfigurationPtr { |
+ auto result = SensorConfiguration::New(); |
+ |
+ double defaultFrequency = m_sensorProxy->defaultConfig()->frequency; |
+ double maximumFrequency = m_sensorProxy->maximumFrequency(); |
+ |
+ double frequency = m_sensorOptions.hasFrequency() |
+ ? m_sensorOptions.frequency() |
+ : defaultFrequency; |
+ |
+ if (frequency > maximumFrequency) |
+ frequency = maximumFrequency; |
+ |
+ result->frequency = frequency; |
+ return result; |
+} |
+ |
void Sensor::initSensorProxyIfNeeded() { |
if (m_sensorProxy) |
return; |
@@ -235,9 +252,10 @@ void Sensor::startListening() { |
} |
if (!m_configuration) { |
- m_configuration = |
- createSensorConfig(m_sensorOptions, *m_sensorProxy->defaultConfig()); |
+ m_configuration = createSensorConfig(); |
DCHECK(m_configuration); |
+ DCHECK(m_configuration->frequency > 0 && |
+ m_configuration->frequency <= m_sensorProxy->maximumFrequency()); |
} |
auto startCallback = |