Index: content/common/child_process_host_impl.cc |
diff --git a/content/common/child_process_host_impl.cc b/content/common/child_process_host_impl.cc |
index e9b81e75f9d894f99bc530a4fbe79bf8c9609dff..1aa93b529873b9e7d342ad3e3f955ac36638385f 100644 |
--- a/content/common/child_process_host_impl.cc |
+++ b/content/common/child_process_host_impl.cc |
@@ -133,12 +133,17 @@ void ChildProcessHostImpl::ForceShutdown() { |
std::string ChildProcessHostImpl::CreateChannel() { |
channel_id_ = IPC::Channel::GenerateVerifiedChannelID(std::string()); |
channel_ = IPC::Channel::CreateServer(channel_id_, this); |
- if (!channel_->Connect()) |
- return std::string(); |
#if USE_ATTACHMENT_BROKER |
IPC::AttachmentBroker::GetGlobal()->RegisterCommunicationChannel( |
channel_.get(), base::MessageLoopForIO::current()->task_runner()); |
#endif |
+ if (!channel_->Connect()) { |
+#if USE_ATTACHMENT_BROKER |
+ IPC::AttachmentBroker::GetGlobal()->DeregisterCommunicationChannel( |
+ channel_.get()); |
+#endif |
+ return std::string(); |
+ } |
for (size_t i = 0; i < filters_.size(); ++i) |
filters_[i]->OnFilterAdded(channel_.get()); |