Refactored not to expose raw pointers on ProxyList class.
[chromium-blink-merge.git] / base / process / launch.cc
blobc179b2f5f37423520553ffd0c593669715404ea9
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.
5 #include "base/process/launch.h"
7 namespace base {
9 LaunchOptions::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 , kill_on_parent_death(false)
31 #endif // OS_LINUX
32 #if defined(OS_POSIX)
33 , pre_exec_delegate(NULL)
34 #endif // OS_POSIX
35 #if defined(OS_CHROMEOS)
36 , ctrl_terminal_fd(-1)
37 #endif // OS_CHROMEOS
38 #endif // !defined(OS_WIN)
42 LaunchOptions::~LaunchOptions() {
45 LaunchOptions LaunchOptionsForTest() {
46 LaunchOptions options;
47 #if defined(OS_LINUX)
48 // To prevent accidental privilege sharing to an untrusted child, processes
49 // are started with PR_SET_NO_NEW_PRIVS. Do not set that here, since this
50 // new child will be used for testing only.
51 options.allow_new_privs = true;
52 #endif
53 return options;
56 } // namespace base