// Copyright (c) 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "base/process/launch.h" #include "build/build_config.h" namespace base { LaunchOptions::LaunchOptions() : wait(false), #if defined(OS_WIN) start_hidden(false), handles_to_inherit(NULL), inherit_handles(false), as_user(NULL), empty_desktop_name(false), job_handle(NULL), stdin_handle(NULL), stdout_handle(NULL), stderr_handle(NULL), force_breakaway_from_job_(false) #else clear_environ(false), fds_to_remap(NULL), maximize_rlimits(NULL), new_process_group(false) #if defined(OS_LINUX) , clone_flags(0) , allow_new_privs(false) , kill_on_parent_death(false) #endif // OS_LINUX #if defined(OS_POSIX) , pre_exec_delegate(NULL) #endif // OS_POSIX #if defined(OS_CHROMEOS) , ctrl_terminal_fd(-1) #endif // OS_CHROMEOS #endif // !defined(OS_WIN) { } LaunchOptions::LaunchOptions(const LaunchOptions& other) = default; LaunchOptions::~LaunchOptions() { } LaunchOptions LaunchOptionsForTest() { LaunchOptions options; #if defined(OS_LINUX) // To prevent accidental privilege sharing to an untrusted child, processes // are started with PR_SET_NO_NEW_PRIVS. Do not set that here, since this // new child will be used for testing only. options.allow_new_privs = true; #endif return options; } } // namespace base