summaryrefslogtreecommitdiffstats
path: root/ipc/ipc_channel.h
Commit message (Collapse)AuthorAgeFilesLines
* Make IPC::Channel::Listener:OnMessageReceived have a return value indicating ↵jam@chromium.org2010-12-241-2/+3
| | | | | | | | | whether a message was processed or not. TBR=brettw Review URL: http://codereview.chromium.org/5978003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70139 0039d316-1c4b-4281-b951-d872f2087c98
* Add support for sockets that can listen and accept a connection.dmaclach@chromium.org2010-12-201-5/+53
| | | | | | | | | | | | | | | | | | | | | These sockets allow one connection at a time, however clients can connect and disconnect repeatedly. These are going to be used by Cloud Print, Remoting and Automation. BUG=NONE TEST=BUILD Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=69660 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=69690 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=69694 Review URL: http://codereview.chromium.org/5749001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69696 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 69694 - Add support for sockets that can listen and accept a connection.dmaclach@chromium.org2010-12-201-53/+5
| | | | | | | | | | | | | | | | | | | | | | These sockets allow one connection at a time, however clients can connect and disconnect repeatedly. These are going to be used by Cloud Print, Remoting and Automation. BUG=NONE TEST=BUILD Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=69660 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=69690 Review URL: http://codereview.chromium.org/5749001 TBR=dmaclach@chromium.org Review URL: http://codereview.chromium.org/6060002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69695 0039d316-1c4b-4281-b951-d872f2087c98
* Add support for sockets that can listen and accept a connection.dmaclach@chromium.org2010-12-201-5/+53
| | | | | | | | | | | | | | | | | | | These sockets allow one connection at a time, however clients can connect and disconnect repeatedly. These are going to be used by Cloud Print, Remoting and Automation. BUG=NONE TEST=BUILD Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=69660 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=69690 Review URL: http://codereview.chromium.org/5749001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69694 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 69690 - Add support for sockets that can listen and accept a connection.dmaclach@chromium.org2010-12-201-53/+5
| | | | | | | | | | | | | | | | | | | | These sockets allow one connection at a time, however clients can connect and disconnect repeatedly. These are going to be used by Cloud Print, Remoting and Automation. BUG=NONE TEST=BUILD Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=69660 Review URL: http://codereview.chromium.org/5749001 TBR=dmaclach@chromium.org Review URL: http://codereview.chromium.org/5972002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69691 0039d316-1c4b-4281-b951-d872f2087c98
* Add support for sockets that can listen and accept a connection.dmaclach@chromium.org2010-12-201-5/+53
| | | | | | | | | | | | | | | | | These sockets allow one connection at a time, however clients can connect and disconnect repeatedly. These are going to be used by Cloud Print, Remoting and Automation. BUG=NONE TEST=BUILD Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=69660 Review URL: http://codereview.chromium.org/5749001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69690 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 69660 - Add support for sockets that can listen and accept a connection.dmaclach@chromium.org2010-12-181-53/+5
| | | | | | | | | | | | | | | | | | These sockets allow one connection at a time, however clients can connect and disconnect repeatedly. These are going to be used by Cloud Print, Remoting and Automation. BUG=NONE TEST=BUILD Review URL: http://codereview.chromium.org/5749001 TBR=dmaclach@chromium.org Review URL: http://codereview.chromium.org/6045002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69662 0039d316-1c4b-4281-b951-d872f2087c98
* Add support for sockets that can listen and accept a connection.dmaclach@chromium.org2010-12-181-5/+53
| | | | | | | | | | | | | | | These sockets allow one connection at a time, however clients can connect and disconnect repeatedly. These are going to be used by Cloud Print, Remoting and Automation. BUG=NONE TEST=BUILD Review URL: http://codereview.chromium.org/5749001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69660 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 69264 - Add support for sockets that can listen and accept a connection.dmaclach@chromium.org2010-12-161-53/+5
| | | | | | | | | | | | | | | | | | These sockets allow one connection at a time, however clients can connect and disconnect repeatedly. These are going to be used by Cloud Print, Remoting and Automation. BUG=NONE TEST=BUILD Review URL: http://codereview.chromium.org/5749001 TBR=dmaclach@chromium.org Review URL: http://codereview.chromium.org/5943002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69361 0039d316-1c4b-4281-b951-d872f2087c98
* Add support for sockets that can listen and accept a connection.dmaclach@chromium.org2010-12-151-5/+53
| | | | | | | | | | | | | | | These sockets allow one connection at a time, however clients can connect and disconnect repeatedly. These are going to be used by Cloud Print, Remoting and Automation. BUG=NONE TEST=BUILD Review URL: http://codereview.chromium.org/5749001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69264 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Add named testing interface."phajdan.jr@chromium.org2010-12-111-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | http://src.chromium.org/viewvc/chrome?view=rev&revision=67300 The change has been approved conditionally, i.e. if the outstanding review comments are handled in a follow-up as the top priority. Two weeks have passed, and I have not seen the follow-up. It is risky to keep this change in the tree, as it is already non-trivial to revert. Conflicts: chrome/browser/automation/automation_provider.cc chrome/test/ui/named_interface_uitest.cc ipc/ipc_channel_posix.cc TBR=nirnimesh BUG=chromium-os:8512 TEST=none Review URL: http://codereview.chromium.org/5707006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68944 0039d316-1c4b-4281-b951-d872f2087c98
* Convert over to channel handlesdmaclach@chromium.org2010-12-081-2/+7
| | | | | | | | | | | | This hides some of the internals of the posix channels from users, and gets rid of several #ifdef POSIX blocks. Generally simplifies usage of channels xplatform. BUG=none TEST=build Review URL: http://codereview.chromium.org/5598010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68621 0039d316-1c4b-4281-b951-d872f2087c98
* Reduce the maximum IPC message size.darin@chromium.org2010-11-291-1/+1
| | | | | | | | | | | | | | On 32-bit systems, it is possible that we will be unable to find a contiguous 256 MB region of memory in the browser process. Cutting this limit in half seems reasonable. R=cpu BUG=32815 TEST=none Review URL: http://codereview.chromium.org/5333004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67612 0039d316-1c4b-4281-b951-d872f2087c98
* Add named testing interface. This allows you to connect to a pre-existing ↵nirnimesh@chromium.org2010-11-241-1/+3
| | | | | | | | | | | | | | | | | | | | | Chrome process and run tests on it. This is an addition to the low level interface underlying testing frameworks like PyAuto and WebDriver. Normally, test frameworks communicate with Chrome over an unnamed socket pair on POSIX. The test creates the socket pair and then launches the browser as a child process, passing an open file descriptor for one end of the socket to the browser. This change adds a command line switch that, when passed to the browser, causes it to listen on a named socket instead, eliminating this parent/child process requirement. Therefore, you can potentially connect any number of tests to a preexisting browser process. For ChromeOS, this allows you to run tests on the instance of Chrome that is launched on startup, which controls things like the login and lock screens, the battery meter, the wireless UI, etc. Currently there is no way to run tests on a pre-existing Chrome instance. Eventually this will also allow you to connect both PyAuto and WebDriver to the same Chrome instance and run both in the same test. If you pass the browser the following command line switch: ./chrome --testing-channel=NamedTestingInterface:/path/to/file This causes the browser to listen for incoming connections. An AutomationProxy can connect to the browser by connecting a Unix domain socket to the specified path and control the browser over the socket. This is currently only for POSIX. Windows support will come in a future change. Also, this initial change only allows one connection; multiple connection support will come in a future change. BUG=chromium-os:8512 TEST=Run Chrome with --testing-interface=/var/tmp/NamedTestingInterface, then run NamedInterfaceTest.BasicNamedInterface under ui_tests. Review URL: http://codereview.chromium.org/4202004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67300 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 66840 - Add named testing interface. This allows you to connect to a ↵kkania@chromium.org2010-11-201-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | pre-existing Chrome process and run tests on it. This is an addition to the low level interface underlying testing frameworks like PyAuto and WebDriver. Normally, test frameworks communicate with Chrome over an unnamed socket pair on POSIX. The test creates the socket pair and then launches the browser as a child process, passing an open file descriptor for one end of the socket to the browser. This change adds a command line switch that, when passed to the browser, causes it to listen on a named socket instead, eliminating this parent/child process requirement. Therefore, you can potentially connect any number of tests to a preexisting browser process. For ChromeOS, this allows you to run tests on the instance of Chrome that is launched on startup, which controls things like the login and lock screens, the battery meter, the wireless UI, etc. Currently there is no way to run tests on a pre-existing Chrome instance. Eventually this will also allow you to connect both PyAuto and WebDriver to the same Chrome instance and run both in the same test. If you pass the browser the following command line switch: ./chrome --testing-channel=NamedTestingInterface:/path/to/file This causes the browser to listen for incoming connections. An AutomationProxy can connect to the browser by connecting a Unix domain socket to the specified path and control the browser over the socket. This is currently only for POSIX. Windows support will come in a future change. Also, this initial change only allows one connection; multiple connection support will come in a future change. BUG=chromium-os:8512 TEST=Run Chrome with --testing-interface=/var/tmp/NamedTestingInterface, then run NamedInterfaceTest.BasicNamedInterface under ui_tests. Review URL: http://codereview.chromium.org/4202004 TBR=nirnimesh@chromium.org Review URL: http://codereview.chromium.org/5177007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66856 0039d316-1c4b-4281-b951-d872f2087c98
* Add named testing interface. This allows you to connect to a pre-existing ↵nirnimesh@chromium.org2010-11-191-1/+3
| | | | | | | | | | | | | | | | | | | | | Chrome process and run tests on it. This is an addition to the low level interface underlying testing frameworks like PyAuto and WebDriver. Normally, test frameworks communicate with Chrome over an unnamed socket pair on POSIX. The test creates the socket pair and then launches the browser as a child process, passing an open file descriptor for one end of the socket to the browser. This change adds a command line switch that, when passed to the browser, causes it to listen on a named socket instead, eliminating this parent/child process requirement. Therefore, you can potentially connect any number of tests to a preexisting browser process. For ChromeOS, this allows you to run tests on the instance of Chrome that is launched on startup, which controls things like the login and lock screens, the battery meter, the wireless UI, etc. Currently there is no way to run tests on a pre-existing Chrome instance. Eventually this will also allow you to connect both PyAuto and WebDriver to the same Chrome instance and run both in the same test. If you pass the browser the following command line switch: ./chrome --testing-channel=NamedTestingInterface:/path/to/file This causes the browser to listen for incoming connections. An AutomationProxy can connect to the browser by connecting a Unix domain socket to the specified path and control the browser over the socket. This is currently only for POSIX. Windows support will come in a future change. Also, this initial change only allows one connection; multiple connection support will come in a future change. BUG=chromium-os:8512 TEST=Run Chrome with --testing-interface=/var/tmp/NamedTestingInterface, then run NamedInterfaceTest.BasicNamedInterface under ui_tests. Review URL: http://codereview.chromium.org/4202004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66840 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 66350 - Add named testing interface. This allows you to connect to a ↵nirnimesh@chromium.org2010-11-171-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | pre-existing Chrome process and run tests on it. This is an addition to the low level interface underlying testing frameworks like PyAuto and WebDriver. Normally, test frameworks communicate with Chrome over an unnamed socket pair on POSIX. The test creates the socket pair and then launches the browser as a child process, passing an open file descriptor for one end of the socket to the browser. This change adds a command line switch that, when passed to the browser, causes it to listen on a named socket instead, eliminating this parent/child process requirement. Therefore, you can potentially connect any number of tests to a preexisting browser process. For ChromeOS, this allows you to run tests on the instance of Chrome that is launched on startup, which controls things like the login and lock screens, the battery meter, the wireless UI, etc. Currently there is no way to run tests on a pre-existing Chrome instance. Eventually this will also allow you to connect both PyAuto and WebDriver to the same Chrome instance and run both in the same test. If you pass the browser the following command line switch: ./chrome --testing-channel=NamedTestingInterface:/path/to/file This causes the browser to listen for incoming connections. An AutomationProxy can connect to the browser by connecting a Unix domain socket to the specified path and control the browser over the socket. This is currently only for POSIX. Windows support will come in a future change. Also, this initial change only allows one connection; multiple connection support will come in a future change. BUG=chromium-os:8512 TEST=Run Chrome with --testing-interface=/var/tmp/NamedTestingInterface, then run NamedInterfaceTest.BasicNamedInterface under ui_tests. Review URL: http://codereview.chromium.org/4202004 TBR=nirnimesh@chromium.org Review URL: http://codereview.chromium.org/5139001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66368 0039d316-1c4b-4281-b951-d872f2087c98
* Add named testing interface. This allows you to connect to a pre-existing ↵nirnimesh@chromium.org2010-11-171-1/+3
| | | | | | | | | | | | | | | | | | | | | Chrome process and run tests on it. This is an addition to the low level interface underlying testing frameworks like PyAuto and WebDriver. Normally, test frameworks communicate with Chrome over an unnamed socket pair on POSIX. The test creates the socket pair and then launches the browser as a child process, passing an open file descriptor for one end of the socket to the browser. This change adds a command line switch that, when passed to the browser, causes it to listen on a named socket instead, eliminating this parent/child process requirement. Therefore, you can potentially connect any number of tests to a preexisting browser process. For ChromeOS, this allows you to run tests on the instance of Chrome that is launched on startup, which controls things like the login and lock screens, the battery meter, the wireless UI, etc. Currently there is no way to run tests on a pre-existing Chrome instance. Eventually this will also allow you to connect both PyAuto and WebDriver to the same Chrome instance and run both in the same test. If you pass the browser the following command line switch: ./chrome --testing-channel=NamedTestingInterface:/path/to/file This causes the browser to listen for incoming connections. An AutomationProxy can connect to the browser by connecting a Unix domain socket to the specified path and control the browser over the socket. This is currently only for POSIX. Windows support will come in a future change. Also, this initial change only allows one connection; multiple connection support will come in a future change. BUG=chromium-os:8512 TEST=Run Chrome with --testing-interface=/var/tmp/NamedTestingInterface, then run NamedInterfaceTest.BasicNamedInterface under ui_tests. Review URL: http://codereview.chromium.org/4202004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66350 0039d316-1c4b-4281-b951-d872f2087c98
* NaCl IPC bringup.abarth@chromium.org2010-11-121-1/+1
| | | | | | | | | | | | | | The IPC channel defines GetClientFileDescriptor only on POSIX. We haven't worked out yet exactly what NaCl primitive we're goign to use for an IPC channel, but we probably won't use a file descriptor. Removing this API in NaCl helps make this file compile. If we later find out we need this API, we might need to revisit this decision. Original patch by Eric Seidel. Review URL: http://codereview.chromium.org/4821004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65962 0039d316-1c4b-4281-b951-d872f2087c98
* ipc_channel: warn if someone forgets to check the result of Connect()evan@chromium.org2010-10-191-1/+2
| | | | | | | | I found a test that was doing this. Review URL: http://codereview.chromium.org/3759004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63083 0039d316-1c4b-4281-b951-d872f2087c98
* Coverity: Initialize member variables.jhawkins@chromium.org2010-10-151-0/+1
| | | | | | | | | | CID=1420,1480,1517,1634 BUG=none TEST=none Review URL: http://codereview.chromium.org/3767001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62776 0039d316-1c4b-4281-b951-d872f2087c98
* Remove an obsolete FIXME in ipc_channel.h.thestig@chromium.org2010-09-081-5/+0
| | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/3338006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58784 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
* Pepper audio basic functionality unit test, take 3.neb@chromium.org2010-04-051-1/+8
| | | | | | | | Also changed TestSink to be derived from IPC::Channel and made MockRenderThread service AddFilter/RemoveFilter, so that it can be used by MessageFilters. Review URL: http://codereview.chromium.org/1591009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@43623 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 43234 - Add a Pepper audio basic functionality unit test, take 2.arv@chromium.org2010-03-311-8/+1
| | | | | | | | | | | | Also changed TestSink to be derived from IPC::Channel and made MockRenderThread service AddFilter/RemoveFilter, so that it can be used by MessageFilters. Also removed some logging because it triggers Valgrind errors. Review URL: http://codereview.chromium.org/1466001 TBR=neb@chromium.org git-svn-id: svn://svn.chromium.org/chrome/trunk/src@43284 0039d316-1c4b-4281-b951-d872f2087c98
* Add a Pepper audio basic functionality unit test, take 2.neb@chromium.org2010-03-311-1/+8
| | | | | | | | | | Also changed TestSink to be derived from IPC::Channel and made MockRenderThread service AddFilter/RemoveFilter, so that it can be used by MessageFilters. Also removed some logging because it triggers Valgrind errors. Review URL: http://codereview.chromium.org/1466001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@43234 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 42656 - Add a Pepper audio basic functionality unit test.skerner@chromium.org2010-03-251-7/+0
| | | | | | | | | | | Also changed TestSink to be derived from IPC::Channel and made MockRenderThread service AddFilter/RemoveFilter, so that it can be used by MessageFilters. Review URL: http://codereview.chromium.org/1207005 TBR=neb@chromium.org Review URL: http://codereview.chromium.org/1344003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42692 0039d316-1c4b-4281-b951-d872f2087c98
* Add a Pepper audio basic functionality unit test.neb@chromium.org2010-03-251-0/+7
| | | | | | | | Also changed TestSink to be derived from IPC::Channel and made MockRenderThread service AddFilter/RemoveFilter, so that it can be used by MessageFilters. Review URL: http://codereview.chromium.org/1207005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42656 0039d316-1c4b-4281-b951-d872f2087c98
* Split the IPC code into ipc/agl@chromium.org2009-07-221-0/+118
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Revert "Move IPC code to ipc/"agl@chromium.org2009-04-031-123/+0
| | | | | | | 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-0/+123
(No review URL: Rietvelt couldn't cope) git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13062 0039d316-1c4b-4281-b951-d872f2087c98