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(); |