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 |