summaryrefslogtreecommitdiffstats
path: root/base/process_util_linux.cc
Commit message (Collapse)AuthorAgeFilesLines
* Fix bug in ProcessIterator::CheckForNextProcess(). Under load it'ssky@chromium.org2011-01-281-4/+4
| | | | | | | | | | | | | very easy for the processes to change between the time we get a proc id from /proc then try to get other status. We shouldn't stop iterating in this case, just continue on. BUG=52022 TEST=none Review URL: http://codereview.chromium.org/6398005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72964 0039d316-1c4b-4281-b951-d872f2087c98
* Properly order the cc files based off the h files in base/.erg@google.com2011-01-251-84/+84
| | | | | | | | | BUG=68682 TEST=compiles Review URL: http://codereview.chromium.org/6385003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72505 0039d316-1c4b-4281-b951-d872f2087c98
* Move base/thread.h to base/threading, fix up callers to use the new location.brettw@chromium.org2011-01-011-1/+1
| | | | | | | | TEST=it compiles BUG=none Review URL: http://codereview.chromium.org/6028009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70345 0039d316-1c4b-4281-b951-d872f2087c98
* Update file version info/memory details/process utils to use string16.avi@chromium.org2010-12-231-2/+1
| | | | | | | | | BUG=23581 TEST=everything still works Review URL: http://codereview.chromium.org/5968008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70071 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: Allow IO in ProcessMetrics::GetWorkingSetKBytes().thestig@chromium.org2010-12-151-6/+17
| | | | | | | | BUG=61340 TEST=Opening up the task manager on Linux in debug mode does not assert. Review URL: http://codereview.chromium.org/5928001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69331 0039d316-1c4b-4281-b951-d872f2087c98
* Start using file_util symlink code, now that it's available.gspencer@chromium.org2010-12-031-4/+3
| | | | | | | | | | | | In CL http://codereview.chromium.org/5349007 I added some base API for manipulating symlinks (since I needed it for some ChromeOS code and noticed that other places could use it too), and this just starts using that API. BUG=none TEST=Ran ui_tests, passed trybots. Review URL: http://codereview.chromium.org/5286010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68181 0039d316-1c4b-4281-b951-d872f2087c98
* process_util_linux: mark functions that use /proc as safe for disk IOevan@chromium.org2010-11-011-0/+22
| | | | | | | | | | | | Reading files /proc is effectively just a kernel API; it's not unsafe like accessing normal disk files is. BUG=61136 TEST=no more DCHECKs in task manager Review URL: http://codereview.chromium.org/4135015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64640 0039d316-1c4b-4281-b951-d872f2087c98
* base: Move SplitString functions into the base namespace and update the callers.tfarina@chromium.org2010-10-141-3/+3
| | | | | | | | | BUG=None TEST=trybots Review URL: http://codereview.chromium.org/3750001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62483 0039d316-1c4b-4281-b951-d872f2087c98
* Clean up orphaned testserver processes before launching a new one in ↵rsimha@chromium.org2010-10-051-7/+39
| | | | | | | | | | | | | | | net::TestServer Several chrome tests have failed in recent days because some test cases crashed due to failures, leaving behind orphaned testserver processes. These test suites do not use out_of_proc_test_runner, and therefore, do not get the benefit of using the LaunchAppInNewProcessGroup()/KillProcessGroup() mechanism. This patch implements an added layer of safety, by causing TestServer::LaunchPython() to first kill any remaining orphaned instances of testserver.py before launching a new one. The check for an orphaned testserver process on POSIX is a process with exe_name "python", a parent_pid of "1" (indicating that it's an orphan), and command line parameters that contain the strings "testserver.py" and "<port>" where <port> is the port that is being used by the test server instance. BUG=55808,57253 TEST=Run a test that spawns a testserver and dies. Run another test. It shouldn't fail. Review URL: http://codereview.chromium.org/3537002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61584 0039d316-1c4b-4281-b951-d872f2087c98
* base: Finish moving the SplitString functions from string_util.h to ↵tfarina@chromium.org2010-09-241-0/+1
| | | | | | | | | | | string_split.h BUG=None TEST=trybos Review URL: http://codereview.chromium.org/3447008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60422 0039d316-1c4b-4281-b951-d872f2087c98
* Move the number conversions from string_util to a new file.brettw@chromium.org2010-07-301-32/+56
| | | | | | | | | | | | | Use the base namespace in the new file. Update callers. I removed all wstring variants and also the string->number ones that ignore the return value. That encourages people to write code and forget about error handling. TEST=included unit tests BUG=none Review URL: http://codereview.chromium.org/3056029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54355 0039d316-1c4b-4281-b951-d872f2087c98
* 40% speed up in parsing the /proc/<pid>/smaps file by changing ↵erg@chromium.org2010-05-121-4/+6
| | | | | | | | | | | | | | StringTokenizer. What used to take 10ms to parse now takes 6ms. - Profiling showed that doing the additional work to work with quotes added a bit of runtime, but most users don't use the optional quotes functionality. This speed parsing up by 20% by switching to a fast-path implementation, reverting to the slower path when necessary. - Eliminate temporary copies of tokens. This speeds up GetWorkingSetKBytes by another 20%. BUG=40033 TEST=Existing StringTokenizerTests. Review URL: http://codereview.chromium.org/1997017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47038 0039d316-1c4b-4281-b951-d872f2087c98
* Speed up the Task Manager on linux.erg@chromium.org2010-05-111-3/+12
| | | | | | | | | | | | - Unify the calls to get shared memory and private memory. On Linux, these call the same API and on Linux, it takes >10ms to fetch both values each time it is called. - Cache the returned memory values. While sorting the task manager by memory, it would make the expensive memory call for each row on each sort operation. BUG=40033 TEST=Existing task manager tests. Review URL: http://codereview.chromium.org/2047009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46938 0039d316-1c4b-4281-b951-d872f2087c98
* Replace CHECK(false) by LOG(FATAL) where appropriate.evan@chromium.org2010-05-051-2/+2
| | | | | | | | | The difference is that the error message doesn't contain "Assertion failed: false". Review URL: http://codereview.chromium.org/1970001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46422 0039d316-1c4b-4281-b951-d872f2087c98
* Move common code into process_util.cc.maruel@chromium.org2010-04-291-30/+28
| | | | | | | | | | | | | Fix namespace usage. Change ProcessEntry to have a common interface accross platforms and change ProcessFilter::Includes() to make use of it. Split NamedProcessIterator in two. BUG=none TEST=none Review URL: http://codereview.chromium.org/1689012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45953 0039d316-1c4b-4281-b951-d872f2087c98
* Merge the LINUX_TC_MALLOC #define with the existing TC_MALLOC #define.thestig@chromium.org2010-02-261-4/+3
| | | | | | | | BUG=36687 TEST=about:tcmalloc, etc, works when tcmalloc is enabled on Linux. Review URL: http://codereview.chromium.org/660118 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40080 0039d316-1c4b-4281-b951-d872f2087c98
* Mac: UI tweaks for task manager.thakis@chromium.org2010-01-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | Nib change: Reduce row height, make scrollbars smaller. Make text in task manager table slightly smaller. Show in decimal digit for %cpu. Show memory in KB/MB, not always in K. Change update frequency from 1s to 2s to match Activity Monitor's default. (all mac-only. ui team is fine with this.) Finally, turn taskman on. BUG=13156 TEST=Open task manager, look at it. Should look & feel similar to Activity Monitor. Review URL: http://codereview.chromium.org/536038 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36096 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: reenable malloc overrides.agl@chromium.org2010-01-081-66/+49
| | | | | | | | | | | | | | | | | (These were disabled in r35804 and r35810.) This time we are using the __libc_* names to get at the real glibc functions rather than dlsym. This now means that code that calls __libc_* gets the raw functions, not 'safe' ones. Also, this sets the visibility correctly. Previously we were not overriding malloc calls made in shared libraries. BUG=31809 TEST=Covered by unittests. http://codereview.chromium.org/533001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35823 0039d316-1c4b-4281-b951-d872f2087c98
* Also disable tests for code removed in r35804.agl@chromium.org2010-01-081-0/+2
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35810 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: disable malloc tricks to unbreak Ubuntu build.agl@chromium.org2010-01-081-0/+7
| | | | | | | | | BUG=31809 TEST=Run chromium-browser on Ubuntu. It should work. http://codereview.chromium.org/524075 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35804 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: Adjust /proc/pid/oom_adj to sacrifice plugin and renderer processes ↵thestig@chromium.org2009-12-101-2/+16
| | | | | | | | | | to the OOM killer. BUG=29752 TEST=During out of memory conditions, Linux kernel picks a plugin/renderer over the browser process. Review URL: http://codereview.chromium.org/467058 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34222 0039d316-1c4b-4281-b951-d872f2087c98
* Enable TCMalloc on Linux by default.willchan@chromium.org2009-11-251-10/+2
| | | | | | | | | | This change also reworks the tcmalloc dependency to be added only to chrome and test_shell, instead of base. This is necessary since otherwise tcmalloc will be double initialized (by both the main executable and dlopen'd shared objects like the npapitestplugin.so). Add valgrind suppressions. This are invalid reads on static initialization in the VDSOSupport module. I haven't investigated it yet, but I suspect they're benign. BUG=http://crbug.com/28149, http://crbug.com/28385 Review URL: http://codereview.chromium.org/399081 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33010 0039d316-1c4b-4281-b951-d872f2087c98
* Make calloc return NULL while initializing.vandebo@chromium.org2009-11-241-18/+37
| | | | | | | | | BUG=28244 TEST=Run chrome in shared library mode Review URL: http://codereview.chromium.org/431025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32953 0039d316-1c4b-4281-b951-d872f2087c98
* For Linux, override malloc and friends so that we can detect and then stop ↵vandebo@chromium.org2009-11-181-1/+99
| | | | | | | | | | | on out of memory. BUG=27222 TEST=new base unittests Review URL: http://codereview.chromium.org/391044 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32395 0039d316-1c4b-4281-b951-d872f2087c98
* linux: Remove NOTIMPL cluttering test outputevan@chromium.org2009-11-161-1/+0
| | | | | | | | BUG=27222 Review URL: http://codereview.chromium.org/395009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32078 0039d316-1c4b-4281-b951-d872f2087c98
* Log warnings, not errors, if we can't fetch memory status forsgk@google.com2009-11-131-3/+4
| | | | | | | | | commit charge reporting. Fix if-blocks around returning 0. BUG=none TEST=none Review URL: http://codereview.chromium.org/386031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31964 0039d316-1c4b-4281-b951-d872f2087c98
* Ensure OOM is a killer on the Mac.avi@chromium.org2009-11-121-0/+5
| | | | | | | | | BUG=http://crbug.com/12673 TEST=as in bug Review URL: http://codereview.chromium.org/385054 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31819 0039d316-1c4b-4281-b951-d872f2087c98
* More memory stats code cleanup:sgk@chromium.org2009-11-091-0/+46
| | | | | | | | | | | | Move GetSystemCommitCharge() into bsae\process_util*. Kill PrintChromeMemoryUsageInfo(), which was only used by reliability_tests.exe on Windows and whose stats are obsolete. Delete the now-unnecessary chrome\test\perf\mem_usage* files. BUG=none TEST=none Review URL: http://codereview.chromium.org/371025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31423 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: use /proc/pid/statm to get memory stats when /proc/pid/smaps is ↵thestig@chromium.org2009-11-041-30/+48
| | | | | | | | | | unavailable. BUG=23258 TEST=We get approximate memory usage in about:memory for sandboxed renderers. Review URL: http://codereview.chromium.org/365007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31019 0039d316-1c4b-4281-b951-d872f2087c98
* Make the memory resource functions return bools so that we know when the ↵vandebo@chromium.org2009-10-271-1/+1
| | | | | | | | | | | information is not available. Refactor TaskManager slightly. BUG=23366 TEST=See "N/A" for memory usage in Linux task manager Review URL: http://codereview.chromium.org/339012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30148 0039d316-1c4b-4281-b951-d872f2087c98
* Eliminate all uses of strerror() in code that uses src/base. strerror() is ↵tschmelcher@chromium.org2009-10-131-1/+1
| | | | | | | | | | | inherently unsafe in multi-threaded apps because it stores the string in a global buffer. It should never be used. If you want to log an error, use PLOG and friends, or if that's too high-level then use safe_strerror(). TEST=built on Linux in 32-bit and 64-bit mode; ran base_unittests in each case; ran Chromium itself in each case; try servers BUG=none Review URL: http://codereview.chromium.org/261055 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28850 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: remove the concept of physical memory from the task manager.agl@chromium.org2009-10-071-6/+4
| | | | | | | | | | | | | | | Physical memory isn't a concept on Linux. We have private pages and proportional set size. This patch matches the task manager up with about:memory. 'Private memory' gets you the number of private pages and 'Shared memory' is the PSS (except on systems with old kernels that don't have PSS, where it'll be zero). http://codereview.chromium.org/242096 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28337 0039d316-1c4b-4281-b951-d872f2087c98
* linux: implement GetCPUUsage() so the task manager shows CPUevan@chromium.org2009-09-191-0/+96
| | | | | | | | | | | | | Discussed in part here: http://groups.google.com/group/chromium-dev/browse_thread/thread/8e91f66f9af6ccec This implements option 3, which turned out to be pretty simple. BUG=19864 Review URL: http://codereview.chromium.org/215020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26647 0039d316-1c4b-4281-b951-d872f2087c98
* Remove code doing a no-op due to float -> int rounding.phajdan.jr@chromium.org2009-09-141-6/+5
| | | | | | | | | | | | | | | | Make implicit float -> int/long conversions explicit. (Implicit float -> int conversions can be found by compiling with -Wconversion in gcc [versions 4.1.1 and 4.2.4, and surely many others].) Landing the patch for Jacob Mandelson, original review: http://codereview.chromium.org/201091 BUG=none TEST=app_unittests & base_unittests Review URL: http://codereview.chromium.org/200122 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26119 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: about:memoryagl@chromium.org2009-09-011-5/+4
| | | | | | | | | | | | | (based on http://code.google.com/p/chromium/issues/detail?id=16251) Add about:memory support to Linux. Rather than try and copy the Windows output, we use a couple of metrics which make more sense on Linux: USS and PSS. http://codereview.chromium.org/177024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24979 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Fix a ton of compiler warnings."tony@chromium.org2009-08-281-5/+6
| | | | | | | | | | | This reverts commit r24792. TBR=estade Review URL: http://codereview.chromium.org/179028 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24796 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a ton of compiler warnings.estade@chromium.org2009-08-281-6/+5
| | | | | | | | | | | | | | | Most of these are classes with virtual methods lacking virtual destructors or NULL used in non-pointer context. BUG=none TEST=app_unittests && base_unittests --gtest_filter=-ConditionVariableTest.LargeFastTaskTest patch by Jacob Mandelson <jlmjlm [at] gmail> http://codereview.chromium.org/171028/show git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24792 0039d316-1c4b-4281-b951-d872f2087c98
* Remove the Mac-specific implementation of LaunchApp, and share the Linux ↵stuartmorgan@google.com2009-08-061-77/+0
| | | | | | | | | | | | | version. Fixes a race condition with file descriptors, and gives the Mac access to the environment-alterning version of LaunchApp BUG=11174 TEST=Launching render/plugin/utility processes should still work on the Mac Review URL: http://codereview.chromium.org/165067 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22649 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: Use _exit() instead of exit() in the child after fork() in failure ↵mdm@chromium.org2009-07-231-2/+7
| | | | | | | | | | | conditions. TEST=none BUG=none Review URL: http://codereview.chromium.org/159275 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21418 0039d316-1c4b-4281-b951-d872f2087c98
* This implements the functions necessary for the task manager on Linux.deanm@chromium.org2009-07-221-4/+62
| | | | | | | | | | | Patch by Joel Stanley. BUG=http://crbug.com/16251 Review URL: http://codereview.chromium.org/149455 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21271 0039d316-1c4b-4281-b951-d872f2087c98
* Set GTK_PATH to CHROMIUM_SAVED_GTK_PATH before launching xdg-open.thestig@chromium.org2009-07-211-1/+23
| | | | | | | | | | | | Wrappers that launch Chromium will need to set CHROMIUM_SAVED_GTK_PATH before modifying GTK_PATH. This can be done later in separate CLs. BUG=15565 TEST=see bug Review URL: http://codereview.chromium.org/159112 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21168 0039d316-1c4b-4281-b951-d872f2087c98
* Convert NOTIMPLs into a bug.estade@chromium.org2009-07-091-4/+4
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/155258 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20274 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: Add support for chrooted renderers.agl@chromium.org2009-06-151-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | http://code.google.com/p/chromium/wiki/LinuxSandboxIPC Without filesystem access from the renderers, we need another way of dealing with fontconfig and font loading. This add support for: * An "SBX_D" environment variable in the renderers which is used to signal the end of dynamic linking so that the chroot can be enforced. * A sandbox_host process, running outside the sandbox, to deal with fontconfig requests from the renderers. See the wiki page for the reasoning behind making it a separate process. * A new, custom SkFontHost for Skia. Because this is Chrome specific, it will live outside the upstream Skia tree. This FontHost can be configured either to drive fontconfig directly (for the browser process and for any unsandboxed renderers) or to use an IPC system. Since the same SkFontHost has to be linked into both the browser and renderer (they are the same binary), this switch has to be made at run time. Sandbox IPC calls are rare (a couple of dozen at page load time) and add about 50us of overhead for each call. (Reland of r17575 which was reverted in r17577) http://codereview.chromium.org/112074 BUG=8081 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18405 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: refactor zygote supportagl@chromium.org2009-06-121-17/+0
| | | | | | | | | | | | | | | | | | | http://code.google.com/p/chromium/wiki/LinuxZygote * Move Chrome specific bits out of base * Move away from the idea of reserved file descriptors (which don't really work with zygotes) * Load resources before forking renderers (means that we don't need communication between the zygote process and the renderers) * Make sure that gdb works against the browser again * Make sure that we have different ASLR between the renderers and the browser. http://codereview.chromium.org/119335 (This is a reland. First landed in r18109, reverted in r18112.) git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18291 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 18109, 18111: Windows UI tests failed.agl@chromium.org2009-06-101-0/+17
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18112 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: refactor zygote supportagl@chromium.org2009-06-101-17/+0
| | | | | | | | | | | | | | | | | | http://code.google.com/p/chromium/wiki/LinuxZygote * Move Chrome specific bits out of base * Move away from the idea of reserved file descriptors (which don't really work with zygotes) * Load resources before forking renderers (means that we don't need communication between the zygote process and the renderers) * Make sure that gdb works against the browser again * Make sure that we have different ASLR between the renderers and the browser. http://codereview.chromium.org/119335 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18109 0039d316-1c4b-4281-b951-d872f2087c98
* Enable zygote manager by default.dkegel@google.com2009-06-081-1/+45
| | | | | | | | | | | | | | Fix broken recursion check. Make OpenFile warning less scary, indicate it's normal at start of ui tests. Make ui tests pass. Avoid generating extra code on Mac. BUG=11841 TEST=start the browser, then make chrome and all .pak files unreadable; or alternately, start an installed browser, and uninstall the browser while it's running. Then create a new tab and browse to two new sites. Review URL: http://codereview.chromium.org/119289 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17909 0039d316-1c4b-4281-b951-d872f2087c98
* Prototype implementation of zygotes. dkegel@google.com2009-06-061-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Limitations that need addressing still: - Doesn't forcibly terminate children that should have exited but haven't Enable with env var ENABLE_ZYGOTE_MANAGER=1. BUG=11841 TEST= start the browser, then make chrome and all .pak files unreadable; or alternately, start an installed browser, and uninstall the browser while it's running. Then create a new tab and browse to two new sites. Here's an example script to hide and unhide the .pak files (note: do not move the directory they're in, that doesn't work): #!/bin/sh chmod_all() { chmod $1 sconsbuild/Debug/chrome for path in . locales obj/chrome/app/intermediate/repack obj/global_intermediate/* themes do chmod $1 sconsbuild/Debug/$path/*.pak done } case $1 in hide) chmod_all 000 ;; show) chmod_all 755 ;; esac Review URL: http://codereview.chromium.org/115773 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17840 0039d316-1c4b-4281-b951-d872f2087c98
* Revert r17575 and r17576. They are causing layout test errors.agl@chromium.org2009-06-041-5/+0
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17577 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: Add support for chrooted renderers.agl@chromium.org2009-06-041-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | http://code.google.com/p/chromium/wiki/LinuxSandboxIPC Without filesystem access from the renderers, we need another way of dealing with fontconfig and font loading. This add support for: * An "SBX_D" environment variable in the renderers which is used to signal the end of dynamic linking so that the chroot can be enforced. * A sandbox_host process, running outside the sandbox, to deal with fontconfig requests from the renderers. See the wiki page for the reasoning behind making it a separate process. * A new, custom SkFontHost for Skia. Because this is Chrome specific, it will live outside the upstream Skia tree. This FontHost can be configured either to drive fontconfig directly (for the browser process and for any unsandboxed renderers) or to use an IPC system. Since the same SkFontHost has to be linked into both the browser and renderer (they are the same binary), this switch has to be made at run time. Sandbox IPC calls are rare (a couple of dozen at page load time) and add about 50us of overhead for each call. http://codereview.chromium.org/112074 BUG=8081 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17575 0039d316-1c4b-4281-b951-d872f2087c98