Index: content/child/child_thread_impl.cc |
diff --git a/content/child/child_thread_impl.cc b/content/child/child_thread_impl.cc |
index eb8ee2546d642734838ba4e1c249e9eb6317416e..5378463a0cdade74433293961bfc4ece5b7aea4b 100644 |
--- a/content/child/child_thread_impl.cc |
+++ b/content/child/child_thread_impl.cc |
@@ -367,7 +367,14 @@ |
IPC::Logging::GetInstance(); |
#endif |
- IPC::AttachmentBrokerUnprivileged::CreateBrokerIfNeeded(); |
+#if USE_ATTACHMENT_BROKER |
+ // The only reason a global would already exist is if the thread is being run |
+ // in the browser process because of a command line switch. |
+ if (!IPC::AttachmentBroker::GetGlobal()) { |
+ attachment_broker_.reset( |
+ IPC::AttachmentBrokerUnprivileged::CreateBroker().release()); |
+ } |
+#endif |
channel_ = |
IPC::SyncChannel::Create(this, ChildProcess::current()->io_task_runner(), |
@@ -453,9 +460,8 @@ |
} |
ConnectChannel(options.use_mojo_channel); |
- IPC::AttachmentBroker* global = IPC::AttachmentBroker::GetGlobal(); |
- if (global && !global->IsPrivilegedBroker()) |
- global->DesignateBrokerCommunicationChannel(channel_.get()); |
+ if (attachment_broker_) |
+ attachment_broker_->DesignateBrokerCommunicationChannel(channel_.get()); |
int connection_timeout = kConnectionTimeoutS; |
std::string connection_override = |