Chromium Code Reviews| Index: content/public/browser/geolocation_provider.h |
| diff --git a/content/public/browser/geolocation_provider.h b/content/public/browser/geolocation_provider.h |
| index 0f247a1d2e8d17388814f2acd2ba4e14d1cb1270..58763eadcb8592d54ce13c3efdbf85c653cfe721 100644 |
| --- a/content/public/browser/geolocation_provider.h |
| +++ b/content/public/browser/geolocation_provider.h |
| @@ -11,7 +11,9 @@ |
| #include "content/common/content_export.h" |
| namespace content { |
| +class AccessTokenStore; |
| struct Geoposition; |
| +class LocationProvider; |
| // This is the main API to the geolocation subsystem. The application will hold |
| // a single instance of this class and can register multiple clients to be |
| @@ -26,6 +28,28 @@ struct Geoposition; |
| // uses run on a separate Geolocation thread. |
| class GeolocationProvider { |
| public: |
| + // An Embedder of Geolocation may override these class' methods to provide |
|
Michael van Ouwerkerk
2016/06/28 11:17:08
nit: s/Embedder/embedder/
mcasas
2016/06/28 16:51:26
Done.
|
| + // specific functionality. |
| + class CONTENT_EXPORT Delegate { |
| + public: |
| + // Returns true if the location API should use network-based location |
| + // approximation in addition to the system provider, if any. |
| + virtual bool UseNetworkLocationProviders(); |
| + |
| + // Creates a new AccessTokenStore for geolocation. May return nullptr. |
| + // TODO(mcasas): consider changing it return type to std::unique_ptr<> to |
| + // clarify ownership, https://crbug.com/623114. |
| + virtual AccessTokenStore* CreateAccessTokenStore(); |
| + |
| + // Allows an embedder to return its own LocationProvider implementation. |
| + // Return nullptr to use the default one for the platform to be created. |
| + // Caller takes ownership of the returned LocationProvider. FYI: Used by an |
| + // external project; please don't remove. Contact Viatcheslav Ostapenko at |
| + // sl.ostapenko@samsung.com for more information. |
| + // TODO(mcasas): return std::unique_ptr<> instead, https://crbug.com/623132. |
| + virtual LocationProvider* OverrideSystemLocationProvider(); |
| + }; |
| + |
| CONTENT_EXPORT static GeolocationProvider* GetInstance(); |
| typedef base::Callback<void(const Geoposition&)> LocationUpdateCallback; |