Chromium Code Reviews| Index: content/child/service_worker/service_worker_dispatcher.cc |
| diff --git a/content/child/service_worker/service_worker_dispatcher.cc b/content/child/service_worker/service_worker_dispatcher.cc |
| index c2c75b410c98688a0e5182e9c00be20dd98d009a..0658bae6ad93e089a6bcfbd7aa0cccfbcd7c8ddc 100644 |
| --- a/content/child/service_worker/service_worker_dispatcher.cc |
| +++ b/content/child/service_worker/service_worker_dispatcher.cc |
| @@ -36,10 +36,11 @@ ServiceWorkerDispatcher::~ServiceWorkerDispatcher() { |
| void ServiceWorkerDispatcher::OnMessageReceived(const IPC::Message& msg) { |
| bool handled = true; |
| IPC_BEGIN_MESSAGE_MAP(ServiceWorkerDispatcher, msg) |
| - IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerRegistered, |
| - OnServiceWorkerRegistered) |
| + IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerRegistered, OnRegistered) |
| IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerUnregistered, |
| - OnServiceWorkerUnregistered) |
| + OnUnregistered) |
| + IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ServiceWorkerRegistrationError, |
| + OnRegistrationError) |
|
kinuko
2013/10/10 07:57:22
Any particular reason we use a separate IPC for er
michaeln
2013/10/11 01:29:12
Either way does work. I was expecting register/reg
|
| IPC_MESSAGE_UNHANDLED(handled = false) |
| IPC_END_MESSAGE_MAP() |
| DCHECK(handled) << "Unhandled message:" << msg.type(); |
| @@ -90,10 +91,9 @@ ServiceWorkerDispatcher* ServiceWorkerDispatcher::ThreadSpecificInstance( |
| return dispatcher; |
| } |
| -void ServiceWorkerDispatcher::OnServiceWorkerRegistered( |
| - int32 thread_id, |
| - int32 request_id, |
| - int32 service_worker_id) { |
| +void ServiceWorkerDispatcher::OnRegistered(int32 thread_id, |
| + int32 request_id, |
| + int32 service_worker_id) { |
| WebServiceWorkerProvider::WebServiceWorkerCallbacks* callbacks = |
| pending_callbacks_.Lookup(request_id); |
| DCHECK(callbacks); |
| @@ -112,10 +112,9 @@ void ServiceWorkerDispatcher::OnServiceWorkerRegistered( |
| pending_callbacks_.Remove(request_id); |
| } |
| -void ServiceWorkerDispatcher::OnServiceWorkerUnregistered( |
| - int32 thread_id, |
| - int32 request_id, |
| - int32 service_worker_id) { |
| +void ServiceWorkerDispatcher::OnUnregistered(int32 thread_id, |
| + int32 request_id, |
| + int32 service_worker_id) { |
| WebServiceWorkerProvider::WebServiceWorkerCallbacks* callbacks = |
| pending_callbacks_.Lookup(request_id); |
| DCHECK(callbacks); |
| @@ -129,6 +128,18 @@ void ServiceWorkerDispatcher::OnServiceWorkerUnregistered( |
| pending_callbacks_.Remove(request_id); |
| } |
| +void ServiceWorkerDispatcher::OnRegistrationError(int32 thread_id, |
| + int32 request_id) { |
| + WebServiceWorkerProvider::WebServiceWorkerCallbacks* callbacks = |
| + pending_callbacks_.Lookup(request_id); |
| + DCHECK(callbacks); |
| + if (!callbacks) |
| + return; |
| + |
| + callbacks->onError(NULL); |
|
kinuko
2013/10/10 07:57:22
Looks like this method expects WebSW ptr type for
|
| + pending_callbacks_.Remove(request_id); |
| +} |
| + |
| void ServiceWorkerDispatcher::OnWorkerRunLoopStopped() { delete this; } |
| } // namespace content |