Index: content/renderer/service_worker/service_worker_script_context.cc |
diff --git a/content/renderer/service_worker/service_worker_script_context.cc b/content/renderer/service_worker/service_worker_script_context.cc |
index 90d539e33ce38a4ac0d810b2ac3448240444627f..14661847051a74b91dcb8f6c4c6e3ae4b4e6ccb1 100644 |
--- a/content/renderer/service_worker/service_worker_script_context.cc |
+++ b/content/renderer/service_worker/service_worker_script_context.cc |
@@ -408,20 +408,14 @@ void ServiceWorkerScriptContext::OnCrossOriginConnectEvent( |
void ServiceWorkerScriptContext::OnPostMessage( |
const base::string16& message, |
- const std::vector<int>& sent_message_port_ids, |
+ const std::vector<TransferredMessagePort>& sent_message_ports, |
const std::vector<int>& new_routing_ids) { |
TRACE_EVENT0("ServiceWorker", |
"ServiceWorkerScriptContext::OnPostEvent"); |
- std::vector<WebMessagePortChannelImpl*> ports; |
- if (!sent_message_port_ids.empty()) { |
- base::SingleThreadTaskRunner* task_runner = |
- embedded_context_->main_thread_task_runner(); |
- ports.resize(sent_message_port_ids.size()); |
- for (size_t i = 0; i < sent_message_port_ids.size(); ++i) { |
- ports[i] = new WebMessagePortChannelImpl( |
- new_routing_ids[i], sent_message_port_ids[i], task_runner); |
- } |
- } |
+ blink::WebMessagePortChannelArray ports = |
+ WebMessagePortChannelImpl::CreatePorts( |
+ sent_message_ports, new_routing_ids, |
+ embedded_context_->main_thread_task_runner()); |
// dispatchMessageEvent is expected to execute onmessage function |
// synchronously. |
@@ -435,20 +429,14 @@ void ServiceWorkerScriptContext::OnPostMessage( |
void ServiceWorkerScriptContext::OnCrossOriginMessageToWorker( |
const NavigatorConnectClient& client, |
const base::string16& message, |
- const std::vector<int>& sent_message_port_ids, |
+ const std::vector<TransferredMessagePort>& sent_message_ports, |
const std::vector<int>& new_routing_ids) { |
TRACE_EVENT0("ServiceWorker", |
"ServiceWorkerScriptContext::OnCrossOriginMessageToWorker"); |
- std::vector<WebMessagePortChannelImpl*> ports; |
- if (!sent_message_port_ids.empty()) { |
- base::SingleThreadTaskRunner* task_runner = |
- embedded_context_->main_thread_task_runner(); |
- ports.resize(sent_message_port_ids.size()); |
- for (size_t i = 0; i < sent_message_port_ids.size(); ++i) { |
- ports[i] = new WebMessagePortChannelImpl( |
- new_routing_ids[i], sent_message_port_ids[i], task_runner); |
- } |
- } |
+ blink::WebMessagePortChannelArray ports = |
+ WebMessagePortChannelImpl::CreatePorts( |
+ sent_message_ports, new_routing_ids, |
+ embedded_context_->main_thread_task_runner()); |
blink::WebCrossOriginServiceWorkerClient web_client; |
web_client.origin = client.origin; |