Index: base/process/launch.h |
diff --git a/base/process/launch.h b/base/process/launch.h |
index 45b10537b84804bc9e46707c904f37af9af70f9f..944c1bc042fc4ff6ccb4440e3684377a6dee20b7 100644 |
--- a/base/process/launch.h |
+++ b/base/process/launch.h |
@@ -14,6 +14,7 @@ |
#include "base/base_export.h" |
#include "base/basictypes.h" |
+#include "base/environment.h" |
#include "base/process/process_handle.h" |
#if defined(OS_POSIX) |
@@ -26,37 +27,13 @@ class CommandLine; |
namespace base { |
-typedef std::vector<std::pair<std::string, std::string> > EnvironmentVector; |
typedef std::vector<std::pair<int, int> > FileHandleMappingVector; |
// Options for launching a subprocess that are passed to LaunchProcess(). |
// The default constructor constructs the object with default options. |
-struct LaunchOptions { |
- LaunchOptions() |
- : wait(false), |
-#if defined(OS_WIN) |
- start_hidden(false), |
- 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 |
- environ(NULL), |
- fds_to_remap(NULL), |
- maximize_rlimits(NULL), |
- new_process_group(false) |
-#if defined(OS_LINUX) |
- , clone_flags(0) |
-#endif // OS_LINUX |
-#if defined(OS_CHROMEOS) |
- , ctrl_terminal_fd(-1) |
-#endif // OS_CHROMEOS |
-#endif // !defined(OS_WIN) |
- {} |
+struct BASE_EXPORT LaunchOptions { |
+ LaunchOptions(); |
+ ~LaunchOptions(); |
// If true, wait for the process to complete. |
bool wait; |
@@ -100,11 +77,9 @@ struct LaunchOptions { |
// job if any. |
bool force_breakaway_from_job_; |
#else |
- // If non-NULL, set/unset environment variables. |
- // See documentation of AlterEnvironment(). |
- // This pointer is owned by the caller and must live through the |
- // call to LaunchProcess(). |
- const EnvironmentVector* environ; |
+ // Set/unset environment variables. Empty (the default) means to inherit |
+ // the same environment. See AlterEnvironment(). |
+ EnvironmentMap environ; |
// If non-NULL, remap file descriptors according to the mapping of |
// src fd->dest fd to propagate FDs into the child process. |
@@ -182,16 +157,6 @@ BASE_EXPORT bool LaunchProcess(const std::vector<std::string>& argv, |
const LaunchOptions& options, |
ProcessHandle* process_handle); |
-// AlterEnvironment returns a modified environment vector, constructed from the |
-// given environment and the list of changes given in |changes|. Each key in |
-// the environment is matched against the first element of the pairs. In the |
-// event of a match, the value is replaced by the second of the pair, unless |
-// the second is empty, in which case the key-value is removed. |
-// |
-// The returned array is allocated using new[] and must be freed by the caller. |
-BASE_EXPORT char** AlterEnvironment(const EnvironmentVector& changes, |
- const char* const* const env); |
- |
// Close all file descriptors, except those which are a destination in the |
// given multimap. Only call this function in a child process where you know |
// that there aren't any other threads. |