Chromium Code Reviews| Index: content/browser/message_port_service.cc |
| diff --git a/content/browser/message_port_service.cc b/content/browser/message_port_service.cc |
| index 915ae483d3194cfdaff3501b56e1059639d386cf..31318d453b6681cf74ef85e4b4be5f2e755c5fb5 100644 |
| --- a/content/browser/message_port_service.cc |
| +++ b/content/browser/message_port_service.cc |
| @@ -74,6 +74,22 @@ void MessagePortService::UpdateMessagePort(int message_port_id, |
| port.route_id = routing_id; |
| } |
| +void MessagePortService::GetMessagePortInfo(int message_port_id, |
| + MessagePortDelegate** delegate, |
| + int* routing_id) { |
| + DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| + if (!message_ports_.count(message_port_id)) { |
| + NOTREACHED(); |
|
scheib
2015/05/06 22:19:45
Handle it or not, but not both. Looks like here we
Marijn Kruisselbrink
2015/05/12 06:57:33
I would generally agree with you, but this exact s
|
| + return; |
| + } |
| + |
| + const MessagePort& port = message_ports_[message_port_id]; |
| + if (delegate) |
| + *delegate = port.delegate; |
| + if (routing_id) |
| + *routing_id = port.route_id; |
| +} |
| + |
| void MessagePortService::OnMessagePortDelegateClosing( |
| MessagePortDelegate* delegate) { |
| DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| @@ -180,6 +196,10 @@ void MessagePortService::PostMessageTo( |
| } |
| entangled_port.queued_messages.push_back( |
| std::make_pair(message, sent_message_ports)); |
| + |
| + if (entangled_port.delegate) |
| + entangled_port.delegate->MessageWasHeld(entangled_port.route_id); |
| + |
| return; |
| } |