Index: content/browser/service_worker/service_worker_register_job.h |
diff --git a/content/browser/service_worker/service_worker_register_job.h b/content/browser/service_worker/service_worker_register_job.h |
index 9e12eb518549cf05379e8199f07871f5fea38653..0d7e56085f6a66e0a63c99671f20b911e0bd0bee 100644 |
--- a/content/browser/service_worker/service_worker_register_job.h |
+++ b/content/browser/service_worker/service_worker_register_job.h |
@@ -15,6 +15,12 @@ namespace content { |
// registration or unregistration. |
class ServiceWorkerRegisterJob { |
public: |
+ typedef base::Callback<void(ServiceWorkerRegistrationStatus status, |
+ const scoped_refptr<ServiceWorkerRegistration>& |
+ registration)> RegistrationCallback; |
+ typedef base::Callback<void(ServiceWorkerRegistrationStatus status)> |
+ UnregistrationCallback; |
+ |
typedef base::Callback<void( |
ServiceWorkerRegisterJob* job, |
ServiceWorkerRegistrationStatus status, |
@@ -22,7 +28,7 @@ class ServiceWorkerRegisterJob { |
// All type of jobs (Register and Unregister) complete through a |
// single call to this callback on the IO thread. |
- ServiceWorkerRegisterJob(const base::WeakPtr<ServiceWorkerStorage>& storage, |
+ ServiceWorkerRegisterJob(ServiceWorkerStorage* storage, |
const RegistrationCompleteCallback& callback); |
~ServiceWorkerRegisterJob(); |
@@ -51,13 +57,13 @@ class ServiceWorkerRegisterJob { |
void RegisterPatternAndContinue( |
const GURL& pattern, |
const GURL& script_url, |
- const ServiceWorkerStorage::RegistrationCallback& callback, |
+ const RegistrationCallback& callback, |
ServiceWorkerRegistrationStatus previous_status); |
void UnregisterPatternAndContinue( |
const GURL& pattern, |
const GURL& script_url, |
- const ServiceWorkerStorage::UnregistrationCallback& callback, |
+ const UnregistrationCallback& callback, |
bool found, |
ServiceWorkerRegistrationStatus previous_status, |
const scoped_refptr<ServiceWorkerRegistration>& previous_registration); |
@@ -69,7 +75,14 @@ class ServiceWorkerRegisterJob { |
ServiceWorkerRegistrationStatus status, |
const scoped_refptr<ServiceWorkerRegistration>& registration); |
- const base::WeakPtr<ServiceWorkerStorage> storage_; |
+ // The ServiceWorkerStorage object should always outlive |
+ // this. |
+ |
+ // TODO(alecflett) When we support job cancelling, if we are keeping |
+ // this job alive for any reason, be sure to clear this variable, |
+ // because we may be cancelling while there are outstanding |
+ // callbacks that expect access to storage_. |
+ ServiceWorkerStorage* storage_; |
const RegistrationCompleteCallback callback_; |
base::WeakPtrFactory<ServiceWorkerRegisterJob> weak_factory_; |