Chromium Code Reviews| Index: ipc/mojo/ipc_channel_mojo.cc |
| diff --git a/ipc/mojo/ipc_channel_mojo.cc b/ipc/mojo/ipc_channel_mojo.cc |
| index 086b420cc52071ef90c7b53cf77249714efd67be..3ee245b79553b34f9acae374e58f11a0722ee8b5 100644 |
| --- a/ipc/mojo/ipc_channel_mojo.cc |
| +++ b/ipc/mojo/ipc_channel_mojo.cc |
| @@ -171,12 +171,16 @@ void ChannelMojo::Close() { |
| } |
| void ChannelMojo::OnConnected(mojo::ScopedMessagePipeHandle pipe) { |
| - message_reader_ = |
| - make_scoped_ptr(new internal::MessageReader(pipe.Pass(), this)); |
| + message_reader_ = CreateMessageReader(pipe.Pass()); |
| for (size_t i = 0; i < pending_messages_.size(); ++i) { |
| - message_reader_->Send(make_scoped_ptr(pending_messages_[i])); |
| + bool sent = message_reader_->Send(make_scoped_ptr(pending_messages_[i])); |
| pending_messages_[i] = NULL; |
| + if (!sent) { |
| + pending_messages_.clear(); |
| + listener_->OnChannelError(); |
| + return; |
| + } |
| } |
| pending_messages_.clear(); |
| @@ -220,6 +224,13 @@ void ChannelMojo::OnMessageReceived(Message& message) { |
| listener_->OnBadMessageReceived(message); |
| } |
| +scoped_ptr<internal::MessageReader> |
| +ChannelMojo::CreateMessageReader( |
|
yzshen1
2014/09/15 17:26:07
nit: you could merge this line onto the previous o
Hajime Morrita
2014/09/15 18:16:53
Done.
|
| + mojo::ScopedMessagePipeHandle pipe) { |
| + return make_scoped_ptr(new internal::MessageReader(pipe.Pass(), this)); |
| +} |
| + |
| + |
| #if defined(OS_POSIX) && !defined(OS_NACL) |
| int ChannelMojo::GetClientFileDescriptor() const { |
| return bootstrap_->GetClientFileDescriptor(); |