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
10namespace nacl {
11
12void 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