| Index: content/browser/utility_process_host.cc
|
| diff --git a/content/browser/utility_process_host.cc b/content/browser/utility_process_host.cc
|
| index 65a7e706758fecf49c15d5929b5eb3febefa938c..b7b5dbd2d5eb5fd47f7c2151d8e00a617577e339 100644
|
| --- a/content/browser/utility_process_host.cc
|
| +++ b/content/browser/utility_process_host.cc
|
| @@ -41,6 +41,7 @@ UtilityProcessHost::UtilityProcessHost(Client* client,
|
| no_sandbox_(false),
|
| #if defined(OS_LINUX)
|
| child_flags_(CHILD_ALLOW_SELF),
|
| + should_use_zygote_(false),
|
| #else
|
| child_flags_(CHILD_NORMAL),
|
| #endif
|
| @@ -112,8 +113,7 @@ bool UtilityProcessHost::StartProcess() {
|
| cmd_line->AppendSwitch(switches::kDebugPluginLoading);
|
|
|
| #if defined(OS_POSIX)
|
| - // TODO(port): Sandbox this on Linux. Also, zygote this to work with
|
| - // Linux updating.
|
| + // TODO(port): Sandbox extension unpacking on Linux.
|
| bool has_cmd_prefix = browser_command_line.HasSwitch(
|
| switches::kUtilityCmdPrefix);
|
| if (has_cmd_prefix) {
|
| @@ -126,11 +126,17 @@ bool UtilityProcessHost::StartProcess() {
|
| cmd_line->AppendSwitchPath(switches::kUtilityProcessAllowedDir, exposed_dir_);
|
| #endif
|
|
|
| + bool use_zygote = false;
|
| +
|
| +#if defined(OS_LINUX)
|
| + use_zygote = !no_sandbox_ && should_use_zygote_;
|
| +#endif
|
| +
|
| Launch(
|
| #if defined(OS_WIN)
|
| exposed_dir_,
|
| #elif defined(OS_POSIX)
|
| - false,
|
| + use_zygote,
|
| env_,
|
| #endif
|
| cmd_line);
|
|
|