summaryrefslogtreecommitdiffstats
path: root/chrome/browser/worker_host
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Header dependency cleanup in chrome/phajdan.jr@chromium.org2009-10-121-0/+1
| | | | | | | | | | | | - reduce header dependencies - remove things that shouldn't be #included in a header, like string_util.h and theme_resources.h! TEST=none BUG=none Review URL: http://codereview.chromium.org/245011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28705 0039d316-1c4b-4281-b951-d872f2087c98
* Fix race condition with message ports being dropped if sent before a worker ↵jam@chromium.org2009-09-213-24/+45
| | | | | | | | | | starts. BUG=22315 TEST=covered by worker-messageport-gc.html Review URL: http://codereview.chromium.org/208045 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26749 0039d316-1c4b-4281-b951-d872f2087c98
* Replace the RenderProcessHost.PID function that returns the OS-generatedbrettw@chromium.org2009-08-314-29/+29
| | | | | | | | | | | | | | | | | | | | 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
* First half of updating Worker.postMessage(), DOMWindow.postMessage(), andjorlow@chromium.org2009-08-263-32/+40
| | | | | | | | | | | | | | | MessagePort.postMessage() to accept multiple MessagePorts. Original review: http://codereview.chromium.org/173193 TBR=atwilson TEST=None (new functionality not yet exposed via bindings, so existing tests suffice) BUG=19948 Review URL: http://codereview.chromium.org/174566 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24536 0039d316-1c4b-4281-b951-d872f2087c98
* Cleaning up lines longer than 80 chars under src/chrome/browser. mark@chromium.org2009-08-171-1/+2
| | | | | | | | | | | | | | | | | | | Command: awk '{if ( length($0) > 80 ) { print FILENAME, FNR, $0 } }' *.cc *.h # recursive find . -type f \( -name '*.cc' -o -name '*.h' \) -exec awk '{if ( length($0) > 80 ) { print FILENAME, FNR, $0 } }' {} \; Patch by Pierre-Antoine LaFayette <pierre.lafayette@gmail.com> BUG=None TEST=None Code review URL: http://codereview.chromium.org/164566 Review URL: http://codereview.chromium.org/171066 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23583 0039d316-1c4b-4281-b951-d872f2087c98
* Change breakpads on the helper processes to keep our rimZ clean.mark@chromium.org2009-08-151-0/+1
| | | | | | | | | | | | | | | | | | | | | 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-2/+2
| | | | | | | | | | | | | | | | 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-2/+2
| | | | | | 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-2/+2
| | | | | | | | | | | 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
* Get rid of warning on CHROME_OS builder.jam@chromium.org2009-08-061-2/+2
| | | | | | Review URL: http://codereview.chromium.org/165080 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22655 0039d316-1c4b-4281-b951-d872f2087c98
* Enable message ports for workers.jam@chromium.org2009-08-064-11/+92
| | | | | | | TEST=included ui test Review URL: http://codereview.chromium.org/160576 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22653 0039d316-1c4b-4281-b951-d872f2087c98
* Cross-process Message Port implementation.jam@chromium.org2009-08-046-33/+382
| | | | | | | | | I'm sending this first, then I'll add support to workers in another changelist to avoid making this change larger. TEST=running message port related layout tests in ui_tests Review URL: http://codereview.chromium.org/159372 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22356 0039d316-1c4b-4281-b951-d872f2087c98
* Fix liner errors due to duplicate symbols in the switches. These switchesbrettw@chromium.org2009-07-231-0/+1
| | | | | | | were moved to IPC, but the source ones in chrome/common were kept. Review URL: http://codereview.chromium.org/160014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21389 0039d316-1c4b-4281-b951-d872f2087c98
* Split the IPC code into ipc/agl@chromium.org2009-07-223-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Make workers functional on OSX and Linux.levin@chromium.org2009-07-141-1/+13
| | | | | | | | | | BUG=http://crbug.com/16664 TEST=The same tests run for Web Workers on Windows should be run on Linux and OSX. Review URL: http://codereview.chromium.org/155015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20653 0039d316-1c4b-4281-b951-d872f2087c98
* plugins: use OnChannelError to detect when the channel goes awayevan@chromium.org2009-07-101-0/+1
| | | | | | | | | | | | | | | 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-1/+0
| | | | | | | 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-0/+1
| | | | | | | | | | | | | | | 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
* Split out some of the RVHDelegate functions into separate sub-classes. To limitbrettw@chromium.org2009-07-081-2/+6
| | | | | | | | | | the scope, this patch just contains those delegate functions implemented only by TabContents, plus the favicon functions implemented by the FavIconHelper. The only changes are re-ordering and moving the functions, and changes in the way that the functions are called through the new optional delegate. Review URL: http://codereview.chromium.org/149239 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20152 0039d316-1c4b-4281-b951-d872f2087c98
* Added stub native web worker support, including build support in preparationsehr@google.com2009-06-291-0/+5
| | | | | | | for integrating the native client build. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19479 0039d316-1c4b-4281-b951-d872f2087c98
* Implement a max worker count of 16 per tab and 64 total. Any workers ↵jam@chromium.org2009-06-184-54/+168
| | | | | | | | created after that are queued. Review URL: http://codereview.chromium.org/125242 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18763 0039d316-1c4b-4281-b951-d872f2087c98
* ipc: use strings, not wstrings for channel ids.evan@chromium.org2009-06-041-1/+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
* Use a NotificationRegistrar to listen for notifications.pkasting@chromium.org2009-05-222-5/+4
| | | | | | | BUG=2381 Review URL: http://codereview.chromium.org/113745 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16751 0039d316-1c4b-4281-b951-d872f2087c98
* Ensure workers don't outlive crashed renderers.jam@chromium.org2009-05-211-0/+1
| | | | | | Review URL: http://codereview.chromium.org/114035 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16638 0039d316-1c4b-4281-b951-d872f2087c98
* Reuse ChildProcessSecurityHost for worker processes.jam@chromium.org2009-05-201-0/+8
| | | | | | Review URL: http://codereview.chromium.org/115550 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16466 0039d316-1c4b-4281-b951-d872f2087c98
* Run workers in separate processes.jam@chromium.org2009-05-014-40/+114
| | | | | | Review URL: http://codereview.chromium.org/99016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15098 0039d316-1c4b-4281-b951-d872f2087c98
* Fix an assert caused by trying to add duplicate observers for multiple workers.jianli@chromium.org2009-04-221-11/+5
| | | | | | Review URL: http://codereview.chromium.org/87072 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14243 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a crash where the ResourceMessageFilter is deleted before apaulg@google.com2009-04-142-12/+32
| | | | | | | | | | | | | | | | | | SafeBrowsing check has completed. The problem occurs since the SafeBrowsingResourceHandler is not deleted when its associated URLRequest is cleaned up *and* a SafeBrowsing check is in progress. When the check completes, the next resource handler in the chain (the AsyncResourceHandler which caches a pointer the now deleted ResourceMessageFilter) will crash. This CL adds a notification for objects to know when the ResourceMessageFilter is destroyed. BUG=8544 (http://crbug.com) Review URL: http://codereview.chromium.org/63036 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13644 0039d316-1c4b-4281-b951-d872f2087c98
* Fix empty title for worker process host when running the worker from a url ↵jianli@chromium.org2009-04-091-10/+17
| | | | | | | | without domain. Review URL: http://codereview.chromium.org/63147 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13451 0039d316-1c4b-4281-b951-d872f2087c98
* Use one worker process per domain until we hit the maximum count of 10, then ↵jam@chromium.org2009-04-073-17/+90
| | | | | | | | | | reuse processes. Also add a test mode --webworker-process-per-core to create a worker process per worker until we hit the number of cores, then reuse. Review URL: http://codereview.chromium.org/61001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13279 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-0/+2
| | | | | | | | | | | 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
* Finish hooking up the worker process UI: use the domains of the workers as ↵jam@chromium.org2009-03-244-4/+67
| | | | | | | | | | the title in the task manager, and show an infobar when a page's workers die. I also cleaned up the code in RenderView which creates a window and widget, since when I originally wrote it I wasn't aware of RenderViewHost::FromID. Review URL: http://codereview.chromium.org/45025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12335 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor sandboxing code so that it can be used by worker processes.jam@chromium.org2009-03-181-6/+12
| | | | | | Review URL: http://codereview.chromium.org/42311 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12038 0039d316-1c4b-4281-b951-d872f2087c98
* Remove unneeded uses of base/hash_tables.h.thestig@chromium.org2009-03-171-1/+0
| | | | | | Review URL: http://codereview.chromium.org/48098 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11928 0039d316-1c4b-4281-b951-d872f2087c98
* Hide the details about ResourceDispatcherHost messages from child processes. ↵jam@chromium.org2009-03-173-7/+16
| | | | | | | | 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
* Removed unneeded includes of base/scoped_ptr.h. Reduce usage from ~800 files ↵thestig@chromium.org2009-03-131-1/+0
| | | | | | | | to ~400. Review URL: http://codereview.chromium.org/46039 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11651 0039d316-1c4b-4281-b951-d872f2087c98
* Remove logging.h from cc files that don't use it.thestig@chromium.org2009-03-121-1/+0
| | | | | | Review URL: http://codereview.chromium.org/42155 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11593 0039d316-1c4b-4281-b951-d872f2087c98
* Initial checkin of the out of process worker implementation.jam@chromium.org2009-03-044-0/+280
WebWorkerClient/WebWorker are parallel interfaces of WebCore::{WorkerObjectProxy, WorkerContextProxy} that use Chrome data types. When WebKit requests a WorkerObjectProxy, we create an instance of WebWorkerClientImpl. This class creates an object that implements a Chromium version of WorkerObjectProxy (i.e. with Chrome data types) through WebViewDelegate. That object is a WebWorkerProxy and talks over IPC to a WebWorker object in the worker process. The WebWorker object creates the actual WebCore::Worker object using another class in glue: WebWorkerImpl. When the WebCore::Worker object running in the worker process wants to talk back to the code running in the renderer, it talks to WebWorkerImpl which implements WebCore::WorkerObjectProxy. WebWorkerImpl converts the data types to Chrome compatible ones, and then calls the WebWorkerClient version which does IPC to get to the renderer process. This ends up at WebWorkerProxy, which calls WebWorkerClientImpl (the original class). In future changes, sandboxing, multiple worker processes etc will be added. Note that I also had to make two small changes to WebKit, since WorkerMessagingProxy couldn't be created as is for the nested worker case. I'll either check it in myself or work with Jian to do so. Review URL: http://codereview.chromium.org/27157 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10847 0039d316-1c4b-4281-b951-d872f2087c98