OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 10 matching lines...) Expand all Loading... |
21 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 21 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
24 */ | 24 */ |
25 | 25 |
26 #ifndef WebGeolocationController_h | 26 #ifndef WebGeolocationController_h |
27 #define WebGeolocationController_h | 27 #define WebGeolocationController_h |
28 | 28 |
29 #include "../platform/WebCommon.h" | 29 #include "../platform/WebCommon.h" |
30 #include "../platform/WebNonCopyable.h" | 30 #include "../platform/WebNonCopyable.h" |
| 31 #include "../platform/WebPrivatePtr.h" |
31 | 32 |
32 namespace blink { | 33 namespace blink { |
33 | 34 |
34 class GeolocationController; | 35 class GeolocationController; |
| 36 class GeolocationControllerPrivate; |
35 class WebGeolocationPosition; | 37 class WebGeolocationPosition; |
36 class WebGeolocationError; | 38 class WebGeolocationError; |
37 | 39 |
38 class WebGeolocationController : public WebNonCopyable { | 40 class WebGeolocationController : public WebNonCopyable { |
39 public: | 41 public: |
| 42 ~WebGeolocationController() { reset(); } |
| 43 |
40 BLINK_EXPORT void positionChanged(const WebGeolocationPosition&); | 44 BLINK_EXPORT void positionChanged(const WebGeolocationPosition&); |
41 BLINK_EXPORT void errorOccurred(const WebGeolocationError&); | 45 BLINK_EXPORT void errorOccurred(const WebGeolocationError&); |
42 | 46 |
43 #if BLINK_IMPLEMENTATION | 47 #if BLINK_IMPLEMENTATION |
44 WebGeolocationController(GeolocationController* c) | 48 WebGeolocationController(GeolocationController*); |
45 : m_private(c) | |
46 { | |
47 } | |
48 | |
49 GeolocationController* controller() const { return m_private; } | |
50 #endif | 49 #endif |
51 | 50 |
52 private: | 51 private: |
53 // No implementation for the default constructor. Declared private to ensure
that no instances | 52 // No implementation for the default constructor. Declared private to ensure
that no instances |
54 // can be created by the consumers of Chromium WebKit. | 53 // can be created by the consumers of Chromium WebKit. |
55 WebGeolocationController(); | 54 WebGeolocationController(); |
56 | 55 |
57 // This bare pointer is owned and kept alive by the frame of the | 56 BLINK_EXPORT void reset(); |
58 // WebLocalFrame which creates this controller object. | 57 |
59 GeolocationController* m_private; | 58 WebPrivatePtr<GeolocationControllerPrivate> m_private; |
60 }; | 59 }; |
61 | 60 |
62 } // namespace blink | 61 } // namespace blink |
63 | 62 |
64 #endif // WebGeolocationController_h | 63 #endif // WebGeolocationController_h |
OLD | NEW |