Index: chrome/browser/zygote_host_linux.cc |
diff --git a/chrome/browser/zygote_host_linux.cc b/chrome/browser/zygote_host_linux.cc |
index 9423598f9ab670a40f251e09f374760b83097716..49c93c2726992f779d22fa239e333f8b028cf749 100644 |
--- a/chrome/browser/zygote_host_linux.cc |
+++ b/chrome/browser/zygote_host_linux.cc |
@@ -1,4 +1,4 @@ |
-// Copyright (c) 2009 The Chromium Authors. All rights reserved. |
+// Copyright (c) 2010 The Chromium Authors. All rights reserved. |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
@@ -84,33 +84,28 @@ void ZygoteHost::Init(const std::string& sandbox_cmd) { |
// Append any switches from the browser process that need to be forwarded on |
// to the zygote/renderers. |
// Should this list be obtained from browser_render_process_host.cc? |
- if (browser_command_line.HasSwitch(switches::kAllowSandboxDebugging)) { |
- cmd_line.AppendSwitch(switches::kAllowSandboxDebugging); |
- } |
- if (browser_command_line.HasSwitch(switches::kLoggingLevel)) { |
- cmd_line.AppendSwitchWithValue(switches::kLoggingLevel, |
- browser_command_line.GetSwitchValueASCII( |
- switches::kLoggingLevel)); |
- } |
- if (browser_command_line.HasSwitch(switches::kEnableLogging)) { |
- // Append with value to support --enable-logging=stderr. |
- cmd_line.AppendSwitchWithValue(switches::kEnableLogging, |
- browser_command_line.GetSwitchValueASCII( |
- switches::kEnableLogging)); |
- } |
- if (browser_command_line.HasSwitch(switches::kUserDataDir)) { |
- // Append with value so logs go to the right file. |
- cmd_line.AppendSwitchWithValue(switches::kUserDataDir, |
- browser_command_line.GetSwitchValueASCII( |
- switches::kUserDataDir)); |
- } |
+ static const char* kForwardSwitches[] = { |
+ switches::kAllowSandboxDebugging, |
+ switches::kLoggingLevel, |
+ switches::kEnableLogging, // Support, e.g., --enable-logging=stderr. |
+ switches::kUserDataDir, // Make logs go to the right file. |
+ // Load (in-process) Pepper plugins in-process in the zygote pre-sandbox. |
+ switches::kRegisterPepperPlugins, |
#if defined(USE_SECCOMP_SANDBOX) |
- if (browser_command_line.HasSwitch(switches::kDisableSeccompSandbox)) |
- cmd_line.AppendSwitch(switches::kDisableSeccompSandbox); |
+ switches::kDisableSeccompSandbox, |
#else |
- if (browser_command_line.HasSwitch(switches::kEnableSeccompSandbox)) |
- cmd_line.AppendSwitch(switches::kEnableSeccompSandbox); |
+ switches::kEnableSeccompSandbox, |
#endif |
+ NULL |
+ }; |
+ for (const char** sw = kForwardSwitches; *sw; sw++) { |
+ if (browser_command_line.HasSwitch(*sw)) { |
+ // Always append with value for those switches which need it; it does no |
+ // harm for those which don't. |
+ cmd_line.AppendSwitchWithValue(*sw, |
+ browser_command_line.GetSwitchValueASCII(*sw)); |
+ } |
+ } |
sandbox_binary_ = sandbox_cmd.c_str(); |
struct stat st; |