1// Copyright 2013 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/base_switches.h"
6#include "base/basictypes.h"
7#include "base/command_line.h"
8#include "components/nacl/common/nacl_switches.h"
9#include "content/public/common/content_switches.h"
10
11namespace nacl {
12
13void CopyNaClCommandLineArguments(CommandLine* cmd_line) {
14  const CommandLine& browser_command_line = *CommandLine::ForCurrentProcess();
15
16  // Propagate the following switches to the NaCl loader command line (along
17  // with any associated values) if present in the browser command line.
18  // TODO(gregoryd): check which flags of those below can be supported.
19  static const char* const kSwitchNames[] = {
20    switches::kNoSandbox,
21    switches::kTestNaClSandbox,
22    switches::kDisableBreakpad,
23    switches::kFullMemoryCrashReport,
24    switches::kEnableLogging,
25    switches::kDisableLogging,
26    switches::kLoggingLevel,
27    switches::kEnableDCHECK,
28    switches::kNoErrorDialogs,
29#if defined(OS_MACOSX)
30    switches::kEnableSandboxLogging,
31#endif
32  };
33  cmd_line->CopySwitchesFrom(browser_command_line, kSwitchNames,
34                             arraysize(kSwitchNames));
35}
36
37}  // namespace nacl
38