Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(90)

Unified Diff: content/renderer/mojo/mojo_render_process_observer.cc

Issue 236813002: Move Mojo channel initialization closer to IPC::Channel setup (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/renderer/mojo/mojo_render_process_observer.cc
diff --git a/content/renderer/mojo/mojo_render_process_observer.cc b/content/renderer/mojo/mojo_render_process_observer.cc
index 7f01d3f8a691f761b13b648642e7334b4b0adf40..f1abb37b5b76957a8d5894a925977a404244dbc2 100644
--- a/content/renderer/mojo/mojo_render_process_observer.cc
+++ b/content/renderer/mojo/mojo_render_process_observer.cc
@@ -24,7 +24,7 @@ bool MojoRenderProcessObserver::OnControlMessageReceived(
const IPC::Message& message) {
bool handled = true;
IPC_BEGIN_MESSAGE_MAP(MojoRenderProcessObserver, message)
- IPC_MESSAGE_HANDLER(MojoMsg_ChannelCreated, OnChannelCreated)
+ IPC_MESSAGE_HANDLER(MojoMsg_Activate, OnActivate)
IPC_MESSAGE_UNHANDLED(handled = false)
IPC_END_MESSAGE_MAP()
return handled;
@@ -38,7 +38,7 @@ MojoRenderProcessObserver::~MojoRenderProcessObserver() {
render_thread_->RemoveObserver(this);
}
-void MojoRenderProcessObserver::OnChannelCreated(
+void MojoRenderProcessObserver::OnActivate(
const IPC::PlatformFileForTransit& file) {
#if defined(OS_POSIX)
base::PlatformFile handle = file.fd;
@@ -47,14 +47,13 @@ void MojoRenderProcessObserver::OnChannelCreated(
#endif
DCHECK(!channel_init_.get());
channel_init_.reset(new MojoChannelInit);
- channel_init_->Init(handle, ChildProcess::current()->io_message_loop_proxy());
- if (!channel_init_->is_handle_valid())
- return;
+ mojo::ScopedMessagePipeHandle message_pipe =
+ channel_init_->Init(handle,
+ ChildProcess::current()->io_message_loop_proxy());
+ DCHECK(message_pipe.is_valid());
- ScopedRenderProcessHostMojoHandle render_process_host_handle(
- RenderProcessHostMojoHandle(
- channel_init_->bootstrap_message_pipe().release().value()));
- render_process_host_mojo_.reset(render_process_host_handle.Pass(), this);
+ render_process_host_.reset(
+ ScopedIRenderProcessHostHandle::From(message_pipe.Pass()), this);
}
void MojoRenderProcessObserver::SetWebUIHandle(

Powered by Google App Engine
This is Rietveld 408576698