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