| Index: content/browser/browser_main_loop.cc
|
| diff --git a/content/browser/browser_main_loop.cc b/content/browser/browser_main_loop.cc
|
| index 94ee2c3bb952ed04cd61a58a38c403ba68513a43..f7223cd26d2417679493b8b7963b0a0a6c2ca9df 100644
|
| --- a/content/browser/browser_main_loop.cc
|
| +++ b/content/browser/browser_main_loop.cc
|
| @@ -1106,7 +1106,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,8 +1175,11 @@ int BrowserMainLoop::BrowserThreadsStarted() {
|
| #if defined(MOJO_SHELL_CLIENT) && defined(USE_AURA)
|
| // TODO(rockot): Remove the blocking wait for init.
|
| // http://crbug.com/594852.
|
| - if (shell::ShellIsRemote() && MojoShellConnection::GetForProcess())
|
| + if (shell::ShellIsRemote() && MojoShellConnection::GetForProcess()) {
|
| + base::CommandLine::ForCurrentProcess()->AppendSwitch(
|
| + switches::kIsRunningInMash);
|
| WaitForMojoShellInitialize();
|
| + }
|
| #endif
|
|
|
| #if defined(OS_MACOSX)
|
| @@ -1209,7 +1212,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);
|
| @@ -1316,9 +1320,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(
|
|
|