1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "base/command_line.h"
6 #include "chrome/common/chrome_constants.h"
7 #include "chrome/common/chrome_switches.h"
8 #include "chrome/common/logging_chrome.h"
9
10 namespace nacl {
11
CopyNaClCommandLineArguments(CommandLine * cmd_line)12 void CopyNaClCommandLineArguments(CommandLine* cmd_line) {
13 const CommandLine& browser_command_line = *CommandLine::ForCurrentProcess();
14 if (logging::DialogsAreSuppressed())
15 cmd_line->AppendSwitch(switches::kNoErrorDialogs);
16
17 // Propagate the following switches to the NaCl loader command line (along
18 // with any associated values) if present in the browser command line.
19 // TODO(gregoryd): check which flags of those below can be supported.
20 static const char* const kSwitchNames[] = {
21 switches::kNoSandbox,
22 switches::kTestNaClSandbox,
23 switches::kDisableBreakpad,
24 switches::kFullMemoryCrashReport,
25 switches::kEnableLogging,
26 switches::kDisableLogging,
27 switches::kLoggingLevel,
28 switches::kEnableDCHECK,
29 switches::kSilentDumpOnDCHECK,
30 switches::kMemoryProfiling,
31 switches::kEnableNaClDebug,
32 switches::kNaClDebugPorts,
33 switches::kNaClDebugIP,
34 };
35 cmd_line->CopySwitchesFrom(browser_command_line, kSwitchNames,
36 arraysize(kSwitchNames));
37 }
38
39 }
40