summaryrefslogtreecommitdiffstats
path: root/chrome/browser/worker_host
Commit message (Collapse)AuthorAgeFilesLines
* WebSocket in Worker: commandline passing for worker process.ukai@chromium.org2009-12-072-4/+37
| | | | | | | | | | | | Pass feature control command line flags to worker process, and enable WebKit features in worker. Also, passing logging flags and prepend --render-cmd-prefix if specified. BUG=27618 TEST=none Review URL: http://codereview.chromium.org/445003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33957 0039d316-1c4b-4281-b951-d872f2087c98
* Changed shared worker code so incognito windows do not have access to ↵atwilson@chromium.org2009-11-264-40/+66
| | | | | | | | | | | non-incognito shared workers. BUG=27883 TEST=added new uitest Review URL: http://codereview.chromium.org/441022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33164 0039d316-1c4b-4281-b951-d872f2087c98
* Launch all child processes asynchronously so as not to block the IO thread.jam@chromium.org2009-11-211-35/+14
| | | | | | | 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
* Fix build.levin@chromium.org2009-11-201-1/+1
| | | | | | | | | | TBR=jam@chromium.org TEST=None BUG=None Review URL: http://codereview.chromium.org/414023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32587 0039d316-1c4b-4281-b951-d872f2087c98
* Fix unitialized memory access in workers.levin@chromium.org2009-11-202-6/+71
| | | | | | | | | | | | | | | | | | | | The primary issue was that OnDestroy didn't change the entangled port to have its entangled port be none. A secondary issues that came up is that in very rare circumstances (like a crash happening early in a worker process), it seemed like it may be possible that one of the message ports may think it is entangled and the other half may not, so the Erase method guards against this. Also, some code was added to verify the internal structure before running code and after. BUG=27839 TEST=valgrind on linux running ui tests, specifically WorkerTest.WorkerFastLayoutTests. Review URL: http://codereview.chromium.org/402106 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32586 0039d316-1c4b-4281-b951-d872f2087c98
* Fixes almost all of the rest of lint errors in the chrome/ directory (minus ↵erg@google.com2009-11-131-1/+1
| | | | | | | | 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
* Changed WorkerProcessHost::WorkerInstance to use std::list instead of std::set,atwilson@chromium.org2009-11-132-30/+41
| | | | | | | | | | | | because the posix version of std::set has no way to update the iterator when calling erase(), and using the old invalid iterator was corrupting memory. BUG=27589 TBR=levin@chromium.org Review URL: http://codereview.chromium.org/385083 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31885 0039d316-1c4b-4281-b951-d872f2087c98
* Added lifecycle management and sharing support for SharedWorkers. SharedWorkersatwilson@chromium.org2009-11-134-65/+532
| | | | | | | | | | | | can now outlive their parent pages and can be shared by multiple instances across multiple tabs. BUG=26233 TEST=ui tests Review URL: http://codereview.chromium.org/390017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31868 0039d316-1c4b-4281-b951-d872f2087c98
* Added support for --worker-startup-dialog command line flag.atwilson@chromium.org2009-11-061-0/+5
| | | | | | | | | Added ChildProcess::WaitForDebugger() utility routine, and changed the various processes to use it. Review URL: http://codereview.chromium.org/370006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31188 0039d316-1c4b-4281-b951-d872f2087c98
* Added beginnings of browser-process support for shared workers.atwilson@chromium.org2009-11-054-24/+37
| | | | | | | | | | | | | Refactored WebWorkerClientProxy into two classes - WebWorkerDispatcher which dispatches incoming IPCs for the worker, and WebWorkerClientProxy, which handles outgoing API calls from WebWorkerImpl. This allows WebWorkerClientProxy to be reused by WebSharedWorkerDispatcher. BUG=26233 TEST=none (will enable layout tests when basic functionality available) Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=31077 Review URL: http://codereview.chromium.org/351004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31096 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Added beginnings of browser-process support for shared workers."atwilson@chromium.org2009-11-054-37/+24
| | | | | | This reverts commit 31077. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31080 0039d316-1c4b-4281-b951-d872f2087c98
* Added beginnings of browser-process support for shared workers.atwilson@chromium.org2009-11-054-24/+37
| | | | | | | | | | | Refactored WebWorkerClientProxy into two classes - WebWorkerDispatcher which dispatches incoming IPCs for the worker, and WebWorkerClientProxy, which handles outgoing API calls from WebWorkerImpl. This allows WebWorkerClientProxy to be reused by WebSharedWorkerDispatcher. BUG=26233 TEST=none (will enable layout tests when basic functionality available) Review URL: http://codereview.chromium.org/351004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31077 0039d316-1c4b-4281-b951-d872f2087c98
* Third patch in getting rid of caching MessageLoop pointers and always using ↵jam@chromium.org2009-11-023-15/+7
| | | | | | | | | | ChromeThread instead. BUG=25354 Review URL: http://codereview.chromium.org/342068 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30687 0039d316-1c4b-4281-b951-d872f2087c98
* Initial pass of shared workers renderer-side codeatwilson@chromium.org2009-10-301-29/+49
| | | | | | | | | | | | | Added initial interface hooks betweek WebKit code and renderer-side worker code. The proper messages are generated to fire off a shared worker, but they are currently ignored by the browser process. BUG=26233 TEST=none (will enable layout tests when basic functionality available) Review URL: http://codereview.chromium.org/340036 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30599 0039d316-1c4b-4281-b951-d872f2087c98
* Degrade the https color and lock icon for the page that has a worker that ↵dimich@google.com2009-10-192-0/+20
| | | | | | | | | | | loads subresource with bad cert. The idea is to make UI reflect loading of resources with bad certificates that were previously approved by the user. bug=20176 TEST=SSLUITest.TestUnsafeContentsInWorker unit_test. Review URL: http://codereview.chromium.org/268006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29461 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
* 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