Index: content/browser/message_port_service.cc |
diff --git a/content/browser/message_port_service.cc b/content/browser/message_port_service.cc |
index 597b1906f0762d519bfefce7d67f23d9b9b12351..915ae483d3194cfdaff3501b56e1059639d386cf 100644 |
--- a/content/browser/message_port_service.cc |
+++ b/content/browser/message_port_service.cc |
@@ -134,7 +134,7 @@ void MessagePortService::Entangle(int local_message_port_id, |
void MessagePortService::PostMessage( |
int sender_message_port_id, |
const MessagePortMessage& message, |
- const std::vector<int>& sent_message_port_ids) { |
+ const std::vector<TransferredMessagePort>& sent_message_ports) { |
DCHECK_CURRENTLY_ON(BrowserThread::IO); |
if (!message_ports_.count(sender_message_port_id)) { |
NOTREACHED(); |
@@ -151,40 +151,35 @@ void MessagePortService::PostMessage( |
return; |
} |
- PostMessageTo(entangled_message_port_id, message, sent_message_port_ids); |
+ PostMessageTo(entangled_message_port_id, message, sent_message_ports); |
} |
void MessagePortService::PostMessageTo( |
int message_port_id, |
const MessagePortMessage& message, |
- const std::vector<int>& sent_message_port_ids) { |
+ const std::vector<TransferredMessagePort>& sent_message_ports) { |
if (!message_ports_.count(message_port_id)) { |
NOTREACHED(); |
return; |
} |
- for (size_t i = 0; i < sent_message_port_ids.size(); ++i) { |
- if (!message_ports_.count(sent_message_port_ids[i])) { |
+ for (size_t i = 0; i < sent_message_ports.size(); ++i) { |
+ if (!message_ports_.count(sent_message_ports[i].id)) { |
NOTREACHED(); |
return; |
} |
} |
MessagePort& entangled_port = message_ports_[message_port_id]; |
- |
- std::vector<MessagePort*> sent_ports(sent_message_port_ids.size()); |
- for (size_t i = 0; i < sent_message_port_ids.size(); ++i) |
- sent_ports[i] = &message_ports_[sent_message_port_ids[i]]; |
- |
if (entangled_port.queue_messages()) { |
// If the target port is currently holding messages because the destination |
// renderer isn't available yet, all message ports being sent should also be |
// put in this state. |
if (entangled_port.hold_messages_for_destination) { |
- for (int sent_message_port_id : sent_message_port_ids) |
- HoldMessages(sent_message_port_id); |
+ for (const auto& port : sent_message_ports) |
+ HoldMessages(port.id); |
} |
entangled_port.queued_messages.push_back( |
- std::make_pair(message, sent_message_port_ids)); |
+ std::make_pair(message, sent_message_ports)); |
return; |
} |
@@ -195,7 +190,7 @@ void MessagePortService::PostMessageTo( |
// Now send the message to the entangled port. |
entangled_port.delegate->SendMessage(entangled_port.route_id, message, |
- sent_message_port_ids); |
+ sent_message_ports); |
} |
void MessagePortService::QueueMessages(int message_port_id) { |
@@ -231,8 +226,8 @@ void MessagePortService::SendQueuedMessages( |
// all ports in messages being sent to the port should also be put on hold. |
if (port.hold_messages_for_destination) { |
for (const auto& message : queued_messages) |
- for (int sent_message_port_id : message.second) |
- HoldMessages(sent_message_port_id); |
+ for (const TransferredMessagePort& sent_port : message.second) |
+ HoldMessages(sent_port.id); |
} |
port.queued_messages.insert(port.queued_messages.begin(), |
@@ -272,8 +267,8 @@ void MessagePortService::HoldMessages(int message_port_id) { |
// Any ports in messages currently in the queue should also be put on hold. |
for (const auto& message : message_ports_[message_port_id].queued_messages) |
- for (int sent_message_port_id : message.second) |
- HoldMessages(sent_message_port_id); |
+ for (const TransferredMessagePort& sent_port : message.second) |
+ HoldMessages(sent_port.id); |
message_ports_[message_port_id].hold_messages_for_destination = true; |
} |
@@ -292,8 +287,8 @@ void MessagePortService::ClosePort(int message_port_id) { |
// First close any message ports in the queue for this message port. |
for (const auto& message : message_ports_[message_port_id].queued_messages) |
- for (int sent_message_port_id : message.second) |
- ClosePort(sent_message_port_id); |
+ for (const TransferredMessagePort& sent_port : message.second) |
+ ClosePort(sent_port.id); |
Erase(message_port_id); |
} |