Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1958)

Unified Diff: content/renderer/service_worker/service_worker_context_client.cc

Issue 2422793002: HTML MessagePort as mojo::MessagePipeHandle (Closed)
Patch Set: Address feedback from yusuf Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 b07de5d43b1aee04581ad908938827603fc102c3..10fac92020f80e0a66c4cc9cdc998e82b380d7b8 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"
@@ -132,10 +131,10 @@ void SendPostMessageToClientOnMainThread(
int routing_id,
const std::string& uuid,
const base::string16& message,
- std::unique_ptr<blink::WebMessagePortChannelArray> channels) {
+ blink::WebMessagePortChannelArray channels) {
sender->Send(new ServiceWorkerHostMsg_PostMessageToClient(
routing_id, uuid, message,
- WebMessagePortChannelImpl::ExtractMessagePortIDs(std::move(channels))));
+ WebMessagePortChannelImpl::ExtractMessagePorts(std::move(channels))));
}
blink::WebURLRequest::FetchRequestMode GetBlinkFetchRequestMode(
@@ -796,17 +795,18 @@ ServiceWorkerContextClient::createServiceWorkerProvider() {
void ServiceWorkerContextClient::postMessageToClient(
const blink::WebString& uuid,
const blink::WebString& message,
- blink::WebMessagePortChannelArray* channels) {
+ 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);
+ // TODO(darin): The above comment no longer makes sense. We can probably
+ // send from this thread now.
main_thread_task_runner_->PostTask(
FROM_HERE,
base::Bind(&SendPostMessageToClientOnMainThread,
base::RetainedRef(sender_), GetRoutingID(), uuid.utf8(),
- message.utf16(), base::Passed(&channel_array)));
+ message.utf16(), base::Passed(&channels)));
}
void ServiceWorkerContextClient::focus(
@@ -920,15 +920,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;
}
@@ -943,7 +942,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) {

Powered by Google App Engine
This is Rietveld 408576698