Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "config.h" | |
| 6 #include "modules/geolocation/PositionOptions.h" | |
| 7 | |
| 8 #include "bindings/core/v8/Dictionary.h" | |
| 9 #include <limits.h> | |
| 10 | |
| 11 namespace blink { | |
| 12 | |
| 13 PositionOptions* PositionOptions::create(const Dictionary& options) | |
| 14 { | |
| 15 return new PositionOptions(options); | |
| 16 } | |
| 17 | |
| 18 PositionOptions::PositionOptions(const Dictionary& options) | |
| 19 : m_highAccuracy(false) | |
| 20 , m_maximumAge(0) | |
| 21 , m_timeout(std::numeric_limits<unsigned>::max()) | |
| 22 { | |
| 23 if (options.hasProperty("enableHighAccuracy")) { | |
| 24 bool highAccuracy; | |
| 25 if (DictionaryHelper::get(options, "enableHighAccuracy", highAccuracy)) | |
| 26 m_highAccuracy = highAccuracy; | |
| 27 } | |
| 28 if (options.hasProperty("maximumAge")) { | |
| 29 double maximumAge; | |
| 30 if (DictionaryHelper::get(options, "maximumAge", maximumAge)) { | |
| 31 if (maximumAge < 0) | |
| 32 m_maximumAge = 0; | |
| 33 else if (maximumAge > std::numeric_limits<unsigned>::max()) | |
| 34 m_maximumAge = std::numeric_limits<unsigned>::max(); | |
| 35 else | |
| 36 m_maximumAge = maximumAge; | |
|
haraken
2014/11/20 16:02:07
Do we have test cases for the edge case behavior (
zino
2014/11/20 17:27:15
We already have tests.
|maximumAge|:
https://cod
| |
| 37 } | |
| 38 } | |
| 39 if (options.hasProperty("timeout")) { | |
| 40 double timeout; | |
| 41 if (DictionaryHelper::get(options, "timeout", timeout)) { | |
| 42 if (timeout < 0) | |
| 43 m_timeout = 0; | |
| 44 else if (timeout > std::numeric_limits<unsigned>::max()) | |
| 45 m_timeout = std::numeric_limits<unsigned>::max(); | |
| 46 else | |
| 47 m_timeout = timeout; | |
| 48 } | |
| 49 } | |
| 50 } | |
| 51 | |
| 52 } // namespace blink | |
| OLD | NEW |