Chromium Code Reviews| Index: blimp/engine/feature/geolocation/blimp_location_provider.h |
| diff --git a/blimp/engine/feature/geolocation/blimp_location_provider.h b/blimp/engine/feature/geolocation/blimp_location_provider.h |
| index 39372da41c5dda1edc1d186653844ac6a5bce41c..a6a4c3a790bf17a9bdd1e3f3df0b344daa560010 100644 |
| --- a/blimp/engine/feature/geolocation/blimp_location_provider.h |
| +++ b/blimp/engine/feature/geolocation/blimp_location_provider.h |
| @@ -17,11 +17,11 @@ namespace engine { |
| class BlimpLocationProvider : public device::LocationProvider { |
| public: |
| // A delegate that implements a subset of LocationProvider's functions. |
| + // All methods will be executed on |delegate_task_runner_|. |
| class Delegate { |
| public: |
| using GeopositionReceivedCallback = |
| base::Callback<void(const device::Geoposition&)>; |
| - |
| virtual ~Delegate() {} |
| virtual void RequestAccuracy( |
| @@ -31,7 +31,9 @@ class BlimpLocationProvider : public device::LocationProvider { |
| const GeopositionReceivedCallback& callback) = 0; |
| }; |
| - explicit BlimpLocationProvider(base::WeakPtr<Delegate> delegate); |
| + BlimpLocationProvider( |
| + base::WeakPtr<Delegate> delegate, |
| + scoped_refptr<base::SequencedTaskRunner> delegate_task_runner); |
| ~BlimpLocationProvider() override; |
| // device::LocationProvider implementation. |
| @@ -42,15 +44,22 @@ class BlimpLocationProvider : public device::LocationProvider { |
| void SetUpdateCallback( |
| const LocationProviderUpdateCallback& callback) override; |
| + void OnLocationUpdate(const device::Geoposition& geoposition); |
|
Wez
2016/10/07 21:42:46
This should be private, since it's an internal imp
CJ
2016/10/08 00:05:55
Done.
|
| + |
| private: |
| // This delegate handles a subset of the LocationProvider functionality. |
| base::WeakPtr<Delegate> delegate_; |
| + scoped_refptr<base::SequencedTaskRunner> delegate_task_runner_; |
| device::Geoposition cached_position_; |
| // True if a successful StartProvider call has occured. |
| bool is_started_; |
| + LocationProviderUpdateCallback location_update_callback_; |
| + |
| + base::WeakPtrFactory<BlimpLocationProvider> weak_factory_; |
| + |
| DISALLOW_COPY_AND_ASSIGN(BlimpLocationProvider); |
| }; |