Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "modules/sensor/Sensor.h" | 5 #include "modules/sensor/Sensor.h" |
| 6 | 6 |
| 7 #include "core/dom/Document.h" | 7 #include "core/dom/Document.h" |
| 8 #include "core/dom/ExceptionCode.h" | 8 #include "core/dom/ExceptionCode.h" |
| 9 #include "core/dom/ExecutionContextTask.h" | 9 #include "core/dom/ExecutionContextTask.h" |
| 10 #include "core/inspector/ConsoleMessage.h" | 10 #include "core/inspector/ConsoleMessage.h" |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 131 EventTargetWithInlineData::trace(visitor); | 131 EventTargetWithInlineData::trace(visitor); |
| 132 } | 132 } |
| 133 | 133 |
| 134 bool Sensor::hasPendingActivity() const { | 134 bool Sensor::hasPendingActivity() const { |
| 135 if (m_state == Sensor::SensorState::IDLE || | 135 if (m_state == Sensor::SensorState::IDLE || |
| 136 m_state == Sensor::SensorState::ERRORED) | 136 m_state == Sensor::SensorState::ERRORED) |
| 137 return false; | 137 return false; |
| 138 return hasEventListeners(); | 138 return hasEventListeners(); |
| 139 } | 139 } |
| 140 | 140 |
| 141 auto Sensor::createSensorConfig() -> SensorConfigurationPtr { | |
| 142 auto result = SensorConfiguration::New(); | |
| 143 | |
| 144 double defaultFrequency = m_sensorProxy->defaultConfig()->frequency; | |
| 145 double maximumFrequency = m_sensorProxy->maximumFrequency(); | |
| 146 | |
| 147 double frequency = m_sensorOptions.hasFrequency() | |
| 148 ? m_sensorOptions.frequency() | |
| 149 : defaultFrequency; | |
| 150 | |
| 151 if (frequency > maximumFrequency) | |
| 152 frequency = maximumFrequency; | |
| 153 | |
| 154 if (frequency > maximumFrequency) | |
| 155 frequency = maximumFrequency; | |
|
haraken
2016/11/03 13:58:45
Duplicated code.
Mikhail
2016/11/04 21:17:45
ah, thanks!
| |
| 156 | |
| 157 result->frequency = frequency; | |
| 158 return result; | |
| 159 } | |
| 160 | |
| 141 void Sensor::initSensorProxyIfNeeded() { | 161 void Sensor::initSensorProxyIfNeeded() { |
| 142 if (m_sensorProxy) | 162 if (m_sensorProxy) |
| 143 return; | 163 return; |
| 144 | 164 |
| 145 Document* document = toDocument(getExecutionContext()); | 165 Document* document = toDocument(getExecutionContext()); |
| 146 if (!document || !document->frame()) | 166 if (!document || !document->frame()) |
| 147 return; | 167 return; |
| 148 | 168 |
| 149 m_sensorProxy = | 169 m_sensorProxy = |
| 150 SensorProviderProxy::from(document->frame())->getOrCreateSensor(m_type); | 170 SensorProviderProxy::from(document->frame())->getOrCreateSensor(m_type); |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 227 DCHECK(m_sensorReading); | 247 DCHECK(m_sensorReading); |
| 228 } | 248 } |
| 229 | 249 |
| 230 m_sensorProxy->addObserver(this); | 250 m_sensorProxy->addObserver(this); |
| 231 if (!m_sensorProxy->isInitialized()) { | 251 if (!m_sensorProxy->isInitialized()) { |
| 232 m_sensorProxy->initialize(); | 252 m_sensorProxy->initialize(); |
| 233 return; | 253 return; |
| 234 } | 254 } |
| 235 | 255 |
| 236 if (!m_configuration) { | 256 if (!m_configuration) { |
| 237 m_configuration = | 257 m_configuration = createSensorConfig(); |
| 238 createSensorConfig(m_sensorOptions, *m_sensorProxy->defaultConfig()); | |
| 239 DCHECK(m_configuration); | 258 DCHECK(m_configuration); |
| 259 DCHECK(m_configuration->frequency && | |
|
timvolodine
2016/11/03 17:32:56
nit: m_configuration->frequency > 0 ? (or maybe >=
Mikhail
2016/11/04 21:17:45
Done.
| |
| 260 m_configuration->frequency <= m_sensorProxy->maximumFrequency()); | |
| 240 } | 261 } |
| 241 | 262 |
| 242 auto startCallback = | 263 auto startCallback = |
| 243 WTF::bind(&Sensor::onStartRequestCompleted, wrapWeakPersistent(this)); | 264 WTF::bind(&Sensor::onStartRequestCompleted, wrapWeakPersistent(this)); |
| 244 m_sensorProxy->addConfiguration(m_configuration->Clone(), | 265 m_sensorProxy->addConfiguration(m_configuration->Clone(), |
| 245 std::move(startCallback)); | 266 std::move(startCallback)); |
| 246 } | 267 } |
| 247 | 268 |
| 248 void Sensor::stopListening() { | 269 void Sensor::stopListening() { |
| 249 DCHECK(m_sensorProxy); | 270 DCHECK(m_sensorProxy); |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 331 void Sensor::notifyStateChanged() { | 352 void Sensor::notifyStateChanged() { |
| 332 dispatchEvent(Event::create(EventTypeNames::statechange)); | 353 dispatchEvent(Event::create(EventTypeNames::statechange)); |
| 333 } | 354 } |
| 334 | 355 |
| 335 void Sensor::notifyError(DOMException* error) { | 356 void Sensor::notifyError(DOMException* error) { |
| 336 dispatchEvent( | 357 dispatchEvent( |
| 337 SensorErrorEvent::create(EventTypeNames::error, std::move(error))); | 358 SensorErrorEvent::create(EventTypeNames::error, std::move(error))); |
| 338 } | 359 } |
| 339 | 360 |
| 340 } // namespace blink | 361 } // namespace blink |
| OLD | NEW |