summaryrefslogtreecommitdiffstats
path: root/chrome/common/child_process_host.h
Commit message (Collapse)AuthorAgeFilesLines
* FBTF: Small nits; moving virtual methods to implementation.erg@google.com2010-10-081-3/+1
| | | | | | | | | BUG=none TEST=compiles Review URL: http://codereview.chromium.org/3627002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61976 0039d316-1c4b-4281-b951-d872f2087c98
* FBTF: Remove unneeded headers from base/ (part 6)thestig@chromium.org2010-08-191-2/+1
| | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/3093013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56641 0039d316-1c4b-4281-b951-d872f2087c98
* FBTF: Header cleanup in chrome/common. Part 1.jhawkins@chromium.org2010-08-171-5/+7
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/3106016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56444 0039d316-1c4b-4281-b951-d872f2087c98
* `#pragma once` for app, base, chrome, gfx, ipc, net, skia, viewsthakis@chromium.org2010-07-261-0/+1
| | | | | | | | | BUG=50273 TEST=everything still builds, build is 10% faster on windows, same speed on mac/linux TBR: erg git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53716 0039d316-1c4b-4281-b951-d872f2087c98
* Fixed compile error.sanjeevr@chromium.org2010-07-141-4/+6
| | | | | | | | TBR=jam@chromium.org Review URL: http://codereview.chromium.org/2962014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52284 0039d316-1c4b-4281-b951-d872f2087c98
* Moved sending the PluginProcessMsg_AskForShutdown message to the ↵sanjeevr@chromium.org2010-07-141-0/+10
| | | | | | | | | | | | CreateChannel method. This ensures that it gets sent before all other messages. Also moved the font precaching code to a common place because it is needed in multiple places. BUG=None TEST=Test for regressions with launching the utility process. Review URL: http://codereview.chromium.org/2906007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52283 0039d316-1c4b-4281-b951-d872f2087c98
* Moved common parts of ChildProcessHost into chrome/common and created a ↵sanjeevr@chromium.org2010-07-031-0/+111
| | | | | | | | | | | BrowserChildProcessHost with browser-specific implementation. This is in preparation of creating a ServiceChildProcessHost. BUG=None TEST=Test for regressions . Review URL: http://codereview.chromium.org/2885017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51593 0039d316-1c4b-4281-b951-d872f2087c98
* Move more files from chrome/common to chrome/browserphajdan.jr@chromium.org2010-02-231-154/+0
| | | | | | | | | | to further reduce bad dependencies on chrome/browser. BUG=none TEST=none Review URL: http://codereview.chromium.org/652051 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39703 0039d316-1c4b-4281-b951-d872f2087c98
* Implement the broker process that launches NaCl loader processes on 64-bit ↵gregoryd@google.com2010-02-011-0/+2
| | | | | | | | | | | | Windows systems. BUG=28176 TEST=none Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=37578 Review URL: http://codereview.chromium.org/542030 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37720 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 37578 - Implement the broker process that launches NaCl loader ↵gregoryd@google.com2010-01-301-2/+0
| | | | | | | | | | | | processes on 64bit Windows systems. BUG=28176 TEST=none Review URL: http://codereview.chromium.org/542030 TBR=gregoryd@google.com git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37580 0039d316-1c4b-4281-b951-d872f2087c98
* Implement the broker process that launches NaCl loader processes on 64-bit ↵gregoryd@google.com2010-01-301-0/+2
| | | | | | | | | | Windows systems. BUG=28176 TEST=none Review URL: http://codereview.chromium.org/542030 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37578 0039d316-1c4b-4281-b951-d872f2087c98
* Create initial GPU backing store in the GPU process for X windows applications.brettw@chromium.org2010-01-261-3/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | This gets the window from the RenderWidgetHostViewGtk and just does OpenGL calls directly into it. There are a lot of bugs, especially around expose events, which aren't really processed at all, and also tab teardown and reparenting. The new backing store defaults to off. This does some refactoring of the existing Windows GPU process backing store implementation to make some of it sharable by this Linux verion. This removes some previously defunct in-process GL backing store code and moves it to the GPU process. This patch does some refactoring around how child processes are created using zygoes or not. I found there were many places where a command line would be checked with special logic to know whether to enable zygote code or not. I tried to unify this so it could be computed once for each process type. This is what most of the changed files in chrome/browser are related to. BUG=none TEST=none Review URL: http://codereview.chromium.org/548112 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37088 0039d316-1c4b-4281-b951-d872f2087c98
* Add the ability for the GPU process to be used to paint the backing store of abrettw@chromium.org2010-01-131-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tab. This is the first pass and is currently a bit buggy and incomplete. This patch refactors the backing store to make it a virtual interface which is then implemented by the platform-specific backing stores. This cleans up the multi-platform aspects of the old code, and also makes it possible to create different backing stores (such as ones in another process). This renames the BackingStore::PaintRect function to PaintToBackingStore which clears up what it does. I would often get confused and think that it paints the backing store to the screen. This makes a common way to capture backing store information and adds it to the backing store API. This removed a bunch of ugly ifdefs. This adds the ability for a backing store to specify that the TransportDIB should not be freed by RenderWidgetHost when painting is complete. This is necessary since the out-of-process version needs to use it after the RenderWidget paint function has returned. This pushes up the vector of copy_rect from RenderWidgetHost to the actual BackingStores. This prevents us from sending duplicate data over IPC. It also makes the common non-IPC case more efficient, since we end up setting up various surfaces only once when there are multiple update rects. BUG=none TEST=none Review URL: http://codereview.chromium.org/523028 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36075 0039d316-1c4b-4281-b951-d872f2087c98
* 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