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/child/service_worker/service_worker_dispatcher.h" | 5 #include "content/child/service_worker/service_worker_dispatcher.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/lazy_instance.h" | 10 #include "base/lazy_instance.h" |
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
203 "ServiceWorkerDispatcher::GetRegistrationForReady", | 203 "ServiceWorkerDispatcher::GetRegistrationForReady", |
204 request_id); | 204 request_id); |
205 thread_safe_sender_->Send(new ServiceWorkerHostMsg_GetRegistrationForReady( | 205 thread_safe_sender_->Send(new ServiceWorkerHostMsg_GetRegistrationForReady( |
206 CurrentWorkerId(), request_id, provider_id)); | 206 CurrentWorkerId(), request_id, provider_id)); |
207 } | 207 } |
208 | 208 |
209 void ServiceWorkerDispatcher::AddProviderContext( | 209 void ServiceWorkerDispatcher::AddProviderContext( |
210 ServiceWorkerProviderContext* provider_context) { | 210 ServiceWorkerProviderContext* provider_context) { |
211 DCHECK(provider_context); | 211 DCHECK(provider_context); |
212 int provider_id = provider_context->provider_id(); | 212 int provider_id = provider_context->provider_id(); |
213 DCHECK(!ContainsKey(provider_contexts_, provider_id)); | 213 DCHECK(!base::ContainsKey(provider_contexts_, provider_id)); |
214 provider_contexts_[provider_id] = provider_context; | 214 provider_contexts_[provider_id] = provider_context; |
215 } | 215 } |
216 | 216 |
217 void ServiceWorkerDispatcher::RemoveProviderContext( | 217 void ServiceWorkerDispatcher::RemoveProviderContext( |
218 ServiceWorkerProviderContext* provider_context) { | 218 ServiceWorkerProviderContext* provider_context) { |
219 DCHECK(provider_context); | 219 DCHECK(provider_context); |
220 DCHECK(ContainsKey(provider_contexts_, provider_context->provider_id())); | 220 DCHECK( |
| 221 base::ContainsKey(provider_contexts_, provider_context->provider_id())); |
221 provider_contexts_.erase(provider_context->provider_id()); | 222 provider_contexts_.erase(provider_context->provider_id()); |
222 } | 223 } |
223 | 224 |
224 void ServiceWorkerDispatcher::AddProviderClient( | 225 void ServiceWorkerDispatcher::AddProviderClient( |
225 int provider_id, | 226 int provider_id, |
226 blink::WebServiceWorkerProviderClient* client) { | 227 blink::WebServiceWorkerProviderClient* client) { |
227 DCHECK(client); | 228 DCHECK(client); |
228 DCHECK(!ContainsKey(provider_clients_, provider_id)); | 229 DCHECK(!base::ContainsKey(provider_clients_, provider_id)); |
229 provider_clients_[provider_id] = client; | 230 provider_clients_[provider_id] = client; |
230 } | 231 } |
231 | 232 |
232 void ServiceWorkerDispatcher::RemoveProviderClient(int provider_id) { | 233 void ServiceWorkerDispatcher::RemoveProviderClient(int provider_id) { |
233 // This could be possibly called multiple times to ensure termination. | 234 // This could be possibly called multiple times to ensure termination. |
234 if (ContainsKey(provider_clients_, provider_id)) | 235 if (base::ContainsKey(provider_clients_, provider_id)) |
235 provider_clients_.erase(provider_id); | 236 provider_clients_.erase(provider_id); |
236 } | 237 } |
237 | 238 |
238 ServiceWorkerDispatcher* | 239 ServiceWorkerDispatcher* |
239 ServiceWorkerDispatcher::GetOrCreateThreadSpecificInstance( | 240 ServiceWorkerDispatcher::GetOrCreateThreadSpecificInstance( |
240 ThreadSafeSender* thread_safe_sender, | 241 ThreadSafeSender* thread_safe_sender, |
241 base::SingleThreadTaskRunner* main_thread_task_runner) { | 242 base::SingleThreadTaskRunner* main_thread_task_runner) { |
242 if (g_dispatcher_tls.Pointer()->Get() == kHasBeenDeleted) { | 243 if (g_dispatcher_tls.Pointer()->Get() == kHasBeenDeleted) { |
243 NOTREACHED() << "Re-instantiating TLS ServiceWorkerDispatcher."; | 244 NOTREACHED() << "Re-instantiating TLS ServiceWorkerDispatcher."; |
244 g_dispatcher_tls.Pointer()->Set(NULL); | 245 g_dispatcher_tls.Pointer()->Set(NULL); |
(...skipping 494 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
739 WebMessagePortChannelImpl::CreatePorts( | 740 WebMessagePortChannelImpl::CreatePorts( |
740 params.message_ports, params.new_routing_ids, | 741 params.message_ports, params.new_routing_ids, |
741 base::ThreadTaskRunnerHandle::Get()); | 742 base::ThreadTaskRunnerHandle::Get()); |
742 | 743 |
743 found->second->dispatchMessageEvent( | 744 found->second->dispatchMessageEvent( |
744 WebServiceWorkerImpl::CreateHandle(worker), params.message, ports); | 745 WebServiceWorkerImpl::CreateHandle(worker), params.message, ports); |
745 } | 746 } |
746 | 747 |
747 void ServiceWorkerDispatcher::AddServiceWorker( | 748 void ServiceWorkerDispatcher::AddServiceWorker( |
748 int handle_id, WebServiceWorkerImpl* worker) { | 749 int handle_id, WebServiceWorkerImpl* worker) { |
749 DCHECK(!ContainsKey(service_workers_, handle_id)); | 750 DCHECK(!base::ContainsKey(service_workers_, handle_id)); |
750 service_workers_[handle_id] = worker; | 751 service_workers_[handle_id] = worker; |
751 } | 752 } |
752 | 753 |
753 void ServiceWorkerDispatcher::RemoveServiceWorker(int handle_id) { | 754 void ServiceWorkerDispatcher::RemoveServiceWorker(int handle_id) { |
754 DCHECK(ContainsKey(service_workers_, handle_id)); | 755 DCHECK(base::ContainsKey(service_workers_, handle_id)); |
755 service_workers_.erase(handle_id); | 756 service_workers_.erase(handle_id); |
756 } | 757 } |
757 | 758 |
758 void ServiceWorkerDispatcher::AddServiceWorkerRegistration( | 759 void ServiceWorkerDispatcher::AddServiceWorkerRegistration( |
759 int registration_handle_id, | 760 int registration_handle_id, |
760 WebServiceWorkerRegistrationImpl* registration) { | 761 WebServiceWorkerRegistrationImpl* registration) { |
761 DCHECK(!ContainsKey(registrations_, registration_handle_id)); | 762 DCHECK(!base::ContainsKey(registrations_, registration_handle_id)); |
762 registrations_[registration_handle_id] = registration; | 763 registrations_[registration_handle_id] = registration; |
763 } | 764 } |
764 | 765 |
765 void ServiceWorkerDispatcher::RemoveServiceWorkerRegistration( | 766 void ServiceWorkerDispatcher::RemoveServiceWorkerRegistration( |
766 int registration_handle_id) { | 767 int registration_handle_id) { |
767 DCHECK(ContainsKey(registrations_, registration_handle_id)); | 768 DCHECK(base::ContainsKey(registrations_, registration_handle_id)); |
768 registrations_.erase(registration_handle_id); | 769 registrations_.erase(registration_handle_id); |
769 } | 770 } |
770 | 771 |
771 std::unique_ptr<ServiceWorkerRegistrationHandleReference> | 772 std::unique_ptr<ServiceWorkerRegistrationHandleReference> |
772 ServiceWorkerDispatcher::Adopt( | 773 ServiceWorkerDispatcher::Adopt( |
773 const ServiceWorkerRegistrationObjectInfo& info) { | 774 const ServiceWorkerRegistrationObjectInfo& info) { |
774 return ServiceWorkerRegistrationHandleReference::Adopt( | 775 return ServiceWorkerRegistrationHandleReference::Adopt( |
775 info, thread_safe_sender_.get()); | 776 info, thread_safe_sender_.get()); |
776 } | 777 } |
777 | 778 |
778 std::unique_ptr<ServiceWorkerHandleReference> ServiceWorkerDispatcher::Adopt( | 779 std::unique_ptr<ServiceWorkerHandleReference> ServiceWorkerDispatcher::Adopt( |
779 const ServiceWorkerObjectInfo& info) { | 780 const ServiceWorkerObjectInfo& info) { |
780 return ServiceWorkerHandleReference::Adopt(info, thread_safe_sender_.get()); | 781 return ServiceWorkerHandleReference::Adopt(info, thread_safe_sender_.get()); |
781 } | 782 } |
782 | 783 |
783 } // namespace content | 784 } // namespace content |
OLD | NEW |