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 |