diff options
author | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-10 00:52:14 +0000 |
---|---|---|
committer | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-10 00:52:14 +0000 |
commit | 052f1d48dd75d470ece2b0df27da7304bfba1bcd (patch) | |
tree | 6b9451d475ae34f2b3273730e130d0e07390acf1 /base | |
parent | 4adf2b8090bef783e8ba9c444fce7153063756a7 (diff) | |
download | chromium_src-052f1d48dd75d470ece2b0df27da7304bfba1bcd.zip chromium_src-052f1d48dd75d470ece2b0df27da7304bfba1bcd.tar.gz chromium_src-052f1d48dd75d470ece2b0df27da7304bfba1bcd.tar.bz2 |
POSIX: add command line option to launch renderers in a wrapper
For example, ./Hammer/chrome --renderer-cmd-prefix="gdb --args"
Review URL: http://codereview.chromium.org/21190
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9438 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base')
-rw-r--r-- | base/command_line.cc | 10 | ||||
-rw-r--r-- | base/command_line.h | 4 |
2 files changed, 14 insertions, 0 deletions
diff --git a/base/command_line.cc b/base/command_line.cc index cf3e36f..d9a2052 100644 --- a/base/command_line.cc +++ b/base/command_line.cc @@ -334,5 +334,15 @@ void CommandLine::AppendArguments(const CommandLine& other, for (i = other.switches_.begin(); i != other.switches_.end(); ++i) switches_[i->first] = i->second; } + +void CommandLine::PrependWrapper(const std::wstring& wrapper_wide) { + // The wrapper may have embedded arguments (like "gdb --args"). In this case, + // we don't pretend to do anything fancy, we just split on spaces. + const std::string wrapper = WideToASCII(wrapper_wide); + std::vector<std::string> wrapper_and_args; + SplitString(wrapper, ' ', &wrapper_and_args); + argv_.insert(argv_.begin(), wrapper_and_args.begin(), wrapper_and_args.end()); +} + #endif diff --git a/base/command_line.h b/base/command_line.h index 9a02546..94992b8 100644 --- a/base/command_line.h +++ b/base/command_line.h @@ -114,6 +114,10 @@ class CommandLine { void AppendArguments(const CommandLine& other, bool include_program); + // On POSIX systems it's common to run processes via a wrapper (like + // "valgrind" or "gdb --args"). *Note, only availible on POSIX* + void PrependWrapper(const std::wstring& wrapper); + private: friend class InProcessBrowserTest; |