Index: content/browser/browser_main_loop.cc |
diff --git a/content/browser/browser_main_loop.cc b/content/browser/browser_main_loop.cc |
index 73ea7767ba632f9c0822e45f6775936abbcc2c75..d22e985920c3ba2eb38c088d78299882df1a4d42 100644 |
--- a/content/browser/browser_main_loop.cc |
+++ b/content/browser/browser_main_loop.cc |
@@ -1111,7 +1111,7 @@ void BrowserMainLoop::ShutdownThreadsAndCleanUp() { |
} |
// Must happen after the IO thread is shutdown since this may be accessed from |
// it. |
- { |
+ if (!shell::ShellIsRemote()) { |
TRACE_EVENT0("shutdown", "BrowserMainLoop::Subsystem:GPUChannelFactory"); |
if (BrowserGpuChannelHostFactory::instance()) |
BrowserGpuChannelHostFactory::Terminate(); |
@@ -1175,6 +1175,8 @@ int BrowserMainLoop::BrowserThreadsStarted() { |
mojo_shell_context_.reset(new MojoShellContext); |
if (shell::ShellIsRemote()) { |
#if defined(MOJO_SHELL_CLIENT) && defined(USE_AURA) |
+ base::CommandLine::ForCurrentProcess()->AppendSwitch( |
+ switches::kIsRunningInMash); |
// TODO(rockot): Remove the blocking wait for init. |
// http://crbug.com/594852. |
auto connection = MojoShellConnection::GetForProcess(); |
@@ -1215,7 +1217,8 @@ int BrowserMainLoop::BrowserThreadsStarted() { |
#elif defined(USE_AURA) || defined(OS_MACOSX) |
established_gpu_channel = true; |
if (!GpuDataManagerImpl::GetInstance()->CanUseGpuBrowserCompositor() || |
- parsed_command_line_.HasSwitch(switches::kDisableGpuEarlyInit)) { |
+ parsed_command_line_.HasSwitch(switches::kDisableGpuEarlyInit) || |
+ shell::ShellIsRemote()) { |
established_gpu_channel = always_uses_gpu = false; |
} |
BrowserGpuChannelHostFactory::Initialize(established_gpu_channel); |
@@ -1322,9 +1325,8 @@ int BrowserMainLoop::BrowserThreadsStarted() { |
// since creating the GPU thread races against creation of the one-and-only |
// ChildProcess instance which is created by the renderer thread. |
if (GpuDataManagerImpl::GetInstance()->GpuAccessAllowed(NULL) && |
- !established_gpu_channel && |
- always_uses_gpu && |
- !UsingInProcessGpu()) { |
+ !established_gpu_channel && always_uses_gpu && !UsingInProcessGpu() && |
+ !shell::ShellIsRemote()) { |
TRACE_EVENT_INSTANT0("gpu", "Post task to launch GPU process", |
TRACE_EVENT_SCOPE_THREAD); |
BrowserThread::PostTask( |