| 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 406de2d7daa0be973b693657d6fc0dfe7b866f67..b749ffd2b0a77e0903d9e3a6fbfc994689890654 100644
|
| --- a/content/child/service_worker/service_worker_dispatcher.cc
|
| +++ b/content/child/service_worker/service_worker_dispatcher.cc
|
| @@ -11,6 +11,7 @@
|
| #include "content/common/service_worker_messages.h"
|
| #include "third_party/WebKit/public/web/WebSecurityOrigin.h"
|
|
|
| +using WebKit::WebServiceWorkerError;
|
| using WebKit::WebServiceWorkerProvider;
|
| using base::ThreadLocalPointer;
|
| using webkit_glue::WorkerTaskRunner;
|
| @@ -44,10 +45,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)
|
| IPC_MESSAGE_UNHANDLED(handled = false)
|
| IPC_END_MESSAGE_MAP()
|
| DCHECK(handled) << "Unhandled message:" << msg.type();
|
| @@ -92,7 +94,7 @@ ServiceWorkerDispatcher* ServiceWorkerDispatcher::ThreadSpecificInstance(
|
| return dispatcher;
|
| }
|
|
|
| -void ServiceWorkerDispatcher::OnServiceWorkerRegistered(
|
| +void ServiceWorkerDispatcher::OnRegistered(
|
| int32 thread_id,
|
| int32 request_id,
|
| int64 service_worker_id) {
|
| @@ -114,8 +116,9 @@ void ServiceWorkerDispatcher::OnServiceWorkerRegistered(
|
| pending_callbacks_.Remove(request_id);
|
| }
|
|
|
| -void ServiceWorkerDispatcher::OnServiceWorkerUnregistered(int32 thread_id,
|
| - int32 request_id) {
|
| +void ServiceWorkerDispatcher::OnUnregistered(
|
| + int32 thread_id,
|
| + int32 request_id) {
|
| WebServiceWorkerProvider::WebServiceWorkerCallbacks* callbacks =
|
| pending_callbacks_.Lookup(request_id);
|
| DCHECK(callbacks);
|
| @@ -126,6 +129,23 @@ void ServiceWorkerDispatcher::OnServiceWorkerUnregistered(int32 thread_id,
|
| pending_callbacks_.Remove(request_id);
|
| }
|
|
|
| +void ServiceWorkerDispatcher::OnRegistrationError(
|
| + int32 thread_id,
|
| + int32 request_id,
|
| + WebServiceWorkerError::ErrorType error_type,
|
| + const string16& message) {
|
| + WebServiceWorkerProvider::WebServiceWorkerCallbacks* callbacks =
|
| + pending_callbacks_.Lookup(request_id);
|
| + DCHECK(callbacks);
|
| + if (!callbacks)
|
| + return;
|
| +
|
| + scoped_ptr<WebServiceWorkerError> error(
|
| + new WebServiceWorkerError(error_type, message));
|
| + callbacks->onError(error.release());
|
| + pending_callbacks_.Remove(request_id);
|
| +}
|
| +
|
| void ServiceWorkerDispatcher::OnWorkerRunLoopStopped() { delete this; }
|
|
|
| } // namespace content
|
|
|