Index: content/public/browser/geolocation.h |
diff --git a/content/public/browser/geolocation.h b/content/public/browser/geolocation.h |
index 23868e906af2e0d2df1e0e20c5332d6a8a64be48..583eca56a1ee6953fb52cadfb6af4aa5eb322309 100644 |
--- a/content/public/browser/geolocation.h |
+++ b/content/public/browser/geolocation.h |
@@ -13,16 +13,40 @@ namespace content { |
struct Geoposition; |
+typedef base::Callback<void(const Geoposition&)> GeolocationUpdateCallback; |
+ |
// Overrides the current location for testing. This function may be called on |
// any thread. The completion callback will be invoked asynchronously on the |
// calling thread when the override operation is completed. |
-// This should be used instead of a mock location provider for a simpler way |
-// to provide fake location results when not testing the innards of the |
-// geolocation code. |
+// |
+// This function allows the current location to be faked without having to |
+// manually instantiate a GeolocationProvider backed by a MockLocationProvider |
+// that serves a fake location. |
+// |
+// Do not use this function in unit tests. The function instantiates the |
+// singleton geolocation stack in the background and manipulates it to report |
+// a fake location. Neither step can be undone, breaking unit test isolation |
+// (crbug.com/125931). |
jam
2012/05/02 20:59:04
it's a bit odd adding this warning when existing t
|
void CONTENT_EXPORT OverrideLocationForTesting( |
const Geoposition& position, |
const base::Closure& completion_callback); |
+// Overrides the current location for testing. This function affects only |
+// callbacks requested through RequestLocationUpdate() in the future. |
+// |
+// Ownership of the |position| argument is taken. |
+// |
+// This function may be used in unit tests. It does not bring up the singleton |
+// geolocation stack and its effects can be fully undone by calling again with |
+// a NULL argument. |
+void CONTENT_EXPORT OverrideCallbackLocationForTesting(Geoposition* position); |
jam
2012/05/02 20:59:04
two ways to override a location is not good. let's
|
+ |
+// Requests a one-time callback when the next location update becomes available. |
+// This function may be called on any thread. The callback will be invoked on |
+// the calling thread. |
+void CONTENT_EXPORT RequestLocationUpdate( |
+ const GeolocationUpdateCallback& callback); |
+ |
} // namespace content |
#endif // CONTENT_PUBLIC_BROWSER_GEOLOCATION_H_ |