OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // This file implements a mock location provider and the factory functions for | 5 // This file implements a mock location provider and the factory functions for |
6 // various ways of creating it. | 6 // various ways of creating it. |
7 | 7 |
8 #include "content/browser/geolocation/mock_location_provider.h" | 8 #include "content/browser/geolocation/mock_location_provider.h" |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
97 virtual void OnPermissionGranted() OVERRIDE { | 97 virtual void OnPermissionGranted() OVERRIDE { |
98 MockLocationProvider::OnPermissionGranted(); | 98 MockLocationProvider::OnPermissionGranted(); |
99 if (requires_permission_to_start_) { | 99 if (requires_permission_to_start_) { |
100 UpdateListenersIfNeeded(); | 100 UpdateListenersIfNeeded(); |
101 } | 101 } |
102 } | 102 } |
103 | 103 |
104 void UpdateListenersIfNeeded() { | 104 void UpdateListenersIfNeeded() { |
105 if (!listeners_updated_) { | 105 if (!listeners_updated_) { |
106 listeners_updated_ = true; | 106 listeners_updated_ = true; |
107 MessageLoop::current()->PostTask( | 107 base::MessageLoop::current()->PostTask( |
108 FROM_HERE, | 108 FROM_HERE, |
109 base::Bind(&MockLocationProvider::HandlePositionChanged, | 109 base::Bind(&MockLocationProvider::HandlePositionChanged, |
110 weak_factory_.GetWeakPtr(), position_)); | 110 weak_factory_.GetWeakPtr(), |
| 111 position_)); |
111 } | 112 } |
112 } | 113 } |
113 | 114 |
114 base::WeakPtrFactory<MockLocationProvider> weak_factory_; | 115 base::WeakPtrFactory<MockLocationProvider> weak_factory_; |
115 const bool requires_permission_to_start_; | 116 const bool requires_permission_to_start_; |
116 bool listeners_updated_; | 117 bool listeners_updated_; |
117 }; | 118 }; |
118 | 119 |
119 LocationProviderBase* NewMockLocationProvider() { | 120 LocationProviderBase* NewMockLocationProvider() { |
120 return new MockLocationProvider(&MockLocationProvider::instance_); | 121 return new MockLocationProvider(&MockLocationProvider::instance_); |
121 } | 122 } |
122 | 123 |
123 LocationProviderBase* NewAutoSuccessMockLocationProvider() { | 124 LocationProviderBase* NewAutoSuccessMockLocationProvider() { |
124 return new AutoMockLocationProvider(true, false); | 125 return new AutoMockLocationProvider(true, false); |
125 } | 126 } |
126 | 127 |
127 LocationProviderBase* NewAutoFailMockLocationProvider() { | 128 LocationProviderBase* NewAutoFailMockLocationProvider() { |
128 return new AutoMockLocationProvider(false, false); | 129 return new AutoMockLocationProvider(false, false); |
129 } | 130 } |
130 | 131 |
131 LocationProviderBase* NewAutoSuccessMockNetworkLocationProvider() { | 132 LocationProviderBase* NewAutoSuccessMockNetworkLocationProvider() { |
132 return new AutoMockLocationProvider(true, true); | 133 return new AutoMockLocationProvider(true, true); |
133 } | 134 } |
134 | 135 |
135 } // namespace content | 136 } // namespace content |
OLD | NEW |