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