launch.cc revision 46d4c2bc3267f3f028f39e7e311b0f89aba2e4fd
1// Copyright (c) 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/process/launch.h"
6
7namespace base {
8
9LaunchOptions::LaunchOptions()
10    : wait(false),
11#if defined(OS_WIN)
12      start_hidden(false),
13      handles_to_inherit(NULL),
14      inherit_handles(false),
15      as_user(NULL),
16      empty_desktop_name(false),
17      job_handle(NULL),
18      stdin_handle(NULL),
19      stdout_handle(NULL),
20      stderr_handle(NULL),
21      force_breakaway_from_job_(false)
22#else
23      clear_environ(false),
24      fds_to_remap(NULL),
25      maximize_rlimits(NULL),
26      new_process_group(false)
27#if defined(OS_LINUX)
28      , clone_flags(0)
29      , allow_new_privs(false)
30#endif  // OS_LINUX
31#if defined(OS_CHROMEOS)
32      , ctrl_terminal_fd(-1)
33#endif  // OS_CHROMEOS
34#endif  // !defined(OS_WIN)
35    {
36}
37
38LaunchOptions::~LaunchOptions() {
39}
40
41LaunchOptions LaunchOptionsForTest() {
42  LaunchOptions options;
43#if defined(OS_LINUX)
44  // To prevent accidental privilege sharing to an untrusted child, processes
45  // are started with PR_SET_NO_NEW_PRIVS. Do not set that here, since this
46  // new child will be used for testing only.
47  options.allow_new_privs = true;
48#endif
49  return options;
50}
51
52}  // namespace base
53