| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/browser/service_worker/service_worker_dispatcher_host.h" | 5 #include "content/browser/service_worker/service_worker_dispatcher_host.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
| 9 #include "content/browser/message_port_message_filter.h" | 9 #include "content/browser/message_port_message_filter.h" |
| 10 #include "content/browser/message_port_service.h" | 10 #include "content/browser/message_port_service.h" |
| (...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 224 provider_id, | 224 provider_id, |
| 225 request_id)); | 225 request_id)); |
| 226 } | 226 } |
| 227 | 227 |
| 228 void ServiceWorkerDispatcherHost::OnUnregisterServiceWorker( | 228 void ServiceWorkerDispatcherHost::OnUnregisterServiceWorker( |
| 229 int thread_id, | 229 int thread_id, |
| 230 int request_id, | 230 int request_id, |
| 231 int provider_id, | 231 int provider_id, |
| 232 const GURL& pattern) { | 232 const GURL& pattern) { |
| 233 if (!GetContext()) { | 233 if (!GetContext()) { |
| 234 Send(new ServiceWorkerMsg_ServiceWorkerRegistrationError( | 234 Send(new ServiceWorkerMsg_ServiceWorkerUnregistrationError( |
| 235 thread_id, | 235 thread_id, |
| 236 request_id, | 236 request_id, |
| 237 blink::WebServiceWorkerError::ErrorTypeAbort, | 237 blink::WebServiceWorkerError::ErrorTypeAbort, |
| 238 base::ASCIIToUTF16(kShutdownErrorMessage))); | 238 base::ASCIIToUTF16(kShutdownErrorMessage))); |
| 239 return; | 239 return; |
| 240 } | 240 } |
| 241 | 241 |
| 242 ServiceWorkerProviderHost* provider_host = GetContext()->GetProviderHost( | 242 ServiceWorkerProviderHost* provider_host = GetContext()->GetProviderHost( |
| 243 render_process_id_, provider_id); | 243 render_process_id_, provider_id); |
| 244 if (!provider_host) { | 244 if (!provider_host) { |
| 245 BadMessageReceived(); | 245 BadMessageReceived(); |
| 246 return; | 246 return; |
| 247 } | 247 } |
| 248 if (!provider_host->IsContextAlive()) { | 248 if (!provider_host->IsContextAlive()) { |
| 249 Send(new ServiceWorkerMsg_ServiceWorkerRegistrationError( | 249 Send(new ServiceWorkerMsg_ServiceWorkerUnregistrationError( |
| 250 thread_id, | 250 thread_id, |
| 251 request_id, | 251 request_id, |
| 252 blink::WebServiceWorkerError::ErrorTypeAbort, | 252 blink::WebServiceWorkerError::ErrorTypeAbort, |
| 253 base::ASCIIToUTF16(kShutdownErrorMessage))); | 253 base::ASCIIToUTF16(kShutdownErrorMessage))); |
| 254 return; | 254 return; |
| 255 } | 255 } |
| 256 | 256 |
| 257 if (!CanUnregisterServiceWorker(provider_host->document_url(), pattern)) { | 257 if (!CanUnregisterServiceWorker(provider_host->document_url(), pattern)) { |
| 258 BadMessageReceived(); | 258 BadMessageReceived(); |
| 259 return; | 259 return; |
| (...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 528 handle->DecrementRefCount(); | 528 handle->DecrementRefCount(); |
| 529 if (handle->HasNoRefCount()) | 529 if (handle->HasNoRefCount()) |
| 530 registration_handles_.Remove(registration_handle_id); | 530 registration_handles_.Remove(registration_handle_id); |
| 531 } | 531 } |
| 532 | 532 |
| 533 void ServiceWorkerDispatcherHost::UnregistrationComplete( | 533 void ServiceWorkerDispatcherHost::UnregistrationComplete( |
| 534 int thread_id, | 534 int thread_id, |
| 535 int request_id, | 535 int request_id, |
| 536 ServiceWorkerStatusCode status) { | 536 ServiceWorkerStatusCode status) { |
| 537 if (status != SERVICE_WORKER_OK) { | 537 if (status != SERVICE_WORKER_OK) { |
| 538 SendRegistrationError(thread_id, request_id, status); | 538 SendUnregistrationError(thread_id, request_id, status); |
| 539 return; | 539 return; |
| 540 } | 540 } |
| 541 | 541 |
| 542 Send(new ServiceWorkerMsg_ServiceWorkerUnregistered(thread_id, request_id)); | 542 Send(new ServiceWorkerMsg_ServiceWorkerUnregistered(thread_id, request_id)); |
| 543 } | 543 } |
| 544 | 544 |
| 545 void ServiceWorkerDispatcherHost::SendRegistrationError( | 545 void ServiceWorkerDispatcherHost::SendRegistrationError( |
| 546 int thread_id, | 546 int thread_id, |
| 547 int request_id, | 547 int request_id, |
| 548 ServiceWorkerStatusCode status) { | 548 ServiceWorkerStatusCode status) { |
| 549 base::string16 error_message; | 549 base::string16 error_message; |
| 550 blink::WebServiceWorkerError::ErrorType error_type; | 550 blink::WebServiceWorkerError::ErrorType error_type; |
| 551 GetServiceWorkerRegistrationStatusResponse( | 551 GetServiceWorkerRegistrationStatusResponse( |
| 552 status, &error_type, &error_message); | 552 status, &error_type, &error_message); |
| 553 Send(new ServiceWorkerMsg_ServiceWorkerRegistrationError( | 553 Send(new ServiceWorkerMsg_ServiceWorkerRegistrationError( |
| 554 thread_id, request_id, error_type, error_message)); | 554 thread_id, request_id, error_type, error_message)); |
| 555 } | 555 } |
| 556 | 556 |
| 557 void ServiceWorkerDispatcherHost::SendUnregistrationError( |
| 558 int thread_id, |
| 559 int request_id, |
| 560 ServiceWorkerStatusCode status) { |
| 561 base::string16 error_message; |
| 562 blink::WebServiceWorkerError::ErrorType error_type; |
| 563 GetServiceWorkerRegistrationStatusResponse( |
| 564 status, &error_type, &error_message); |
| 565 Send(new ServiceWorkerMsg_ServiceWorkerUnregistrationError( |
| 566 thread_id, request_id, error_type, error_message)); |
| 567 } |
| 568 |
| 557 ServiceWorkerContextCore* ServiceWorkerDispatcherHost::GetContext() { | 569 ServiceWorkerContextCore* ServiceWorkerDispatcherHost::GetContext() { |
| 558 return context_wrapper_->context(); | 570 return context_wrapper_->context(); |
| 559 } | 571 } |
| 560 | 572 |
| 561 } // namespace content | 573 } // namespace content |
| OLD | NEW |