| Index: content/browser/browser_main_loop.cc
|
| diff --git a/content/browser/browser_main_loop.cc b/content/browser/browser_main_loop.cc
|
| index 2368fbdec1e671590a1c3e95c80e566ff2787fab..d11022e7b93a3a2194594ac1d7e27ac76c368c75 100644
|
| --- a/content/browser/browser_main_loop.cc
|
| +++ b/content/browser/browser_main_loop.cc
|
| @@ -178,6 +178,7 @@
|
| #endif
|
|
|
| #if defined(USE_X11)
|
| +#include "gpu/config/gpu_driver_bug_workaround_type.h"
|
| #include "ui/base/x/x11_util_internal.h" // nogncheck
|
| #include "ui/gfx/x/x11_connection.h" // nogncheck
|
| #include "ui/gfx/x/x11_switches.h" // nogncheck
|
| @@ -752,6 +753,22 @@ int BrowserMainLoop::PreCreateThreads() {
|
| // 2) Must be after parts_->PreCreateThreads to pick up chrome://flags.
|
| GpuDataManagerImpl::GetInstance()->Initialize();
|
|
|
| +#if defined(USE_X11) && !defined(OS_CHROMEOS)
|
| + // PreCreateThreads is called before CreateStartupTasks which starts the gpu
|
| + // process.
|
| + bool enable_transparent_visuals =
|
| + !GpuDataManagerImpl::GetInstance()->IsDriverBugWorkaroundActive(
|
| + gpu::DISABLE_TRANSPARENT_VISUALS);
|
| + Visual* visual = NULL;
|
| + int depth = 0;
|
| + ui::ChooseVisualForWindow(enable_transparent_visuals, &visual, &depth);
|
| + DCHECK(depth > 0);
|
| + base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
|
| + switches::kWindowDepth, base::IntToString(depth));
|
| + base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
|
| + switches::kX11VisualID, base::UintToString(visual->visualid));
|
| +#endif
|
| +
|
| #if !defined(GOOGLE_CHROME_BUILD) || defined(OS_ANDROID)
|
| // Single-process is an unsupported and not fully tested mode, so
|
| // don't enable it for official Chrome builds (except on Android).
|
| @@ -1379,20 +1396,6 @@ bool BrowserMainLoop::InitializeToolkit() {
|
| LOG(ERROR) << "Unable to open X display.";
|
| return false;
|
| }
|
| -
|
| -#if !defined(OS_CHROMEOS)
|
| - // InitializeToolkit is called before CreateStartupTasks which one starts the
|
| - // gpu process.
|
| - Visual* visual = NULL;
|
| - int depth = 0;
|
| - ui::ChooseVisualForWindow(&visual, &depth);
|
| - DCHECK(depth > 0);
|
| - base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
|
| - switches::kWindowDepth, base::IntToString(depth));
|
| - base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
|
| - switches::kX11VisualID, base::UintToString(visual->visualid));
|
| -#endif
|
| -
|
| #endif
|
|
|
| // Env creates the compositor. Aura widgets need the compositor to be created
|
|
|