Index: ipc/ipc_channel_proxy.cc |
diff --git a/ipc/ipc_channel_proxy.cc b/ipc/ipc_channel_proxy.cc |
index db51da88201486c1d7c7672b4e01da000fab4554..9bbeb851192d03eddf4ccb42175ffee72d9b2ac4 100644 |
--- a/ipc/ipc_channel_proxy.cc |
+++ b/ipc/ipc_channel_proxy.cc |
@@ -115,6 +115,12 @@ bool ChannelProxy::Context::TryFilters(const Message& message) { |
} |
// Called on the IPC::Channel thread |
+void ChannelProxy::Context::PauseChannel() { |
+ DCHECK(channel_); |
+ channel_->Pause(); |
+} |
+ |
+// Called on the IPC::Channel thread |
void ChannelProxy::Context::UnpauseChannel(bool flush) { |
DCHECK(channel_); |
channel_->Unpause(flush); |
@@ -171,15 +177,14 @@ void ChannelProxy::Context::OnChannelError() { |
} |
// Called on the IPC::Channel thread |
-void ChannelProxy::Context::OnChannelOpened(bool pause) { |
+void ChannelProxy::Context::OnChannelOpened() { |
DCHECK(channel_ != NULL); |
// Assume a reference to ourselves on behalf of this thread. This reference |
// will be released when we are closed. |
AddRef(); |
- bool success = pause ? channel_->ConnectPaused() : channel_->Connect(); |
- if (!success) { |
+ if (!channel_->Connect()) { |
OnChannelError(); |
return; |
} |
@@ -475,8 +480,7 @@ ChannelProxy::~ChannelProxy() { |
void ChannelProxy::Init(const IPC::ChannelHandle& channel_handle, |
Channel::Mode mode, |
- bool create_pipe_now, |
- bool create_paused) { |
+ bool create_pipe_now) { |
#if defined(OS_POSIX) |
// When we are creating a server on POSIX, we need its file descriptor |
// to be created immediately so that it can be accessed and passed |
@@ -488,12 +492,11 @@ void ChannelProxy::Init(const IPC::ChannelHandle& channel_handle, |
#endif // defined(OS_POSIX) |
Init( |
ChannelFactory::Create(channel_handle, mode, context_->ipc_task_runner()), |
- create_pipe_now, create_paused); |
+ create_pipe_now); |
} |
void ChannelProxy::Init(std::unique_ptr<ChannelFactory> factory, |
- bool create_pipe_now, |
- bool create_paused) { |
+ bool create_pipe_now) { |
DCHECK(CalledOnValidThread()); |
DCHECK(!did_init_); |
@@ -512,12 +515,17 @@ void ChannelProxy::Init(std::unique_ptr<ChannelFactory> factory, |
// complete initialization on the background thread |
context_->ipc_task_runner()->PostTask( |
FROM_HERE, |
- base::Bind(&Context::OnChannelOpened, context_, create_paused)); |
+ base::Bind(&Context::OnChannelOpened, context_)); |
did_init_ = true; |
OnChannelInit(); |
} |
+void ChannelProxy::Pause() { |
+ context_->ipc_task_runner()->PostTask( |
+ FROM_HERE, base::Bind(&Context::PauseChannel, context_)); |
+} |
+ |
void ChannelProxy::Unpause(bool flush) { |
context_->ipc_task_runner()->PostTask( |
FROM_HERE, base::Bind(&Context::UnpauseChannel, context_, flush)); |