Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // This file contains functions for launching subprocesses. | 5 // This file contains functions for launching subprocesses. |
| 6 | 6 |
| 7 #ifndef BASE_PROCESS_LAUNCH_H_ | 7 #ifndef BASE_PROCESS_LAUNCH_H_ |
| 8 #define BASE_PROCESS_LAUNCH_H_ | 8 #define BASE_PROCESS_LAUNCH_H_ |
| 9 | 9 |
| 10 #include <string> | 10 #include <string> |
| 11 #include <utility> | 11 #include <utility> |
| 12 #include <vector> | 12 #include <vector> |
| 13 | 13 |
| 14 #include "base/base_export.h" | 14 #include "base/base_export.h" |
| 15 #include "base/basictypes.h" | 15 #include "base/basictypes.h" |
| 16 #include "base/callback.h" | |
| 16 #include "base/environment.h" | 17 #include "base/environment.h" |
| 17 #include "base/process/process.h" | 18 #include "base/process/process.h" |
| 18 #include "base/process/process_handle.h" | 19 #include "base/process/process_handle.h" |
| 19 #include "base/strings/string_piece.h" | 20 #include "base/strings/string_piece.h" |
| 20 | 21 |
| 21 #if defined(OS_POSIX) | 22 #if defined(OS_POSIX) |
| 22 #include "base/posix/file_descriptor_shuffle.h" | 23 #include "base/posix/file_descriptor_shuffle.h" |
| 23 #elif defined(OS_WIN) | 24 #elif defined(OS_WIN) |
| 24 #include <windows.h> | 25 #include <windows.h> |
| 25 #endif | 26 #endif |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 115 | 116 |
| 116 #if defined(OS_LINUX) | 117 #if defined(OS_LINUX) |
| 117 // If non-zero, start the process using clone(), using flags as provided. | 118 // If non-zero, start the process using clone(), using flags as provided. |
| 118 int clone_flags; | 119 int clone_flags; |
| 119 | 120 |
| 120 // By default, child processes will have the PR_SET_NO_NEW_PRIVS bit set. If | 121 // By default, child processes will have the PR_SET_NO_NEW_PRIVS bit set. If |
| 121 // true, then this bit will not be set in the new child process. | 122 // true, then this bit will not be set in the new child process. |
| 122 bool allow_new_privs; | 123 bool allow_new_privs; |
| 123 #endif // defined(OS_LINUX) | 124 #endif // defined(OS_LINUX) |
| 124 | 125 |
| 126 #if defined(OS_POSIX) | |
| 127 // A callback to be run in immediately prior to executing the new program in | |
| 128 // the child process. Warning: If LaunchProcess was called in the presence of | |
| 129 // multiple threads, it may not be safe for this callback to perform | |
| 130 // allocations or grab locks. | |
| 131 Closure pre_exec_hook; | |
|
jln (very slow on Chromium)
2015/01/06 00:43:36
If we go this route, we should make the warning ev
| |
| 132 #endif | |
| 133 | |
| 125 #if defined(OS_CHROMEOS) | 134 #if defined(OS_CHROMEOS) |
| 126 // If non-negative, the specified file descriptor will be set as the launched | 135 // If non-negative, the specified file descriptor will be set as the launched |
| 127 // process' controlling terminal. | 136 // process' controlling terminal. |
| 128 int ctrl_terminal_fd; | 137 int ctrl_terminal_fd; |
| 129 #endif // defined(OS_CHROMEOS) | 138 #endif // defined(OS_CHROMEOS) |
| 130 | 139 |
| 131 #if defined(OS_MACOSX) | 140 #if defined(OS_MACOSX) |
| 132 // If this name is non-empty, the new child, after fork() but before exec(), | 141 // If this name is non-empty, the new child, after fork() but before exec(), |
| 133 // will look up this server name in the bootstrap namespace. The resulting | 142 // will look up this server name in the bootstrap namespace. The resulting |
| 134 // service port will be replaced as the bootstrap port in the child. Because | 143 // service port will be replaced as the bootstrap port in the child. Because |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 263 void ReplaceBootstrapPort(const std::string& replacement_bootstrap_name); | 272 void ReplaceBootstrapPort(const std::string& replacement_bootstrap_name); |
| 264 #endif // defined(OS_MACOSX) | 273 #endif // defined(OS_MACOSX) |
| 265 | 274 |
| 266 // Creates a LaunchOptions object suitable for launching processes in a test | 275 // Creates a LaunchOptions object suitable for launching processes in a test |
| 267 // binary. This should not be called in production/released code. | 276 // binary. This should not be called in production/released code. |
| 268 BASE_EXPORT LaunchOptions LaunchOptionsForTest(); | 277 BASE_EXPORT LaunchOptions LaunchOptionsForTest(); |
| 269 | 278 |
| 270 } // namespace base | 279 } // namespace base |
| 271 | 280 |
| 272 #endif // BASE_PROCESS_LAUNCH_H_ | 281 #endif // BASE_PROCESS_LAUNCH_H_ |
| OLD | NEW |