Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(349)

Unified Diff: content/browser/service_worker/service_worker_unregister_job.cc

Issue 788073007: Cleanup geofence registrations when a service worker is unregistered. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: slightly improve mock usage in test Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/service_worker/service_worker_unregister_job.cc
diff --git a/content/browser/service_worker/service_worker_unregister_job.cc b/content/browser/service_worker/service_worker_unregister_job.cc
index 8889039407a2a7408531eec04b730161a35c7f55..7bac8600ed1d64f1586b05ba26486dec9bee2e7b 100644
--- a/content/browser/service_worker/service_worker_unregister_job.cc
+++ b/content/browser/service_worker/service_worker_unregister_job.cc
@@ -40,7 +40,8 @@ void ServiceWorkerUnregisterJob::Start() {
}
void ServiceWorkerUnregisterJob::Abort() {
- CompleteInternal(SERVICE_WORKER_ERROR_ABORT);
+ CompleteInternal(kInvalidServiceWorkerRegistrationId,
+ SERVICE_WORKER_ERROR_ABORT);
}
bool ServiceWorkerUnregisterJob::Equals(ServiceWorkerRegisterJobBase* job) {
@@ -58,44 +59,48 @@ void ServiceWorkerUnregisterJob::OnRegistrationFound(
const scoped_refptr<ServiceWorkerRegistration>& registration) {
if (status == SERVICE_WORKER_ERROR_NOT_FOUND) {
DCHECK(!registration.get());
- Complete(SERVICE_WORKER_ERROR_NOT_FOUND);
+ Complete(kInvalidServiceWorkerRegistrationId,
+ SERVICE_WORKER_ERROR_NOT_FOUND);
return;
}
if (status != SERVICE_WORKER_OK || registration->is_uninstalling()) {
- Complete(status);
+ Complete(kInvalidServiceWorkerRegistrationId, status);
return;
}
// TODO: "7. If registration.updatePromise is not null..."
// "8. Resolve promise."
- ResolvePromise(SERVICE_WORKER_OK);
+ ResolvePromise(registration->id(), SERVICE_WORKER_OK);
registration->ClearWhenReady();
- Complete(SERVICE_WORKER_OK);
+ Complete(registration->id(), SERVICE_WORKER_OK);
}
-void ServiceWorkerUnregisterJob::Complete(ServiceWorkerStatusCode status) {
- CompleteInternal(status);
+void ServiceWorkerUnregisterJob::Complete(int64 registration_id,
+ ServiceWorkerStatusCode status) {
+ CompleteInternal(registration_id, status);
context_->job_coordinator()->FinishJob(pattern_, this);
}
void ServiceWorkerUnregisterJob::CompleteInternal(
+ int64 registration_id,
ServiceWorkerStatusCode status) {
if (!is_promise_resolved_)
- ResolvePromise(status);
+ ResolvePromise(registration_id, status);
}
void ServiceWorkerUnregisterJob::ResolvePromise(
+ int64 registration_id,
ServiceWorkerStatusCode status) {
DCHECK(!is_promise_resolved_);
is_promise_resolved_ = true;
for (std::vector<UnregistrationCallback>::iterator it = callbacks_.begin();
it != callbacks_.end();
++it) {
- it->Run(status);
+ it->Run(registration_id, status);
}
}

Powered by Google App Engine
This is Rietveld 408576698