Chromium Code Reviews| Index: content/browser/geolocation/geolocation_service_impl.h |
| diff --git a/content/browser/geolocation/geolocation_service_impl.h b/content/browser/geolocation/geolocation_service_impl.h |
| index 45b37e7fd601c21e3b20c4682b559c7d8d5c284c..03c7ae3a0e209317464f2acba75d777a965eaa50 100644 |
| --- a/content/browser/geolocation/geolocation_service_impl.h |
| +++ b/content/browser/geolocation/geolocation_service_impl.h |
| @@ -3,18 +3,16 @@ |
| // found in the LICENSE file. |
| #include "base/memory/scoped_ptr.h" |
| -#include "content/browser/geolocation/geolocation_provider_impl.h" |
| #include "content/common/geolocation_service.mojom.h" |
| -#include "content/public/common/mojo_geoposition.mojom.h" |
| -#include "third_party/mojo/src/mojo/public/cpp/bindings/binding.h" |
| +#include "content/public/browser/geolocation_provider.h" |
| +#include "content/public/common/geoposition.h" |
| #ifndef CONTENT_BROWSER_GEOLOCATION_GEOLOCATION_SERVICE_IMPL_H_ |
| #define CONTENT_BROWSER_GEOLOCATION_GEOLOCATION_SERVICE_IMPL_H_ |
| namespace content { |
| - |
| -class GeolocationProvider; |
| class GeolocationServiceContext; |
| +class RenderFrameHost; |
| // Implements the GeolocationService Mojo interface. |
| class GeolocationServiceImpl : public GeolocationService { |
| @@ -22,9 +20,8 @@ class GeolocationServiceImpl : public GeolocationService { |
| // |context| must outlive this object. |update_callback| will be called when |
|
Anand Mistry (off Chromium)
2015/11/10 04:53:39
update comment
Sam McNally
2015/11/11 07:04:02
Done.
|
| // location updates are sent, allowing the client to know when the service |
| // is being used. |
| - GeolocationServiceImpl(mojo::InterfaceRequest<GeolocationService> request, |
| - GeolocationServiceContext* context, |
| - const base::Closure& update_callback); |
| + GeolocationServiceImpl(GeolocationServiceContext* context, |
| + RenderFrameHost* render_frame_host); |
| ~GeolocationServiceImpl() override; |
| // Starts listening for updates. |
| @@ -34,48 +31,36 @@ class GeolocationServiceImpl : public GeolocationService { |
| void PauseUpdates(); |
| void ResumeUpdates(); |
| - // Enables and disables geolocation override. |
| - void SetOverride(const Geoposition& position); |
| + // Enables and disables geolocation override. It is the caller's |
| + // responsibility to ensure |position| remains valid until either |
|
Anand Mistry (off Chromium)
2015/11/10 04:53:39
|position|?
Sam McNally
2015/11/11 07:04:02
Done.
|
| + // ClearOverride() or OnOverrideSet() is called. |
| + void OnOverrideSet(); |
| void ClearOverride(); |
| private: |
| - typedef mojo::Callback<void(MojoGeopositionPtr)> PositionCallback; |
| + using PositionCallback = QueryNextPositionCallback; |
| // GeolocationService: |
| void SetHighAccuracy(bool high_accuracy) override; |
| void QueryNextPosition(const PositionCallback& callback) override; |
| - void OnConnectionError(); |
| - |
| void OnLocationUpdate(const Geoposition& position); |
| void ReportCurrentPosition(); |
| - // The binding between this object and the other end of the pipe. |
| - mojo::Binding<GeolocationService> binding_; |
| - |
| // Owns this object. |
| - GeolocationServiceContext* context_; |
| + GeolocationServiceContext* const context_; |
| + RenderFrameHost* render_frame_host_; |
| scoped_ptr<GeolocationProvider::Subscription> geolocation_subscription_; |
| - // Callback that allows the instantiator of this class to be notified on |
| - // position updates. |
| - base::Closure update_callback_; |
| - |
| // The callback passed to QueryNextPosition. |
| PositionCallback position_callback_; |
| - // Valid iff SetOverride() has been called and ClearOverride() has not |
| - // subsequently been called. |
| - Geoposition position_override_; |
| - |
| - MojoGeoposition current_position_; |
| + MojoGeopositionPtr current_position_; |
| // Whether this instance is currently observing location updates with high |
| // accuracy. |
| bool high_accuracy_; |
| - bool has_position_to_report_; |
| - |
| DISALLOW_COPY_AND_ASSIGN(GeolocationServiceImpl); |
| }; |