| Index: content/renderer/service_worker/service_worker_context_client.cc
|
| diff --git a/content/renderer/service_worker/service_worker_context_client.cc b/content/renderer/service_worker/service_worker_context_client.cc
|
| index b05b6223aa9a5d60123b2964df977e65acfc26f9..60f3f77115310cedea33e00abbdb4b1abaf11f08 100644
|
| --- a/content/renderer/service_worker/service_worker_context_client.cc
|
| +++ b/content/renderer/service_worker/service_worker_context_client.cc
|
| @@ -33,7 +33,6 @@
|
| #include "content/child/web_url_loader_impl.h"
|
| #include "content/child/webmessageportchannel_impl.h"
|
| #include "content/common/devtools_messages.h"
|
| -#include "content/common/message_port_messages.h"
|
| #include "content/common/service_worker/embedded_worker_messages.h"
|
| #include "content/common/service_worker/service_worker_event_dispatcher.mojom.h"
|
| #include "content/common/service_worker/service_worker_messages.h"
|
| @@ -129,17 +128,6 @@ ServiceWorkerStatusCode EventResultToStatus(
|
| return SERVICE_WORKER_ERROR_FAILED;
|
| }
|
|
|
| -void SendPostMessageToClientOnMainThread(
|
| - ThreadSafeSender* sender,
|
| - int routing_id,
|
| - const std::string& uuid,
|
| - const base::string16& message,
|
| - std::unique_ptr<blink::WebMessagePortChannelArray> channels) {
|
| - sender->Send(new ServiceWorkerHostMsg_PostMessageToClient(
|
| - routing_id, uuid, message,
|
| - WebMessagePortChannelImpl::ExtractMessagePortIDs(std::move(channels))));
|
| -}
|
| -
|
| blink::WebURLRequest::FetchRequestMode GetBlinkFetchRequestMode(
|
| FetchRequestMode mode) {
|
| return static_cast<blink::WebURLRequest::FetchRequestMode>(mode);
|
| @@ -839,17 +827,10 @@ ServiceWorkerContextClient::createServiceWorkerProvider() {
|
| void ServiceWorkerContextClient::postMessageToClient(
|
| const blink::WebString& uuid,
|
| const blink::WebString& message,
|
| - blink::WebMessagePortChannelArray* channels) {
|
| - // This may send channels for MessagePorts, and all internal book-keeping
|
| - // messages for MessagePort (e.g. QueueMessages) are sent from main thread
|
| - // (with thread hopping), so we need to do the same thread hopping here not
|
| - // to overtake those messages.
|
| - std::unique_ptr<blink::WebMessagePortChannelArray> channel_array(channels);
|
| - main_thread_task_runner_->PostTask(
|
| - FROM_HERE,
|
| - base::Bind(&SendPostMessageToClientOnMainThread,
|
| - base::RetainedRef(sender_), GetRoutingID(), uuid.utf8(),
|
| - message.utf16(), base::Passed(&channel_array)));
|
| + blink::WebMessagePortChannelArray channels) {
|
| + Send(new ServiceWorkerHostMsg_PostMessageToClient(
|
| + GetRoutingID(), uuid.utf8(), message.utf16(),
|
| + WebMessagePortChannelImpl::ExtractMessagePorts(std::move(channels))));
|
| }
|
|
|
| void ServiceWorkerContextClient::focus(
|
| @@ -967,15 +948,14 @@ void ServiceWorkerContextClient::DispatchExtendableMessageEvent(
|
| base::MakeUnique<DispatchExtendableMessageEventCallback>(callback));
|
|
|
| blink::WebMessagePortChannelArray ports =
|
| - WebMessagePortChannelImpl::CreatePorts(event->message_ports,
|
| - event->new_routing_ids,
|
| - main_thread_task_runner_);
|
| + WebMessagePortChannelImpl::CreateFromMessagePipeHandles(
|
| + std::move(event->message_ports));
|
| if (event->source.client_info.IsValid()) {
|
| blink::WebServiceWorkerClientInfo web_client =
|
| ToWebServiceWorkerClientInfo(event->source.client_info);
|
| proxy_->dispatchExtendableMessageEvent(
|
| request_id, blink::WebString::fromUTF16(event->message),
|
| - event->source_origin, ports, web_client);
|
| + event->source_origin, std::move(ports), web_client);
|
| return;
|
| }
|
|
|
| @@ -990,7 +970,8 @@ void ServiceWorkerContextClient::DispatchExtendableMessageEvent(
|
| dispatcher->GetOrCreateServiceWorker(std::move(handle));
|
| proxy_->dispatchExtendableMessageEvent(
|
| request_id, blink::WebString::fromUTF16(event->message),
|
| - event->source_origin, ports, WebServiceWorkerImpl::CreateHandle(worker));
|
| + event->source_origin, std::move(ports),
|
| + WebServiceWorkerImpl::CreateHandle(worker));
|
| }
|
|
|
| void ServiceWorkerContextClient::OnInstallEvent(int request_id) {
|
|
|