Chromium Code Reviews| Index: content/browser/geofencing/geofencing_manager.h |
| diff --git a/content/browser/geofencing/geofencing_manager.h b/content/browser/geofencing/geofencing_manager.h |
| index 7cd7b17ef44c7362c258de94291a8bd1af49156e..d926a060b7c5d685457b4e46838d970f90c036a0 100644 |
| --- a/content/browser/geofencing/geofencing_manager.h |
| +++ b/content/browser/geofencing/geofencing_manager.h |
| @@ -14,8 +14,10 @@ |
| #include "base/memory/ref_counted.h" |
| #include "base/memory/scoped_ptr.h" |
| #include "content/browser/geofencing/geofencing_registration_delegate.h" |
| +#include "content/browser/service_worker/service_worker_storage.h" |
| #include "content/common/content_export.h" |
| #include "content/common/geofencing_status.h" |
| +#include "content/common/service_worker/service_worker_status_code.h" |
| template <typename T> |
| struct DefaultSingletonTraits; |
| @@ -29,6 +31,7 @@ namespace content { |
| class GeofencingService; |
| class ServiceWorkerContextWrapper; |
| +class ServiceWorkerRegistration; |
| // This is the main API to the geofencing subsystem. There is one instance of |
| // this class per storage partition. |
| @@ -38,6 +41,8 @@ class ServiceWorkerContextWrapper; |
| // This class is created on the UI thread, but all its methods should only be |
| // called from the IO thread. |
| // TODO(mek): Implement some kind of persistence of registrations. |
| +// TODO(mek): Unregister a geofence when the ServiceWorkerRegistration it |
| +// belongs to goes away. |
| class CONTENT_EXPORT GeofencingManager |
| : NON_EXPORTED_BASE(public GeofencingRegistrationDelegate), |
| public base::RefCountedThreadSafe<GeofencingManager> { |
| @@ -102,6 +107,8 @@ class CONTENT_EXPORT GeofencingManager |
| // GeofencingRegistrationDelegate implementation. |
| void RegistrationFinished(int64 geofencing_registration_id, |
| GeofencingStatus status) override; |
| + void RegionEntered(int64 geofencing_registration_id) override; |
| + void RegionExited(int64 geofencing_registration_id) override; |
| // Looks up a particular geofence registration. Returns nullptr if no |
| // registration with the given IDs exists. |
| @@ -125,6 +132,17 @@ class CONTENT_EXPORT GeofencingManager |
| // Clears a registration. |
| void ClearRegistration(Registration* registration); |
| + void DispatchGeofencingEvent(blink::WebGeofencingEventType event_type, |
|
Michael van Ouwerkerk
2014/10/27 15:57:40
Please document these methods. I can't tell from t
Marijn Kruisselbrink
2014/10/27 18:29:10
Done.
|
| + int64 geofencing_registration_id); |
| + void DeliverGeofencingEvent(blink::WebGeofencingEventType event_type, |
| + int64 geofencing_registration_id, |
| + ServiceWorkerStatusCode service_worker_status, |
| + const scoped_refptr<ServiceWorkerRegistration>& |
| + service_worker_registration); |
| + void DeliverGeofencingEventEnd(const scoped_refptr<ServiceWorkerRegistration>& |
| + service_worker_registration, |
| + ServiceWorkerStatusCode service_worker_status); |
| + |
| // Map of all registered regions for a particular service worker registration. |
| typedef std::map<std::string, Registration> RegionIdRegistrationMap; |
| // Map of service worker registration id to the regions registered by that |