Index: content/browser/gpu/gpu_process_host.cc |
diff --git a/content/browser/gpu/gpu_process_host.cc b/content/browser/gpu/gpu_process_host.cc |
index 1cb9675cb486b298140478f3c7334e820c71f87e..909e82d595e5a060a0d5be14610572a01a6b88f7 100644 |
--- a/content/browser/gpu/gpu_process_host.cc |
+++ b/content/browser/gpu/gpu_process_host.cc |
@@ -43,6 +43,7 @@ |
#include "content/public/browser/render_widget_host_view_frame_subscriber.h" |
#include "content/public/common/content_client.h" |
#include "content/public/common/content_switches.h" |
+#include "content/public/common/mojo_channel_switches.h" |
#include "content/public/common/result_codes.h" |
#include "content/public/common/sandbox_type.h" |
#include "content/public/common/sandboxed_process_launcher_delegate.h" |
@@ -537,8 +538,8 @@ bool GpuProcessHost::Init() { |
if (channel_id.empty()) |
return false; |
- if (!SetupMojo()) |
- return false; |
+ DCHECK(!mojo_application_host_); |
+ mojo_application_host_.reset(new MojoApplicationHost); |
gpu::GpuPreferences gpu_preferences = GetGpuPreferencesFromCommandLine(); |
if (in_process_) { |
@@ -546,7 +547,8 @@ bool GpuProcessHost::Init() { |
DCHECK(g_gpu_main_thread_factory); |
in_process_gpu_thread_.reset( |
g_gpu_main_thread_factory(InProcessChildThreadParams( |
- channel_id, base::MessageLoop::current()->task_runner()), |
+ channel_id, base::MessageLoop::current()->task_runner(), |
+ std::string(), mojo_application_host_->GetToken()), |
gpu_preferences)); |
base::Thread::Options options; |
#if defined(OS_WIN) |
@@ -569,12 +571,6 @@ bool GpuProcessHost::Init() { |
return true; |
} |
-bool GpuProcessHost::SetupMojo() { |
- DCHECK(!mojo_application_host_); |
- mojo_application_host_.reset(new MojoApplicationHost); |
- return mojo_application_host_->Init(); |
-} |
- |
void GpuProcessHost::RouteOnUIThread(const IPC::Message& message) { |
BrowserThread::PostTask( |
BrowserThread::UI, |
@@ -898,14 +894,6 @@ void GpuProcessHost::OnAcceleratedSurfaceBuffersSwapped( |
void GpuProcessHost::OnProcessLaunched() { |
UMA_HISTOGRAM_TIMES("GPU.GPUProcessLaunchTime", |
base::TimeTicks::Now() - init_start_time_); |
- |
- base::ProcessHandle handle; |
- if (in_process_) |
- handle = base::GetCurrentProcessHandle(); |
- else |
- handle = process_->GetData().handle; |
- |
- mojo_application_host_->Activate(this, handle); |
} |
void GpuProcessHost::OnProcessLaunchFailed() { |
@@ -977,6 +965,8 @@ bool GpuProcessHost::LaunchGpuProcess(const std::string& channel_id, |
#endif |
cmd_line->AppendSwitchASCII(switches::kProcessType, switches::kGpuProcess); |
cmd_line->AppendSwitchASCII(switches::kProcessChannelID, channel_id); |
+ cmd_line->AppendSwitchASCII(switches::kMojoApplicationChannelToken, |
+ mojo_application_host_->GetToken()); |
#if defined(OS_WIN) |
if (GetContentClient()->browser()->ShouldUseWindowsPrefetchArgument()) |