| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/renderer/service_worker/service_worker_context_client.h" | 5 #include "content/renderer/service_worker/service_worker_context_client.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/lazy_instance.h" | 10 #include "base/lazy_instance.h" |
| (...skipping 15 matching lines...) Expand all Loading... |
| 26 #include "content/child/service_worker/service_worker_provider_context.h" | 26 #include "content/child/service_worker/service_worker_provider_context.h" |
| 27 #include "content/child/service_worker/service_worker_registration_handle_refere
nce.h" | 27 #include "content/child/service_worker/service_worker_registration_handle_refere
nce.h" |
| 28 #include "content/child/service_worker/web_service_worker_impl.h" | 28 #include "content/child/service_worker/web_service_worker_impl.h" |
| 29 #include "content/child/service_worker/web_service_worker_provider_impl.h" | 29 #include "content/child/service_worker/web_service_worker_provider_impl.h" |
| 30 #include "content/child/service_worker/web_service_worker_registration_impl.h" | 30 #include "content/child/service_worker/web_service_worker_registration_impl.h" |
| 31 #include "content/child/thread_safe_sender.h" | 31 #include "content/child/thread_safe_sender.h" |
| 32 #include "content/child/web_data_consumer_handle_impl.h" | 32 #include "content/child/web_data_consumer_handle_impl.h" |
| 33 #include "content/child/web_url_loader_impl.h" | 33 #include "content/child/web_url_loader_impl.h" |
| 34 #include "content/child/webmessageportchannel_impl.h" | 34 #include "content/child/webmessageportchannel_impl.h" |
| 35 #include "content/common/devtools_messages.h" | 35 #include "content/common/devtools_messages.h" |
| 36 #include "content/common/message_port_messages.h" | |
| 37 #include "content/common/service_worker/embedded_worker_messages.h" | 36 #include "content/common/service_worker/embedded_worker_messages.h" |
| 38 #include "content/common/service_worker/service_worker_event_dispatcher.mojom.h" | 37 #include "content/common/service_worker/service_worker_event_dispatcher.mojom.h" |
| 39 #include "content/common/service_worker/service_worker_messages.h" | 38 #include "content/common/service_worker/service_worker_messages.h" |
| 40 #include "content/common/service_worker/service_worker_status_code.h" | 39 #include "content/common/service_worker/service_worker_status_code.h" |
| 41 #include "content/common/service_worker/service_worker_utils.h" | 40 #include "content/common/service_worker/service_worker_utils.h" |
| 42 #include "content/public/common/push_event_payload.h" | 41 #include "content/public/common/push_event_payload.h" |
| 43 #include "content/public/common/referrer.h" | 42 #include "content/public/common/referrer.h" |
| 44 #include "content/public/renderer/content_renderer_client.h" | 43 #include "content/public/renderer/content_renderer_client.h" |
| 45 #include "content/public/renderer/document_state.h" | 44 #include "content/public/renderer/document_state.h" |
| 46 #include "content/renderer/devtools/devtools_agent.h" | 45 #include "content/renderer/devtools/devtools_agent.h" |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 128 } | 127 } |
| 129 | 128 |
| 130 void SendPostMessageToClientOnMainThread( | 129 void SendPostMessageToClientOnMainThread( |
| 131 ThreadSafeSender* sender, | 130 ThreadSafeSender* sender, |
| 132 int routing_id, | 131 int routing_id, |
| 133 const std::string& uuid, | 132 const std::string& uuid, |
| 134 const base::string16& message, | 133 const base::string16& message, |
| 135 std::unique_ptr<blink::WebMessagePortChannelArray> channels) { | 134 std::unique_ptr<blink::WebMessagePortChannelArray> channels) { |
| 136 sender->Send(new ServiceWorkerHostMsg_PostMessageToClient( | 135 sender->Send(new ServiceWorkerHostMsg_PostMessageToClient( |
| 137 routing_id, uuid, message, | 136 routing_id, uuid, message, |
| 138 WebMessagePortChannelImpl::ExtractMessagePortIDs(std::move(channels)))); | 137 WebMessagePortChannelImpl::ExtractMessagePorts(std::move(channels)))); |
| 139 } | 138 } |
| 140 | 139 |
| 141 blink::WebURLRequest::FetchRequestMode GetBlinkFetchRequestMode( | 140 blink::WebURLRequest::FetchRequestMode GetBlinkFetchRequestMode( |
| 142 FetchRequestMode mode) { | 141 FetchRequestMode mode) { |
| 143 return static_cast<blink::WebURLRequest::FetchRequestMode>(mode); | 142 return static_cast<blink::WebURLRequest::FetchRequestMode>(mode); |
| 144 } | 143 } |
| 145 | 144 |
| 146 blink::WebURLRequest::FetchCredentialsMode GetBlinkFetchCredentialsMode( | 145 blink::WebURLRequest::FetchCredentialsMode GetBlinkFetchCredentialsMode( |
| 147 FetchCredentialsMode credentials_mode) { | 146 FetchCredentialsMode credentials_mode) { |
| 148 return static_cast<blink::WebURLRequest::FetchCredentialsMode>( | 147 return static_cast<blink::WebURLRequest::FetchCredentialsMode>( |
| (...skipping 764 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 913 | 912 |
| 914 void ServiceWorkerContextClient::DispatchExtendableMessageEvent( | 913 void ServiceWorkerContextClient::DispatchExtendableMessageEvent( |
| 915 mojom::ExtendableMessageEventPtr event, | 914 mojom::ExtendableMessageEventPtr event, |
| 916 const DispatchExtendableMessageEventCallback& callback) { | 915 const DispatchExtendableMessageEventCallback& callback) { |
| 917 TRACE_EVENT0("ServiceWorker", | 916 TRACE_EVENT0("ServiceWorker", |
| 918 "ServiceWorkerContextClient::DispatchExtendableMessageEvent"); | 917 "ServiceWorkerContextClient::DispatchExtendableMessageEvent"); |
| 919 int request_id = context_->message_event_callbacks.Add( | 918 int request_id = context_->message_event_callbacks.Add( |
| 920 base::MakeUnique<DispatchExtendableMessageEventCallback>(callback)); | 919 base::MakeUnique<DispatchExtendableMessageEventCallback>(callback)); |
| 921 | 920 |
| 922 blink::WebMessagePortChannelArray ports = | 921 blink::WebMessagePortChannelArray ports = |
| 923 WebMessagePortChannelImpl::CreatePorts(event->message_ports, | 922 WebMessagePortChannelImpl::CreateFromMessagePipeHandles( |
| 924 event->new_routing_ids, | 923 std::move(event->message_ports)); |
| 925 main_thread_task_runner_); | |
| 926 if (event->source.client_info.IsValid()) { | 924 if (event->source.client_info.IsValid()) { |
| 927 blink::WebServiceWorkerClientInfo web_client = | 925 blink::WebServiceWorkerClientInfo web_client = |
| 928 ToWebServiceWorkerClientInfo(event->source.client_info); | 926 ToWebServiceWorkerClientInfo(event->source.client_info); |
| 929 proxy_->dispatchExtendableMessageEvent( | 927 proxy_->dispatchExtendableMessageEvent( |
| 930 request_id, blink::WebString::fromUTF16(event->message), | 928 request_id, blink::WebString::fromUTF16(event->message), |
| 931 event->source_origin, ports, web_client); | 929 event->source_origin, std::move(ports), web_client); |
| 932 return; | 930 return; |
| 933 } | 931 } |
| 934 | 932 |
| 935 DCHECK(event->source.service_worker_info.IsValid()); | 933 DCHECK(event->source.service_worker_info.IsValid()); |
| 936 std::unique_ptr<ServiceWorkerHandleReference> handle = | 934 std::unique_ptr<ServiceWorkerHandleReference> handle = |
| 937 ServiceWorkerHandleReference::Adopt(event->source.service_worker_info, | 935 ServiceWorkerHandleReference::Adopt(event->source.service_worker_info, |
| 938 sender_.get()); | 936 sender_.get()); |
| 939 ServiceWorkerDispatcher* dispatcher = | 937 ServiceWorkerDispatcher* dispatcher = |
| 940 ServiceWorkerDispatcher::GetOrCreateThreadSpecificInstance( | 938 ServiceWorkerDispatcher::GetOrCreateThreadSpecificInstance( |
| 941 sender_.get(), main_thread_task_runner_.get()); | 939 sender_.get(), main_thread_task_runner_.get()); |
| 942 scoped_refptr<WebServiceWorkerImpl> worker = | 940 scoped_refptr<WebServiceWorkerImpl> worker = |
| 943 dispatcher->GetOrCreateServiceWorker(std::move(handle)); | 941 dispatcher->GetOrCreateServiceWorker(std::move(handle)); |
| 944 proxy_->dispatchExtendableMessageEvent( | 942 proxy_->dispatchExtendableMessageEvent( |
| 945 request_id, blink::WebString::fromUTF16(event->message), | 943 request_id, blink::WebString::fromUTF16(event->message), |
| 946 event->source_origin, ports, WebServiceWorkerImpl::CreateHandle(worker)); | 944 event->source_origin, std::move(ports), |
| 945 WebServiceWorkerImpl::CreateHandle(worker)); |
| 947 } | 946 } |
| 948 | 947 |
| 949 void ServiceWorkerContextClient::OnInstallEvent(int request_id) { | 948 void ServiceWorkerContextClient::OnInstallEvent(int request_id) { |
| 950 TRACE_EVENT0("ServiceWorker", | 949 TRACE_EVENT0("ServiceWorker", |
| 951 "ServiceWorkerContextClient::OnInstallEvent"); | 950 "ServiceWorkerContextClient::OnInstallEvent"); |
| 952 proxy_->dispatchInstallEvent(request_id); | 951 proxy_->dispatchInstallEvent(request_id); |
| 953 } | 952 } |
| 954 | 953 |
| 955 void ServiceWorkerContextClient::DispatchFetchEvent( | 954 void ServiceWorkerContextClient::DispatchFetchEvent( |
| 956 int fetch_event_id, | 955 int fetch_event_id, |
| (...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1255 } | 1254 } |
| 1256 | 1255 |
| 1257 base::WeakPtr<ServiceWorkerContextClient> | 1256 base::WeakPtr<ServiceWorkerContextClient> |
| 1258 ServiceWorkerContextClient::GetWeakPtr() { | 1257 ServiceWorkerContextClient::GetWeakPtr() { |
| 1259 DCHECK(worker_task_runner_->RunsTasksOnCurrentThread()); | 1258 DCHECK(worker_task_runner_->RunsTasksOnCurrentThread()); |
| 1260 DCHECK(context_); | 1259 DCHECK(context_); |
| 1261 return context_->weak_factory.GetWeakPtr(); | 1260 return context_->weak_factory.GetWeakPtr(); |
| 1262 } | 1261 } |
| 1263 | 1262 |
| 1264 } // namespace content | 1263 } // namespace content |
| OLD | NEW |