summaryrefslogtreecommitdiffstats
path: root/chrome/test/chrome_process_util.cc
diff options
context:
space:
mode:
authorevan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-19 03:39:29 +0000
committerevan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-19 03:39:29 +0000
commit2ac610f6d17d02e62e73ea69a5d7eceedece95c8 (patch)
tree902671cb0cd33ad31199108666b15b094160c259 /chrome/test/chrome_process_util.cc
parent010ab37a0833a2a4ac8a35ef985b7adcd6a21d44 (diff)
downloadchromium_src-2ac610f6d17d02e62e73ea69a5d7eceedece95c8.zip
chromium_src-2ac610f6d17d02e62e73ea69a5d7eceedece95c8.tar.gz
chromium_src-2ac610f6d17d02e62e73ea69a5d7eceedece95c8.tar.bz2
linux: use /proc/self/exe when exec'ing ourselves
We don't want to ever go out to disk when looking for data after startup, since they can be changed by an update. We *should* just be using the zygote, but the zygote is sandboxed-only for now, and fixing that has a lengthy dependency graph. In the interim, /proc/self/exe is the correct executable and exec'ing it should work as long as the subprocess doesn't need any other files from the Chrome directory. BUG=22703 TEST=Start Chrome. Move away the entire Chrome directory; plugins should still work. Review URL: http://codereview.chromium.org/403018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32486 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/test/chrome_process_util.cc')
-rw-r--r--chrome/test/chrome_process_util.cc7
1 files changed, 4 insertions, 3 deletions
diff --git a/chrome/test/chrome_process_util.cc b/chrome/test/chrome_process_util.cc
index f53cbbd..fea1d0e 100644
--- a/chrome/test/chrome_process_util.cc
+++ b/chrome/test/chrome_process_util.cc
@@ -100,9 +100,10 @@ ChromeProcessList GetRunningChromeProcesses(const FilePath& data_dir) {
}
#endif // defined(OS_LINUX)
-#if defined(OS_MACOSX)
- // On Mac OS X we run the subprocesses with a different bundle, so they end
- // up with a different name, so we have to collect them in a second pass.
+#if defined(OS_LINUX) || defined(OS_MACOSX)
+ // On Mac OS X we run the subprocesses with a different bundle, and
+ // on Linux via /proc/self/exe, so they end up with a different
+ // name. We must collect them in a second pass.
{
ChildProcessFilter filter(browser_pid);
base::NamedProcessIterator it(chrome::kHelperProcessExecutableName,