summaryrefslogtreecommitdiffstats
path: root/chrome/common/child_process_host.h
Commit message (Collapse)AuthorAgeFilesLines
* Launch all child processes asynchronously so as not to block the IO thread.jam@chromium.org2009-11-211-16/+23
| | | | | | | BUG=6844, 27935 Review URL: http://codereview.chromium.org/402097 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32750 0039d316-1c4b-4281-b951-d872f2087c98
* Fixes almost all of the rest of lint errors in the chrome/ directory (minus ↵erg@google.com2009-11-131-2/+2
| | | | | | | | the really hard ones which will need actual review instead of rubber-stamping.) Review URL: http://codereview.chromium.org/386026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31932 0039d316-1c4b-4281-b951-d872f2087c98
* Use FilePath in ChildProcessHost.evan@chromium.org2009-10-131-1/+1
| | | | | | | | | BUG=24672 TEST=still compiles Review URL: http://codereview.chromium.org/270077 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28909 0039d316-1c4b-4281-b951-d872f2087c98
* Implement about:ipc dialog for Mac.jrg@chromium.org2009-09-281-0/+3
| | | | | | | | | Convert IPC logging trigger from x-process waitable event to a messages sent to all processes. Review URL: http://codereview.chromium.org/192070 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27405 0039d316-1c4b-4281-b951-d872f2087c98
* Replace the RenderProcessHost.PID function that returns the OS-generatedbrettw@chromium.org2009-08-311-0/+3
| | | | | | | | | | | | | | | | | | | | process ID with an internally-generated id() function. This allows us the guarantee that the IDs are unique over the entire run of the application. This also cleans up some code associated with managing the PID. The main potentially interesting change is now the PID is set uniquely for every creation of RenderProcessHost. It used to be set cleared if the process went away, and re-set if the process was re-created. The ID generation is in ChildProcesInfo so it is also unique between workers and plugins. I had to change some significant things in resource_dispatcher_host_unittest to take into account this new generation of IDs. BUG=17828 TEST=none Review URL: http://codereview.chromium.org/160203 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24899 0039d316-1c4b-4281-b951-d872f2087c98
* Change breakpads on the helper processes to keep our rimZ clean.mark@chromium.org2009-08-151-0/+8
| | | | | | | | | | | | | | | | | | | | | Initialize crash reporting in helper processes such as the renderer process. Renderer crash reporting stopped working in r23006 when multiple .app bundles were introduced, because the stats collection and crash reporting preference is presently accessed via NSUserDefaults, keyed on the bundle ID. The main browser process and helper processes have distinct bundle IDs. In the new scheme, only the main browser process consults this preference, and passes it to helper processes in their command lines. BUG=19204 TEST=When reporting is enabled, Breakpad should pick up browser and renderer process crashes; When reporting is enabled, renderer should not log messages like [mmdd/hhmmss:WARNING:/path/to/breakpad_mac.mm(47)] Breakpad disabled; When reporting is disabled, browser and renderer should both log these messages. Review URL: http://codereview.chromium.org/165546 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23509 0039d316-1c4b-4281-b951-d872f2087c98
* Re-commit r22981 after backout at r22992. Contains fixes to relocatemark@chromium.org2009-08-111-0/+7
| | | | | | | | | | | | | | | | plugin_carbon_interpose.dylib from the outer browser app bundle to the inner helper app bundle. Provide a separate app bundle for subprocesses like the renderer on the Mac. Remove LSUIElement and related hacks from the browser's app bundle. BUG=8044 TEST=Observe one Chromium and one or more Chromium Helper processes in Activity Monitor Review URL: http://codereview.chromium.org/164177 Review URL: http://codereview.chromium.org/164303 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23006 0039d316-1c4b-4281-b951-d872f2087c98
* Back out r22981, it may have caused Windows test failures.mark@chromium.org2009-08-111-7/+0
| | | | | | Review URL: http://codereview.chromium.org/164298 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22992 0039d316-1c4b-4281-b951-d872f2087c98
* Provide a separate app bundle for subprocesses like the renderer on the Mac.mark@chromium.org2009-08-111-0/+7
| | | | | | | | | | | Remove LSUIElement and related hacks from the browser's app bundle. BUG=8044 TEST=Observe one Chromium and one or more Chromium Helper processes in Activity Monitor Review URL: http://codereview.chromium.org/164177 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22981 0039d316-1c4b-4281-b951-d872f2087c98
* Split the IPC code into ipc/agl@chromium.org2009-07-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This splits the ipc code from the common project. The 'common' project pulls in all of webkit, the v8 bindings, skia, googleurl, and a number of other projects which makes it very difficult to deal with especially for external projects wanting just to use some of Chromium's infrastructure. This puts the ipc code into its top-level ipc/ directory with a dependency only on base. The common project depends on the new ipc/ipc.gyp:ipc target so that all projects currently pulling common in to get the IPC code still have it available. This mostly follows agl's pre-gyp attempt to do this which was r13062. Known issues: - Currently a number of projects depend on chrome/chrome.gyp:common in order to use the IPC infrastructure. Rather than fixing all of these dependencies I have made common depend on ipc/ipc.gyp:ipc and added "ipc" to the include_rules section of DEPS so that checkdeps.py doesn't complain. Over time projects that need IPC should depend on the IPC project themselves and dependencies on common removed, although I don't think many projects that need IPC will be able to get away without common currently. - ipc/ipc_message_macros.h still has #include "chrome/common/..." inside of a ipc/ should not refer to files in chrome/... now. I'm not sure how to resolve this since it's really an IDE bug - the named pipe name (windows+linux) and the logging event name (all) + env variable (posix) refer explicitly to 'Chrome' which somewhat hurts the illusion of ipc/ being an independent library. I think this should be examined in a subsequent, much smaller patch. - I've eliminated the IPC.SendMsgCount counter since it was implemented in a way to create a dependency from ipc/ to chrome/common/chrome_counters. This is the same approach that r13062 took. http://codereview.chromium.org/155905 (Patch from James Robinson) git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21342 0039d316-1c4b-4281-b951-d872f2087c98
* plugins: use OnChannelError to detect when the channel goes awayevan@chromium.org2009-07-101-9/+2
| | | | | | | | | | | | | | | Previously we used a special Watcher object to watch the process, but that is not portable to POSIX and this is simpler anyway. With this change, I now see ~PluginProcessHost() running when a plugin crashes. If you recall all the way back to http://codereview.chromium.org/16814 we did a similar thing to the renderer host. Review URL: http://codereview.chromium.org/155331 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20414 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "plugins: use OnChannelError to detect when the channel goes away"evan@chromium.org2009-07-101-2/+9
| | | | | | | This reverts commit r20349. Unit test failure. I suspect the test, but let's keep the tree green. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20354 0039d316-1c4b-4281-b951-d872f2087c98
* plugins: use OnChannelError to detect when the channel goes awayevan@chromium.org2009-07-101-9/+2
| | | | | | | | | | | | | | | Previously we used a special Watcher object to watch the process, but that is not portable to POSIX and this is simpler anyway. With this change, I now see ~PluginProcessHost() running when a plugin crashes. If you recall all the way back to http://codereview.chromium.org/16814 we did a similar thing to the renderer host. Review URL: http://codereview.chromium.org/155331 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20349 0039d316-1c4b-4281-b951-d872f2087c98
* ipc: use strings, not wstrings for channel ids.evan@chromium.org2009-06-041-2/+2
| | | | | | | | | | They're ASCII anyway. TEST=covered by existing tests Review URL: http://codereview.chromium.org/119131 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17682 0039d316-1c4b-4281-b951-d872f2087c98
* Headers cleanup in chrome/commonphajdan.jr@chromium.org2009-05-291-3/+1
| | | | | | | | | - reduce header dependencies - miscellanous cleanups (whitespace, explicit deps) Review URL: http://codereview.chromium.org/113945 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17177 0039d316-1c4b-4281-b951-d872f2087c98
* linux (and some posix): multiprocess plugins compiling.evan@chromium.org2009-04-231-0/+2
| | | | | | | | | | | | | | | | | | | The goal of this change is to *not* make any behavioral change, but to instead just get all the plugin-related files linking on Linux with a bunch of NOTIMPLEMENTED()s in the appropriate places. It's enormous enough already without any refactorings or new features. Changes include: - Lots of gcc warning fixes. - Use portable replacements for Windows-specific functions (_strdup, etc.). - Use TransportDIB instead of just shared memory in the plugin messaging. Note that this is not fleshed out on Linux and on Windows it just hacks in the existing handles so there should be no functional change. - Fix --plugin-launcher to use cross-platform APIs. Review URL: http://codereview.chromium.org/79020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14338 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Move IPC code to ipc/"agl@chromium.org2009-04-031-1/+1
| | | | | | | This reverts commit r13062 which, unsurprisingly, broke the build. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13063 0039d316-1c4b-4281-b951-d872f2087c98
* Move IPC code to ipc/agl@chromium.org2009-04-031-1/+1
| | | | | | | (No review URL: Rietvelt couldn't cope) git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13062 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor plugin process code which checks with the browser process before ↵jam@chromium.org2009-03-271-4/+7
| | | | | | | | | | | shutdown, to avoid races in which the browser process thinks the process is fine to use while it's shutting down. I also removed PluginProcess/WorkerProcess since they didn't have any code in them now. I removed the plugin process code which waits 10 seconds before shutting itself down. That was a premature optimization, since testing with/without this didn't show any difference (see http://www/~jabdelmalek/chrome/test/plugins/processes.html). In both cases, the plugin on a page would get recreated in less than 100ms, even with reusing or starting a plugin process from scratch. We already spawn new renderer processes on back and forth if it's a different origin, and the plugin will be in the cache anyways. Review URL: http://codereview.chromium.org/53091 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12703 0039d316-1c4b-4281-b951-d872f2087c98
* Hide the details about ResourceDispatcherHost messages from child processes. ↵jam@chromium.org2009-03-171-7/+7
| | | | | | | | The usage of RDH is now like RD, the client sends the message to RDH to see if it should handle it. I added methods to the Receiver interface so that RDH can get to the process id/handle/type when starting requests. Review URL: http://codereview.chromium.org/42202 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11816 0039d316-1c4b-4281-b951-d872f2087c98
* Make plugin_process_host.cc and child_process_host.cc compile on Posix.jhawkins@chromium.org2009-02-231-5/+10
| | | | | | Review URL: http://codereview.chromium.org/27018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10210 0039d316-1c4b-4281-b951-d872f2087c98
* Take out common functionality from PluginProcessHost and move it to ↵jam@chromium.org2009-02-181-0/+108
ChildProcessHost. Review URL: http://codereview.chromium.org/21443 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9935 0039d316-1c4b-4281-b951-d872f2087c98