• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
7 namespace base {
8 
LaunchOptions()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 #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 
~LaunchOptions()38 LaunchOptions::~LaunchOptions() {
39 }
40 
LaunchOptionsForTest()41 LaunchOptions 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