158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved. 258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// found in the LICENSE file. 458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "base/process/launch.h" 658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)namespace base { 858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)LaunchOptions::LaunchOptions() 1058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) : wait(false), 1158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#if defined(OS_WIN) 1258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) start_hidden(false), 135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) handles_to_inherit(NULL), 1458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) inherit_handles(false), 1558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) as_user(NULL), 1658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) empty_desktop_name(false), 1758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) job_handle(NULL), 1858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) stdin_handle(NULL), 1958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) stdout_handle(NULL), 2058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) stderr_handle(NULL), 2158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) force_breakaway_from_job_(false) 2258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#else 2346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) clear_environ(false), 2458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) fds_to_remap(NULL), 2558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) maximize_rlimits(NULL), 2658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) new_process_group(false) 2758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#if defined(OS_LINUX) 2858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) , clone_flags(0) 29c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch , allow_new_privs(false) 3058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#endif // OS_LINUX 3158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#if defined(OS_CHROMEOS) 3258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) , ctrl_terminal_fd(-1) 3358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#endif // OS_CHROMEOS 3458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#endif // !defined(OS_WIN) 3558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) { 3658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} 3758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 3858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)LaunchOptions::~LaunchOptions() { 3958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} 4058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 41c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen MurdochLaunchOptions LaunchOptionsForTest() { 42c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch LaunchOptions options; 43c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#if defined(OS_LINUX) 44c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch // To prevent accidental privilege sharing to an untrusted child, processes 45c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch // are started with PR_SET_NO_NEW_PRIVS. Do not set that here, since this 46c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch // new child will be used for testing only. 47c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch options.allow_new_privs = true; 48c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#endif 49c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch return options; 50c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch} 51c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 5258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} // namespace base 53