Index: content/renderer/service_worker/service_worker_context_client.cc |
diff --git a/content/renderer/service_worker/service_worker_context_client.cc b/content/renderer/service_worker/service_worker_context_client.cc |
index 715a35eab81fc59620d0caaf7ceeaedd7a0efd06..e10d0a1a830dae532821fdf925a1f6e7647c5f72 100644 |
--- a/content/renderer/service_worker/service_worker_context_client.cc |
+++ b/content/renderer/service_worker/service_worker_context_client.cc |
@@ -682,14 +682,16 @@ void ServiceWorkerContextClient::didHandleExtendableMessageEvent( |
double event_dispatch_time) { |
const DispatchExtendableMessageEventCallback* callback = |
context_->message_event_callbacks.Lookup(request_id); |
- DCHECK(callback); |
- if (result == blink::WebServiceWorkerEventResultCompleted) { |
- callback->Run(SERVICE_WORKER_OK, |
- base::Time::FromDoubleT(event_dispatch_time)); |
- } else { |
- callback->Run(SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED, |
- base::Time::FromDoubleT(event_dispatch_time)); |
+ ServiceWorkerStatusCode status = SERVICE_WORKER_OK; |
+ switch (result) { |
+ case blink::WebServiceWorkerEventResultCompleted: |
+ break; |
+ case blink::WebServiceWorkerEventResultRejected: |
+ status = SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED; |
+ break; |
} |
falken
2017/01/06 08:27:32
Since this is repeated in other functions, how abo
xiaofengzhang
2017/01/09 02:55:22
Nice, thanks
xiaofengzhang
2017/01/09 02:55:22
Acknowledged.
|
+ DCHECK(callback); |
+ callback->Run(status, base::Time::FromDoubleT(event_dispatch_time)); |
context_->message_event_callbacks.Remove(request_id); |
} |
@@ -734,13 +736,16 @@ void ServiceWorkerContextClient::didHandleFetchEvent( |
} |
const FetchCallback* callback = |
context_->fetch_event_callbacks.Lookup(fetch_event_id); |
- if (!callback) |
- return; |
- |
- callback->Run(result == blink::WebServiceWorkerEventResultCompleted |
- ? SERVICE_WORKER_OK |
- : SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED, |
- base::Time::FromDoubleT(event_dispatch_time)); |
+ ServiceWorkerStatusCode status = SERVICE_WORKER_OK; |
+ switch (result) { |
+ case blink::WebServiceWorkerEventResultCompleted: |
+ break; |
+ case blink::WebServiceWorkerEventResultRejected: |
+ status = SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED; |
+ break; |
+ } |
+ DCHECK(callback); |
+ callback->Run(status, base::Time::FromDoubleT(event_dispatch_time)); |
context_->fetch_event_callbacks.Remove(fetch_event_id); |
} |
@@ -777,15 +782,16 @@ void ServiceWorkerContextClient::didHandleSyncEvent( |
double event_dispatch_time) { |
const SyncCallback* callback = |
context_->sync_event_callbacks.Lookup(request_id); |
- if (!callback) |
- return; |
- if (result == blink::WebServiceWorkerEventResultCompleted) { |
- callback->Run(SERVICE_WORKER_OK, |
- base::Time::FromDoubleT(event_dispatch_time)); |
- } else { |
- callback->Run(SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED, |
- base::Time::FromDoubleT(event_dispatch_time)); |
+ ServiceWorkerStatusCode status = SERVICE_WORKER_OK; |
+ switch (result) { |
+ case blink::WebServiceWorkerEventResultCompleted: |
+ break; |
+ case blink::WebServiceWorkerEventResultRejected: |
+ status = SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED; |
+ break; |
} |
+ DCHECK(callback); |
+ callback->Run(status, base::Time::FromDoubleT(event_dispatch_time)); |
context_->sync_event_callbacks.Remove(request_id); |
} |