| Index: chrome/profiling/profiling_main.cc
|
| diff --git a/chrome/profiling/profiling_main.cc b/chrome/profiling/profiling_main.cc
|
| index c9c46679e2179501c7a7e9d3459dd79709a006f3..e549194ed1cbb3a9a672ff72d924d2367f1d59c2 100644
|
| --- a/chrome/profiling/profiling_main.cc
|
| +++ b/chrome/profiling/profiling_main.cc
|
| @@ -4,17 +4,7 @@
|
|
|
| #include "chrome/profiling/profiling_main.h"
|
|
|
| -#include "base/base_paths.h"
|
| #include "base/command_line.h"
|
| -#include "base/files/file_path.h"
|
| -#include "base/path_service.h"
|
| -#include "base/process/launch.h"
|
| -#include "base/process/process.h"
|
| -#include "base/process/process_metrics.h"
|
| -#include "base/strings/string_number_conversions.h"
|
| -#include "base/strings/string_util.h"
|
| -#include "base/strings/utf_string_conversions.h"
|
| -#include "base/third_party/dynamic_annotations/dynamic_annotations.h"
|
| #include "build/build_config.h"
|
| #include "chrome/common/chrome_switches.h"
|
| #include "chrome/profiling/profiling_globals.h"
|
| @@ -27,65 +17,6 @@
|
|
|
| namespace profiling {
|
|
|
| -namespace {
|
| -
|
| -base::CommandLine MakeBrowserCommandLine(const base::CommandLine& cmdline,
|
| - const std::string& pipe_id) {
|
| - const base::CommandLine::StringVector& our_argv = cmdline.argv();
|
| -
|
| - base::CommandLine::StringVector browser_argv;
|
| - browser_argv.reserve(our_argv.size());
|
| -
|
| - // Program name.
|
| - base::FilePath child_path;
|
| -#if defined(OS_LINUX)
|
| - // Use /proc/self/exe rather than our known binary path so updates
|
| - // can't swap out the binary from underneath us.
|
| - // When running under Valgrind, forking /proc/self/exe ends up forking the
|
| - // Valgrind executable, which then crashes. However, it's almost safe to
|
| - // assume that the updates won't happen while testing with Valgrind tools.
|
| - if (!RunningOnValgrind())
|
| - child_path = base::FilePath(base::kProcSelfExe);
|
| -#endif
|
| -
|
| - if (child_path.empty())
|
| - base::PathService::Get(base::FILE_EXE, &child_path);
|
| - browser_argv.push_back(child_path.value()); // Program name.
|
| -
|
| - // Remove all memlog flags.
|
| - for (size_t i = 1; i < our_argv.size(); i++) {
|
| - if (!base::StartsWith(our_argv[i], FILE_PATH_LITERAL("--memlog"),
|
| - base::CompareCase::SENSITIVE))
|
| - browser_argv.push_back(our_argv[i]);
|
| - }
|
| -
|
| - // Append the pipe ID.
|
| - std::string pipe_switch("--");
|
| - pipe_switch.append(switches::kMemlogPipe);
|
| - pipe_switch.push_back('=');
|
| - pipe_switch.append(pipe_id);
|
| -#if defined(OS_WIN)
|
| - browser_argv.push_back(base::ASCIIToUTF16(pipe_switch));
|
| -#else
|
| - browser_argv.push_back(pipe_switch);
|
| -#endif
|
| -
|
| - return base::CommandLine(browser_argv);
|
| -}
|
| -
|
| -bool LaunchBrowser(const base::CommandLine& our_cmdline,
|
| - const std::string& pipe_id) {
|
| - base::CommandLine browser_cmdline =
|
| - MakeBrowserCommandLine(our_cmdline, pipe_id);
|
| -
|
| - base::LaunchOptions options;
|
| - base::Process process = base::LaunchProcess(browser_cmdline, options);
|
| -
|
| - return true;
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| int ProfilingMain(const base::CommandLine& cmdline) {
|
| ProfilingGlobals* globals = ProfilingGlobals::Get();
|
|
|
| @@ -94,14 +25,9 @@ int ProfilingMain(const base::CommandLine& cmdline) {
|
| globals->GetIORunner(),
|
| mojo::edk::ScopedIPCSupport::ShutdownPolicy::CLEAN);
|
|
|
| - base::Process process = base::Process::Current();
|
| - std::string pipe_id = base::IntToString(static_cast<int>(process.Pid()));
|
| -
|
| + std::string pipe_id = cmdline.GetSwitchValueASCII(switches::kMemlogPipe);
|
| globals->GetMemlogConnectionManager()->StartConnections(pipe_id);
|
|
|
| - if (!LaunchBrowser(cmdline, pipe_id))
|
| - return 1;
|
| -
|
| ProfilingGlobals::Get()->RunMainMessageLoop();
|
|
|
| #if defined(OS_WIN)
|
|
|