| Index: gpu/ipc/service/gpu_init.cc
|
| diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc
|
| index de7fec9b424e306890480703d7824e123350642d..4588f9aa0abda62809038b6e031df8ea93f4c518 100644
|
| --- a/gpu/ipc/service/gpu_init.cc
|
| +++ b/gpu/ipc/service/gpu_init.cc
|
| @@ -181,12 +181,16 @@ bool GpuInit::InitializeAndStartSandbox(const base::CommandLine& command_line) {
|
|
|
| sandbox_helper_->PreSandboxStartup();
|
|
|
| + bool attempted_startsandbox = false;
|
| #if defined(OS_LINUX)
|
| // On Chrome OS ARM Mali, GPU driver userspace creates threads when
|
| // initializing a GL context, so start the sandbox early.
|
| - if (command_line.HasSwitch(switches::kGpuSandboxStartEarly))
|
| + if (command_line.HasSwitch(switches::kGpuSandboxStartEarly)) {
|
| gpu_info_.sandboxed =
|
| sandbox_helper_->EnsureSandboxInitialized(watchdog_thread_.get());
|
| + attempted_startsandbox = true;
|
| + }
|
| +
|
| #endif // defined(OS_LINUX)
|
|
|
| base::TimeTicks before_initialize_one_off = base::TimeTicks::Now();
|
| @@ -258,9 +262,11 @@ bool GpuInit::InitializeAndStartSandbox(const base::CommandLine& command_line) {
|
| watchdog_thread_ = gpu::GpuWatchdogThread::Create();
|
| }
|
|
|
| - if (!gpu_info_.sandboxed)
|
| + if (!gpu_info_.sandboxed && !attempted_startsandbox) {
|
| gpu_info_.sandboxed =
|
| sandbox_helper_->EnsureSandboxInitialized(watchdog_thread_.get());
|
| + }
|
| +
|
| return true;
|
| }
|
|
|
|
|