OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2009 Apple Inc. All rights reserved. | 2 * Copyright (C) 2009 Apple 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 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 22 matching lines...) Expand all Loading... | |
33 #include "wtf/HashSet.h" | 33 #include "wtf/HashSet.h" |
34 #include "wtf/Noncopyable.h" | 34 #include "wtf/Noncopyable.h" |
35 | 35 |
36 namespace WebCore { | 36 namespace WebCore { |
37 | 37 |
38 class GeolocationInspectorAgent; | 38 class GeolocationInspectorAgent; |
39 class GeolocationClient; | 39 class GeolocationClient; |
40 class GeolocationError; | 40 class GeolocationError; |
41 class GeolocationPosition; | 41 class GeolocationPosition; |
42 | 42 |
43 class GeolocationController FINAL : public Supplement<LocalFrame>, public PageLi fecycleObserver { | 43 class GeolocationController FINAL : public NoBaseWillBeGarbageCollectedFinalized <GeolocationController>, public WillBeHeapSupplement<LocalFrame>, public PageLif ecycleObserver { |
44 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(GeolocationController); | |
44 WTF_MAKE_NONCOPYABLE(GeolocationController); | 45 WTF_MAKE_NONCOPYABLE(GeolocationController); |
45 public: | 46 public: |
46 virtual ~GeolocationController(); | 47 virtual ~GeolocationController(); |
47 | 48 |
48 static PassOwnPtr<GeolocationController> create(LocalFrame&, GeolocationClie nt*); | 49 static PassOwnPtrWillBeRawPtr<GeolocationController> create(LocalFrame&, Geo locationClient*); |
49 | 50 |
50 void addObserver(Geolocation*, bool enableHighAccuracy); | 51 void addObserver(Geolocation*, bool enableHighAccuracy); |
51 void removeObserver(Geolocation*); | 52 void removeObserver(Geolocation*); |
52 | 53 |
53 void requestPermission(Geolocation*); | 54 void requestPermission(Geolocation*); |
54 void cancelPermissionRequest(Geolocation*); | 55 void cancelPermissionRequest(Geolocation*); |
55 | 56 |
56 void positionChanged(GeolocationPosition*); | 57 void positionChanged(GeolocationPosition*); |
57 void errorOccurred(GeolocationError*); | 58 void errorOccurred(GeolocationError*); |
58 | 59 |
59 GeolocationPosition* lastPosition(); | 60 GeolocationPosition* lastPosition(); |
60 | 61 |
61 void setClientForTest(GeolocationClient*); | 62 void setClientForTest(GeolocationClient*); |
62 bool hasClientForTest() { return m_hasClientForTest; } | 63 bool hasClientForTest() { return m_hasClientForTest; } |
63 GeolocationClient* client() { return m_client; } | 64 GeolocationClient* client() { return m_client; } |
64 | 65 |
65 // Inherited from PageLifecycleObserver. | 66 // Inherited from PageLifecycleObserver. |
66 virtual void pageVisibilityChanged() OVERRIDE; | 67 virtual void pageVisibilityChanged() OVERRIDE; |
67 | 68 |
68 static const char* supplementName(); | 69 static const char* supplementName(); |
69 static GeolocationController* from(LocalFrame* frame) { return static_cast<G eolocationController*>(Supplement<LocalFrame>::from(frame, supplementName())); } | 70 static GeolocationController* from(LocalFrame* frame) { return static_cast<G eolocationController*>(WillBeHeapSupplement<LocalFrame>::from(frame, supplementN ame())); } |
71 | |
72 virtual void trace(Visitor*) OVERRIDE; | |
70 | 73 |
71 virtual void willBeDestroyed() OVERRIDE; | 74 virtual void willBeDestroyed() OVERRIDE; |
72 | 75 |
73 private: | 76 private: |
74 GeolocationController(LocalFrame&, GeolocationClient*); | 77 GeolocationController(LocalFrame&, GeolocationClient*); |
75 | 78 |
76 void startUpdatingIfNeeded(); | 79 void startUpdatingIfNeeded(); |
77 void stopUpdatingIfNeeded(); | 80 void stopUpdatingIfNeeded(); |
78 | 81 |
79 GeolocationClient* m_client; | 82 GeolocationClient* m_client; |
80 bool m_hasClientForTest; | 83 bool m_hasClientForTest; |
81 | 84 |
82 Persistent<GeolocationPosition> m_lastPosition; | 85 PersistentWillBeMember<GeolocationPosition> m_lastPosition; |
haraken
2014/06/10 12:04:34
This should be RefPtrWillBeMember.
zerny-chromium
2014/06/10 12:12:51
Are Geolocation and GeolocationPosition no longer
| |
83 typedef PersistentHeapHashSet<Member<Geolocation> > ObserversSet; | 86 typedef PersistentHeapHashSetWillBeHeapHashSet<Member<Geolocation> > Observe rsSet; |
haraken
2014/06/10 12:04:34
This should be WillBeHeapHashSet.
| |
84 // All observers; both those requesting high accuracy and those not. | 87 // All observers; both those requesting high accuracy and those not. |
85 ObserversSet m_observers; | 88 ObserversSet m_observers; |
86 ObserversSet m_highAccuracyObservers; | 89 ObserversSet m_highAccuracyObservers; |
87 bool m_isClientUpdating; | 90 bool m_isClientUpdating; |
88 GeolocationInspectorAgent* m_inspectorAgent; | 91 GeolocationInspectorAgent* m_inspectorAgent; |
89 }; | 92 }; |
90 | 93 |
91 } // namespace WebCore | 94 } // namespace WebCore |
92 | 95 |
93 #endif // GeolocationController_h | 96 #endif // GeolocationController_h |
OLD | NEW |