summaryrefslogtreecommitdiffstats
path: root/content/browser/utility_process_host.cc
Commit message (Collapse)AuthorAgeFilesLines
* Create an API around UtilityProcessHost and use that from chrome.jam@chromium.org2012-02-031-166/+0
| | | | | | | BUG=98716 Review URL: https://chromiumcodereview.appspot.com/9317074 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120342 0039d316-1c4b-4281-b951-d872f2087c98
* A few clients of the utility process had a race condition that could lead to ↵dgrogan@chromium.org2012-01-271-1/+2
| | | | | | | | | | | | | | a browser crash if the utility process crashed. IndexedDB was the worst offender. WebstoreInstallHelper, the profile importer, and posix plugin loader were also affected. As a side effect, NaClProcessHost and GpuProcessHost are now notified when their respective processes are killed and treat such an occurrence as a crash. BUG=108871 TEST= Review URL: http://codereview.chromium.org/9235052 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@119340 0039d316-1c4b-4281-b951-d872f2087c98
* Rename BrowserChildProcessHost implementation class to ↵jam@chromium.org2012-01-231-3/+3
| | | | | | | | | BrowserChildProcessHostImpl. BUG=98716 Review URL: https://chromiumcodereview.appspot.com/9117006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118758 0039d316-1c4b-4281-b951-d872f2087c98
* Add a Content API around BrowserChildProcessHost, similar to what was done ↵jam@chromium.org2012-01-201-6/+8
| | | | | | | | | | | | with ChildProcessHost. Now classes like PluginProcessHost don't derive from it, but instead use composition. I've also moved the iterator class into its own file in the public directory. Since classes don't derive from BrowserChildProcessHost and so can't static_cast from it, I added a template helper that does this. BUG=98716 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=118415 Review URL: https://chromiumcodereview.appspot.com/9150017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118516 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 118415 - Add a Content API around BrowserChildProcessHost, similar to ↵jam@chromium.org2012-01-201-8/+6
| | | | | | | | | | | | | what was done with ChildProcessHost. Now classes like PluginProcessHost don't derive from it, but instead use composition. I've also moved the iterator class into its own file in the public directory. Since classes don't derive from BrowserChildProcessHost and so can't static_cast from it, I added a template helper that does this. BUG=98716 Review URL: https://chromiumcodereview.appspot.com/9150017 TBR=jam@chromium.org git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118420 0039d316-1c4b-4281-b951-d872f2087c98
* Add a Content API around BrowserChildProcessHost, similar to what was done ↵jam@chromium.org2012-01-201-6/+8
| | | | | | | | | | | with ChildProcessHost. Now classes like PluginProcessHost don't derive from it, but instead use composition. I've also moved the iterator class into its own file in the public directory. Since classes don't derive from BrowserChildProcessHost and so can't static_cast from it, I added a template helper that does this. BUG=98716 Review URL: https://chromiumcodereview.appspot.com/9150017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118415 0039d316-1c4b-4281-b951-d872f2087c98
* Group BrowserChildProcesshost methods that will be part of the interface ↵jam@chromium.org2012-01-171-1/+1
| | | | | | | | | together, and make sure they're all CamelCase. BUG=98716 Review URL: https://chromiumcodereview.appspot.com/9228012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@117926 0039d316-1c4b-4281-b951-d872f2087c98
* Change over IgnoreReturn to IgnoreResult. remove IgnoreReturn.ajwong@chromium.org2012-01-061-2/+2
| | | | | | | | | BUG=98919 TEST=existing Review URL: http://codereview.chromium.org/9111032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@116631 0039d316-1c4b-4281-b951-d872f2087c98
* Add a mechanism to launch the utility process from the zygote on Linux.jorgelo@chromium.org2011-12-101-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | Allow the users of the utility process to specify whether the zygote should be used on Linux. This will allow sandboxing the uses of the utility process that don't do FS access. This is the first step to get the utility process sandboxed on Linux. Since most of the uses of the utility process don't do file access, launching all of those from the zygote will simplify sandboxing the one that does: extension unpacking. Subsequent CLs will port the uses of the utility process that don't do file access to launch from the zygote. BUG=93109 TEST=No functional changes yet, but test that nothing broke by running browser_tests::ExtensionWebstorePrivateApiTest.* and also logging into Chromium and installing an extension from the Web Store. Review URL: http://codereview.chromium.org/8849007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@113914 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 113027 - Zygote most of the uses of the utility process on Linuxdbeam@chromium.org2011-12-061-10/+3
| | | | | | | | | | | | | | | | | | | | | | | | Allow the user of the utility process to specify whether the zygote should be used on Linux. This allows to sandbox all the uses of the utility process that don't do FS access, which right now are all except extension unpacking and NPAPI plugin listing. This is the first step to get the utility process sandboxed on Linux. Since most of the uses of the utility process don't do file access, launching all of those from the zygote will simplify sandboxing the one that does: extension unpacking. BUG=93109 TEST=Try installing an extension from the web store. Review URL: http://codereview.chromium.org/8770025 TBR=jorgelo@chromium.org Review URL: http://codereview.chromium.org/8817013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@113165 0039d316-1c4b-4281-b951-d872f2087c98
* Zygote most of the uses of the utility process on Linuxjorgelo@chromium.org2011-12-051-3/+10
| | | | | | | | | | | | | | | | | | | | | Allow the user of the utility process to specify whether the zygote should be used on Linux. This allows to sandbox all the uses of the utility process that don't do FS access, which right now are all except extension unpacking and NPAPI plugin listing. This is the first step to get the utility process sandboxed on Linux. Since most of the uses of the utility process don't do file access, launching all of those from the zygote will simplify sandboxing the one that does: extension unpacking. BUG=93109 TEST=Try installing an extension from the web store. Review URL: http://codereview.chromium.org/8770025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@113027 0039d316-1c4b-4281-b951-d872f2087c98
* Make ChildProcessHost be used through an interface in content/public, ↵jam@chromium.org2011-12-031-4/+5
| | | | | | | | | instead of by inheritence. BUG=98716 Review URL: http://codereview.chromium.org/8787004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112878 0039d316-1c4b-4281-b951-d872f2087c98
* Don't make classes derive from ChildProcessHost, and instead have them use ↵jam@chromium.org2011-12-021-9/+7
| | | | | | | | | it through composition. This cleans up the code and makes it easier to understand (as well as more closely conform to the Google C++ style guide). It also makes it possible to add an interface around ChildProcessHost in a future change. BUG=98716 Review URL: http://codereview.chromium.org/8774040 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112769 0039d316-1c4b-4281-b951-d872f2087c98
* Move the ProcessType enum out to its own file. This is in preparation for ↵jam@chromium.org2011-12-011-1/+1
| | | | | | | | | getting rid of ChildProcessInfo. BUG=98716 Review URL: http://codereview.chromium.org/8760011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112353 0039d316-1c4b-4281-b951-d872f2087c98
* Convert NewRunnableFunction/NewRunnableMethod calls to use base::Bind().dcheng@chromium.org2011-11-151-2/+5
| | | | | | | | | BUG=none TEST=compiles and tests pass. Review URL: http://codereview.chromium.org/8556001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110164 0039d316-1c4b-4281-b951-d872f2087c98
* Move BrowserThread to content namespace.joi@chromium.org2011-11-021-0/+2
| | | | | | | | | TBR=owners BUG=98716 Review URL: http://codereview.chromium.org/8437002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108270 0039d316-1c4b-4281-b951-d872f2087c98
* Move content_browser_client.h to public, and while at it, movejoi@chromium.org2011-10-191-1/+1
| | | | | | | | | | | | window_container_type.h as well since it is included by content_browser_client.h BUG=98716 TEST=it builds + existing tests Review URL: http://codereview.chromium.org/8346017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106323 0039d316-1c4b-4281-b951-d872f2087c98
* Move content_switches to content\public\common.jam@chromium.org2011-10-131-1/+1
| | | | | | | BUG=98716 Review URL: http://codereview.chromium.org/8277018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105389 0039d316-1c4b-4281-b951-d872f2087c98
* Finish moving plugin probing out of process.rsesek@chromium.org2011-10-121-0/+3
| | | | | | | | | | | | This moves all browser-side synchronous callers to use the asynchronous PluginService interface. BUG=17863,95114 TEST=Covered by tests. Plugins still work. Review URL: http://codereview.chromium.org/8071013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105069 0039d316-1c4b-4281-b951-d872f2087c98
* Get rid of the profile import process code, and instead go through the ↵jam@chromium.org2011-10-031-1/+1
| | | | | | | | utility process like the rest of our tasks that we want to run outside the browser. When that code was first written, we didn't have the utility process. Review URL: http://codereview.chromium.org/8108001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@103714 0039d316-1c4b-4281-b951-d872f2087c98
* Move plugin loading out of process on Mac and Linux.rsesek@chromium.org2011-09-271-7/+8
| | | | | | | | | | | | | | This creates a new set of IPC messages for the utility process to load plugins to get the WebPluginInfo data in a separate process. Previously this was done in the browser process, but that involves loading arbitrary third-party code into the address space and then executing it. BUG=17863,95114 TEST=Plugins work as before. Review URL: http://codereview.chromium.org/7889025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@102971 0039d316-1c4b-4281-b951-d872f2087c98
* Give plug-in processes an executable heap and disable PIE/ASLR for Nativemark@chromium.org2011-08-241-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Client loader processes. Some plug-ins depend on having an executable heap. They write code to data pages and attempt to execute it without calling mprotect to mark this code as executable. Native Client needs to allocate a contiguous 1GB of address space. ASLR may interfere with there being a "hole" this large in the address space by the time NaCl makes its request. Non-executable heaps are only available in 10.7 and later for 32-bit processes. PIE/ASLR was formerly disabled for all processes other than the browser process. This change reenables it for all processes other than the NaCl loader. PIE/ASLR is available on 10.5 and later, although the implementation is stronger in 10.7 than in earlier releases. This change results in two new helpers in addition to the existing Chromium Helper.app: Chromium Helper EH.app (for executable heaps) and Chromium Helper NP.app (for no PIE). libplugin_carbon_interpose.dylib moves out of the helper .app and directly into the versioned directory. The InfoPlist.strings have been removed from the helper app, but empty .lproj directories remain. BUG=90221, 93551 TEST=everything Review URL: http://codereview.chromium.org/7714018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@97984 0039d316-1c4b-4281-b951-d872f2087c98
* wstring: remove wstrings from ChildProcessInfoevan@chromium.org2011-08-051-1/+2
| | | | | | | | | Convert MetricsServices' child_process_stats_buffer_ while I'm at it. Review URL: http://codereview.chromium.org/7583016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@95680 0039d316-1c4b-4281-b951-d872f2087c98
* Remove g_browser_process dependency from content. Also make all the ↵jam@chromium.org2011-06-131-8/+4
| | | | | | | | | SyncChannels in the browser process ChannelProxy instead, since no code in the browser should send synchronous IPC messages. The renderer one was done like that a long time ago to send sync IPCs for accessibility, and we learnt that that doesn't work. BUG=76697 Review URL: http://codereview.chromium.org/7046100 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@88806 0039d316-1c4b-4281-b951-d872f2087c98
* Move UtilityProcessHost to content and move the message sending/dispatching ↵jam@chromium.org2011-06-091-0/+146
to the clients. This allows the content layer to use the class. BUG=76697 Review URL: http://codereview.chromium.org/6995095 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@88586 0039d316-1c4b-4281-b951-d872f2087c98