Index: ipc/mojo/ipc_channel_mojo.cc |
diff --git a/ipc/mojo/ipc_channel_mojo.cc b/ipc/mojo/ipc_channel_mojo.cc |
index 404c814516e84493b729ca7dfa930764943e3302..872fa740289806107d29fcf23a33b3334a14ae18 100644 |
--- a/ipc/mojo/ipc_channel_mojo.cc |
+++ b/ipc/mojo/ipc_channel_mojo.cc |
@@ -23,8 +23,8 @@ |
#include "ipc/mojo/client_channel.mojom.h" |
#include "ipc/mojo/ipc_mojo_bootstrap.h" |
#include "ipc/mojo/ipc_mojo_handle_attachment.h" |
+#include "mojo/edk/embedder/embedder.h" |
#include "mojo/public/cpp/bindings/binding.h" |
-#include "third_party/mojo/src/mojo/edk/embedder/embedder.h" |
#if defined(OS_POSIX) && !defined(OS_NACL) |
#include "ipc/ipc_platform_file_attachment_posix.h" |
@@ -73,20 +73,9 @@ class ClientChannelMojo : public ChannelMojo, public ClientChannel { |
~ClientChannelMojo() override {} |
// MojoBootstrap::Delegate implementation |
- void OnPipeAvailable(mojo::embedder::ScopedPlatformHandle handle, |
+ void OnPipeAvailable(mojo::edk::ScopedPlatformHandle handle, |
int32_t peer_pid) override { |
- if (base::CommandLine::ForCurrentProcess()->HasSwitch("use-new-edk")) { |
- InitMessageReader( |
- mojo::embedder::CreateChannel( |
- std::move(handle), |
- base::Callback<void(mojo::embedder::ChannelInfo*)>(), |
- scoped_refptr<base::TaskRunner>()), |
- peer_pid); |
- return; |
- } |
- CreateMessagingPipe( |
- std::move(handle), |
- base::Bind(&ClientChannelMojo::BindPipe, weak_factory_.GetWeakPtr())); |
+ BindPipe(mojo::edk::CreateMessagePipe(std::move(handle))); |
} |
// ClientChannel implementation |
@@ -127,22 +116,8 @@ class ServerChannelMojo : public ChannelMojo { |
} |
// MojoBootstrap::Delegate implementation |
- void OnPipeAvailable(mojo::embedder::ScopedPlatformHandle handle, |
+ void OnPipeAvailable(mojo::edk::ScopedPlatformHandle handle, |
int32_t peer_pid) override { |
- if (base::CommandLine::ForCurrentProcess()->HasSwitch("use-new-edk")) { |
- message_pipe_ = mojo::embedder::CreateChannel( |
- std::move(handle), |
- base::Callback<void(mojo::embedder::ChannelInfo*)>(), |
- scoped_refptr<base::TaskRunner>()); |
- if (!message_pipe_.is_valid()) { |
- LOG(WARNING) << "mojo::CreateMessagePipe failed: "; |
- listener()->OnChannelError(); |
- return; |
- } |
- InitMessageReader(std::move(message_pipe_), peer_pid); |
- return; |
- } |
- |
mojo::ScopedMessagePipeHandle peer; |
MojoResult create_result = |
mojo::CreateMessagePipe(nullptr, &message_pipe_, &peer); |
@@ -151,10 +126,8 @@ class ServerChannelMojo : public ChannelMojo { |
listener()->OnChannelError(); |
return; |
} |
- CreateMessagingPipe( |
- std::move(handle), |
- base::Bind(&ServerChannelMojo::InitClientChannel, |
- weak_factory_.GetWeakPtr(), base::Passed(&peer))); |
+ InitClientChannel(std::move(peer), |
+ mojo::edk::CreateMessagePipe(std::move(handle))); |
} |
// Channel override |
void Close() override { |
@@ -205,26 +178,6 @@ base::ScopedFD TakeOrDupFile(internal::PlatformFileAttachment* attachment) { |
//------------------------------------------------------------------------------ |
-ChannelMojo::ChannelInfoDeleter::ChannelInfoDeleter( |
- scoped_refptr<base::TaskRunner> io_runner) |
- : io_runner(io_runner) { |
-} |
- |
-ChannelMojo::ChannelInfoDeleter::~ChannelInfoDeleter() { |
-} |
- |
-void ChannelMojo::ChannelInfoDeleter::operator()( |
- mojo::embedder::ChannelInfo* ptr) const { |
- if (base::ThreadTaskRunnerHandle::Get() == io_runner) { |
- mojo::embedder::DestroyChannelOnIOThread(ptr); |
- } else { |
- io_runner->PostTask( |
- FROM_HERE, base::Bind(&mojo::embedder::DestroyChannelOnIOThread, ptr)); |
- } |
-} |
- |
-//------------------------------------------------------------------------------ |
- |
// static |
bool ChannelMojo::ShouldBeUsed() { |
// TODO(rockot): Investigate performance bottlenecks and hopefully reenable |
@@ -274,7 +227,6 @@ ChannelMojo::ChannelMojo(scoped_refptr<base::TaskRunner> io_runner, |
: listener_(listener), |
peer_pid_(base::kNullProcessId), |
io_runner_(io_runner), |
- channel_info_(nullptr, ChannelInfoDeleter(nullptr)), |
waiting_connect_(true), |
weak_factory_(this) { |
// Create MojoBootstrap after all members are set as it touches |
@@ -298,51 +250,6 @@ void ChannelMojo::InitOnIOThread() { |
new ScopedIPCSupport(base::MessageLoop::current()->task_runner())); |
} |
-void ChannelMojo::CreateMessagingPipe( |
- mojo::embedder::ScopedPlatformHandle handle, |
- const CreateMessagingPipeCallback& callback) { |
- auto return_callback = base::Bind(&ChannelMojo::OnMessagingPipeCreated, |
- weak_factory_.GetWeakPtr(), callback); |
- if (!g_use_channel_on_io_thread_only || |
- base::ThreadTaskRunnerHandle::Get() == io_runner_) { |
- CreateMessagingPipeOnIOThread(std::move(handle), |
- base::ThreadTaskRunnerHandle::Get(), |
- return_callback); |
- } else { |
- io_runner_->PostTask( |
- FROM_HERE, |
- base::Bind(&ChannelMojo::CreateMessagingPipeOnIOThread, |
- base::Passed(&handle), base::ThreadTaskRunnerHandle::Get(), |
- return_callback)); |
- } |
-} |
- |
-// static |
-void ChannelMojo::CreateMessagingPipeOnIOThread( |
- mojo::embedder::ScopedPlatformHandle handle, |
- scoped_refptr<base::TaskRunner> callback_runner, |
- const CreateMessagingPipeOnIOThreadCallback& callback) { |
- mojo::embedder::ChannelInfo* channel_info; |
- mojo::ScopedMessagePipeHandle pipe = |
- mojo::embedder::CreateChannelOnIOThread(std::move(handle), &channel_info); |
- if (base::ThreadTaskRunnerHandle::Get() == callback_runner) { |
- callback.Run(std::move(pipe), channel_info); |
- } else { |
- callback_runner->PostTask( |
- FROM_HERE, base::Bind(callback, base::Passed(&pipe), channel_info)); |
- } |
-} |
- |
-void ChannelMojo::OnMessagingPipeCreated( |
- const CreateMessagingPipeCallback& callback, |
- mojo::ScopedMessagePipeHandle handle, |
- mojo::embedder::ChannelInfo* channel_info) { |
- DCHECK(!channel_info_.get()); |
- channel_info_ = scoped_ptr<mojo::embedder::ChannelInfo, ChannelInfoDeleter>( |
- channel_info, ChannelInfoDeleter(io_runner_)); |
- callback.Run(std::move(handle)); |
-} |
- |
bool ChannelMojo::Connect() { |
DCHECK(!message_reader_); |
return bootstrap_->Connect(); |
@@ -360,7 +267,6 @@ void ChannelMojo::Close() { |
waiting_connect_ = false; |
} |
- channel_info_.reset(); |
ipc_support_.reset(); |
to_be_deleted.reset(); |
} |
@@ -495,9 +401,9 @@ MojoResult ChannelMojo::ReadFromMessageAttachmentSet( |
} |
MojoHandle wrapped_handle; |
- MojoResult wrap_result = mojo::embedder::CreatePlatformHandleWrapper( |
- mojo::embedder::ScopedPlatformHandle( |
- mojo::embedder::PlatformHandle(file.release())), |
+ MojoResult wrap_result = mojo::edk::CreatePlatformHandleWrapper( |
+ mojo::edk::ScopedPlatformHandle( |
+ mojo::edk::PlatformHandle(file.release())), |
&wrapped_handle); |
if (MOJO_RESULT_OK != wrap_result) { |
LOG(WARNING) << "Pipe failed to wrap handles. Closing: " |