| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/extensions/api/messaging/message_service.h" | 5 #include "chrome/browser/extensions/api/messaging/message_service.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 #include <limits> | 8 #include <limits> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 551 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 562 params->source_routing_id); | 562 params->source_routing_id); |
| 563 if (!source) | 563 if (!source) |
| 564 return; // Closed while in flight. | 564 return; // Closed while in flight. |
| 565 | 565 |
| 566 if (!params->receiver || !params->receiver->IsValidPort()) { | 566 if (!params->receiver || !params->receiver->IsValidPort()) { |
| 567 DispatchOnDisconnect(source, params->receiver_port_id, | 567 DispatchOnDisconnect(source, params->receiver_port_id, |
| 568 kReceivingEndDoesntExistError); | 568 kReceivingEndDoesntExistError); |
| 569 return; | 569 return; |
| 570 } | 570 } |
| 571 | 571 |
| 572 std::unique_ptr<MessagePort> opener( | 572 std::unique_ptr<ExtensionMessagePort> opener( |
| 573 new ExtensionMessagePort(weak_factory_.GetWeakPtr(), | 573 new ExtensionMessagePort(weak_factory_.GetWeakPtr(), |
| 574 GET_OPPOSITE_PORT_ID(params->receiver_port_id), | 574 GET_OPPOSITE_PORT_ID(params->receiver_port_id), |
| 575 params->source_extension_id, source, false)); | 575 params->source_extension_id, source, false)); |
| 576 if (!opener->IsValidPort()) | 576 if (!opener->IsValidPort()) |
| 577 return; | 577 return; |
| 578 opener->OpenPort(params->source_process_id, params->source_routing_id); | 578 opener->OpenPort(params->source_process_id, params->source_routing_id); |
| 579 opener->RevalidatePort(); |
| 579 | 580 |
| 580 params->receiver->RemoveCommonFrames(*opener); | 581 params->receiver->RemoveCommonFrames(*opener); |
| 581 if (!params->receiver->IsValidPort()) { | 582 if (!params->receiver->IsValidPort()) { |
| 582 opener->DispatchOnDisconnect(kReceivingEndDoesntExistError); | 583 opener->DispatchOnDisconnect(kReceivingEndDoesntExistError); |
| 583 return; | 584 return; |
| 584 } | 585 } |
| 585 | 586 |
| 586 MessageChannel* channel(new MessageChannel()); | 587 MessageChannel* channel(new MessageChannel()); |
| 587 channel->opener.reset(opener.release()); | 588 channel->opener.reset(opener.release()); |
| 588 channel->receiver.reset(params->receiver.release()); | 589 channel->receiver.reset(params->receiver.release()); |
| (...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1010 | 1011 |
| 1011 MessageChannelMap::iterator channel_iter = channels_.find(channel_id); | 1012 MessageChannelMap::iterator channel_iter = channels_.find(channel_id); |
| 1012 if (channel_iter != channels_.end()) { | 1013 if (channel_iter != channels_.end()) { |
| 1013 for (const PendingMessage& message : queue) { | 1014 for (const PendingMessage& message : queue) { |
| 1014 DispatchMessage(message.first, channel_iter->second, message.second); | 1015 DispatchMessage(message.first, channel_iter->second, message.second); |
| 1015 } | 1016 } |
| 1016 } | 1017 } |
| 1017 } | 1018 } |
| 1018 | 1019 |
| 1019 } // namespace extensions | 1020 } // namespace extensions |
| OLD | NEW |