summaryrefslogtreecommitdiffstats
path: root/ipc/ipc_channel_proxy.h
Commit message (Collapse)AuthorAgeFilesLines
* replace OVERRIDE and FINAL with override and final in ipc/mostynb2014-10-071-4/+4
| | | | | | | | BUG=417463 Review URL: https://codereview.chromium.org/633563002 Cr-Commit-Position: refs/heads/master@{#298413}
* Manual fixups for scoped_refptr operator T* removal in ipc/dcheng2014-08-281-5/+7
| | | | | | | | BUG=110610 Review URL: https://codereview.chromium.org/512153002 Cr-Commit-Position: refs/heads/master@{#292404}
* Introduce ChannelMojomorrita@chromium.org2014-08-041-2/+8
| | | | | | | | | | | | | | | | | | This CL introduces ChannelMojo IPC::Channel implementation and optionally applies it for renderer-browser IPC channel. Current stability is like 5-seconds browser and There are rough edges. It often closes the channel so needs to be more robust. Even though the level of stability, having it in the tree will helps team to try and improve it. BUG=377980 R=darin@chromium.org,jam@chromium.org,viettrungluu@chromium.org TEST=ipc_channel_mojo_unittest.cc Review URL: https://codereview.chromium.org/382333002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@287402 0039d316-1c4b-4281-b951-d872f2087c98
* IPC::Channel: Reduce POSIX specific API surfacemorrita@chromium.org2014-06-071-1/+0
| | | | | | | | | | | | | | | This change is a simple cleanup: It removes some Channel API that is only used only in POSIX specific tests. These funtions still live in ChannelPosix. POSIX speicific tests now touch ChannelPosix instead of its superclass Channel. TEST=none R=darin@chromium.org, jam@chromium.org BUG=377980 Review URL: https://codereview.chromium.org/320433002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275632 0039d316-1c4b-4281-b951-d872f2087c98
* Make IPC::Channel polymorphicmorrita@chromium.org2014-06-061-1/+1
| | | | | | | | | | | | | | This change makes each platform specific ChannelImpl into a subclass of Channel: ChannelPosix, ChannelWin, ChannelNacl. delegated functions are now virtual. TEST=none BUG=377980 R=darin@chromium.org, jam@chromium.org Review URL: https://codereview.chromium.org/310293002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275505 0039d316-1c4b-4281-b951-d872f2087c98
* Add IPC::ChannelProxy::Create() and IPC::SyncChannel::Create()morrita@chromium.org2014-06-051-4/+8
| | | | | | | | | | | | | | | | | | | This change replaces constructors with Create() methods of ChannelProxy and SyncChannel. This open the possibility to introduce polymorphism to these classes. This is a revision of r274310 (https://codereview.chromium.org/301973003/) in which I added bunch of Create*() method variants. The chagne was reverted. This change no longer does it and just keeps using Channel::Mode to specify the channel type. TEST=none BUG=377980 R=darin@chromium.org,jam@chromium.org Review URL: https://codereview.chromium.org/310853003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275140 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 274310 "Introduce IPC::ChannelProxy::Create*() and IPC::S..."lambroslambrou@chromium.org2014-06-021-40/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Broke Windows compile: http://build.chromium.org/p/chromium.win/buildstatus?builder=Win%20x64%20Builder&number=180 FAILED: ninja -t msvc -e environment.x64 -- C:\b\build\goma/gomacc "C:\b\depot_tools\win_toolchain\vs2013_files\VC\bin\amd64\cl.exe" /nologo /showIncludes /FC @obj\remoting\host\win\remoting_core.wts_session_process_delegate.obj.rsp /c ..\..\remoting\host\win\wts_session_process_delegate.cc /Foobj\remoting\host\win\remoting_core.wts_session_process_delegate.obj /Fdobj\remoting\remoting_core.cc.pdb c:\b\build\slave\win_x64_builder\build\src\remoting\host\win\wts_session_process_delegate.cc(386) : error C2661: 'IPC::ChannelProxy::ChannelProxy' : no overloaded function takes 4 arguments ninja: build stopped: subcommand failed. > Introduce IPC::ChannelProxy::Create*() and IPC::SynChannel::Create*() > > This change hides constructors of these classes so that we can turn > them polymorphic classes. > > Note that having almost identical ChannelProxy::Init*() isn't great > and they will be replaced by a factory-like abstraction in coming > changes. > > TEST=none > R=darin,cpu > BUG=377980 > > Review URL: https://codereview.chromium.org/301973003 TBR=morrita@chromium.org Review URL: https://codereview.chromium.org/312553004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@274315 0039d316-1c4b-4281-b951-d872f2087c98
* Introduce IPC::ChannelProxy::Create*() and IPC::SynChannel::Create*()morrita@chromium.org2014-06-021-6/+40
| | | | | | | | | | | | | | | | | This change hides constructors of these classes so that we can turn them polymorphic classes. Note that having almost identical ChannelProxy::Init*() isn't great and they will be replaced by a factory-like abstraction in coming changes. TEST=none R=darin,cpu BUG=377980 Review URL: https://codereview.chromium.org/301973003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@274310 0039d316-1c4b-4281-b951-d872f2087c98
* Ensure that any IPC sent from a child process that couldn't be deserialized ↵jam@chromium.org2014-05-151-0/+1
| | | | | | | | | | | | causes that process to be killed. Today we do this only for a subset of IPCs and not all process types. R=jar@chromium.org, tsepez@chromium.org Review URL: https://codereview.chromium.org/283313002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270839 0039d316-1c4b-4281-b951-d872f2087c98
* Move IPC::MessageFilter and router to a separate filedmichael@chromium.org2014-04-251-50/+3
| | | | | | | | | | | | | | | There are no changes in implementation in this CL. This is in preparation for making IPC::Channel support filters on the Channel's thread. BUG=364241 TBR=cpu@chromium.org,nduca@chromium.org cpu: OWNERS for win8 nduca: OWNERS for components/tracing Review URL: https://codereview.chromium.org/245443005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@266057 0039d316-1c4b-4281-b951-d872f2087c98
* Eliminate a potential race in IPC::ChannelProxydmichael@chromium.org2014-03-201-0/+4
| | | | | | | | | | | | | | | | | | | | | Doing the following steps with ChannelProxy leads to a data race: 1) Create the ChannelProxy, but don't initialize it. 2) Add a filter. 3) Init the ChannelProxy. The problem is, AddFilter() posts a task from the Listener thread to the IPC task runner to do OnAddFilter. Prior to this patch, OnAddFilter will try to read channel_ even though channel_ may not have been initialized, and it's accessed without any synchronization. This patch only really adds the filter if peer_pid_ has been set on the IPC::Channel thread; otherwise, it waits until the connection has been established to really add filters. See the bug for more detail. BUG=244383 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=256188 Review URL: https://codereview.chromium.org/183553004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@258406 0039d316-1c4b-4281-b951-d872f2087c98
* Revert of Eliminate a potential race in IPC::ChannelProxy ↵johnme@chromium.org2014-03-111-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/183553004/) Reason for revert: Since this has landed, testsuite content_browsertests is failing on bot Android Tests (dbg) on the chromium.linux waterfall. Specifically, the WebContentsImplBrowserTest.OpenURLSubframe test is consistently crashing, with the following DCHECK: [FATAL:device_orientation_message_filter.cc(18)] Check failed: BrowserThread::CurrentlyOn(BrowserThread::IO). This corresponds the the following DCHECK about being on the IO thread: DeviceOrientationMessageFilter::~DeviceOrientationMessageFilter() { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); if (is_started_) DeviceInertialSensorService::GetInstance()->RemoveConsumer( CONSUMER_TYPE_ORIENTATION); } This same DCHECK failed in one of the try jobs on this CL: http://build.chromium.org/p/tryserver.chromium/builders/android_dbg_triggered_tests/builds/133648 Since this DCHECK has never been observed to fail before (certainly not in the last 200 builds), and has failed both in this CL's try job and twice in a row on the waterfall since landing this CL, it seems very likely that this CL is the cause. At a guess, the changes to ChannelProxy::Context::OnRemoveFilter seem quite relevant here. Original issue's description: > Eliminate a potential race in IPC::ChannelProxy > > Doing the following steps with ChannelProxy leads to a data race: > 1) Create the ChannelProxy, but don't initialize it. > 2) Add a filter. > 3) Init the ChannelProxy. > > The problem is, AddFilter() posts a task from the Listener thread to the IPC task runner to do OnAddFilter. Prior to this patch, OnAddFilter will try to read channel_ even though channel_ may not have been initialized, and it's accessed without any synchronization. > > This patch only really adds the filter if peer_pid_ has been set on the IPC::Channel thread; otherwise, it waits until the connection has been established to really add filters. > > See the bug for more detail. > > BUG=244383 > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=256188 TBR=jam@chromium.org,dmichael@chromium.org NOTREECHECKS=true NOTRY=true BUG=244383 Review URL: https://codereview.chromium.org/194923004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@256221 0039d316-1c4b-4281-b951-d872f2087c98
* Eliminate a potential race in IPC::ChannelProxydmichael@chromium.org2014-03-111-0/+4
| | | | | | | | | | | | | | | | | | | Doing the following steps with ChannelProxy leads to a data race: 1) Create the ChannelProxy, but don't initialize it. 2) Add a filter. 3) Init the ChannelProxy. The problem is, AddFilter() posts a task from the Listener thread to the IPC task runner to do OnAddFilter. Prior to this patch, OnAddFilter will try to read channel_ even though channel_ may not have been initialized, and it's accessed without any synchronization. This patch only really adds the filter if peer_pid_ has been set on the IPC::Channel thread; otherwise, it waits until the connection has been established to really add filters. See the bug for more detail. BUG=244383 Review URL: https://codereview.chromium.org/183553004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@256188 0039d316-1c4b-4281-b951-d872f2087c98
* Allow MessageFilters to restrict listening to specific message classesjdduke@chromium.org2014-02-261-0/+12
| | | | | | | | | | | | | | | | | | | | ChannelProxy currently offers messages to all member MessageFilters. It turns out that a good portion of the most common message types will never be filtered, making the O(N) filter walk an unnecessary affair. To prevent this, allow MessageFilters to indicate which (if any) subset of message classes they may filter, allowing the ChannelProxy to refine the list of filters that are offered a particular message. This saves ~35us per message received on the browser IO thread for a typical Android device. Relanding with a few more guards for MessageFilter removal, access and message class subscription. BUG=340881 TBR=asargent@chromium.org Review URL: https://codereview.chromium.org/142923005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@253361 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Allow MessageFilters to restrict listening to specific message classes"jdduke@chromium.org2014-02-211-12/+0
| | | | | | | | | | | | | This reverts commit 2955e4e3c747fd4aa3c227d6c4e4c698cf31b3c4. Reason for revert: Frequent crashes on Windows. BUG=345368 TBR= Review URL: https://codereview.chromium.org/165333004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@252428 0039d316-1c4b-4281-b951-d872f2087c98
* Allow MessageFilters to restrict listening to specific message classesjdduke@chromium.org2014-02-161-0/+12
| | | | | | | | | | | | | | | | | ChannelProxy currently offers messages to all member MessageFilters. It turns out that a good portion of the most common message types will never be filtered, making the O(N) filter walk an unnecessary affair. To prevent this, allow MessageFilters to indicate which (if any) subset of message classes they may filter, allowing the ChannelProxy to refine the list of filters that are offered a particular message. This saves ~35us per message received on the browser IO thread for a typical Android device. BUG=340881 TBR=asargent@chromium.org Review URL: https://codereview.chromium.org/142923005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@251622 0039d316-1c4b-4281-b951-d872f2087c98
* Remove ipc fuzzing code.thestig@chromium.org2013-10-191-19/+0
| | | | | | | | BUG=298372 Review URL: https://codereview.chromium.org/27031007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@229577 0039d316-1c4b-4281-b951-d872f2087c98
* Make BrowserMessageFilter not derive from IPC::ChannelProxy::MessageFilter. ↵jam@chromium.org2013-10-011-16/+2
| | | | | | | | | | This allows us to hide the OnMessageReceived which shouldn't be overridden from child classes, and also avoid the pattern of requiring an overridden method to have to call to the base class. R=scherkus@chromium.org, scherkus Review URL: https://codereview.chromium.org/24514003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@226251 0039d316-1c4b-4281-b951-d872f2087c98
* Update ipc/ to use scoped_refptr<T>::get() rather than implicit "operator T*"rsleevi@chromium.org2013-06-011-2/+2
| | | | | | | | | | | Linux fixes BUG=110610 TBR=darin Review URL: https://chromiumcodereview.appspot.com/15703006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@203562 0039d316-1c4b-4281-b951-d872f2087c98
* Implement IPC::ChannelFactory, a class that accept()s on a UNIX socket.jeremya@chromium.org2013-03-131-1/+1
| | | | | | | | | | | | | | | IPC::ChannelFactory listens on a UNIX domain socket and notifies its delegate when a client connects. The delegate is expected to craft an IPC::Channel from the handle it is given. Previously committed: - https://src.chromium.org/viewvc/chrome?view=rev&revision=186912 - https://src.chromium.org/viewvc/chrome?view=rev&revision=187233 - https://src.chromium.org/viewvc/chrome?view=rev&revision=187554 Review URL: https://codereview.chromium.org/12386010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187772 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 187554 "Implement IPC::ChannelFactory, a class that accep..."falken@chromium.org2013-03-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | Reverting because it seems to cause failures on ipc_tests (UnixDomainSocketUtil.Connect, UnixDomainSocketUtil.SendReceive) on Android. > Implement IPC::ChannelFactory, a class that accept()s on a UNIX socket. > > IPC::ChannelFactory listens on a UNIX domain socket and notifies its delegate > when a client connects. The delegate is expected to craft an IPC::Channel from > the handle it is given. > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=186912 > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=187233 > > Review URL: https://chromiumcodereview.appspot.com/12386010 TBR=jeremya@chromium.org Review URL: https://codereview.chromium.org/12431017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187760 0039d316-1c4b-4281-b951-d872f2087c98
* Implement IPC::ChannelFactory, a class that accept()s on a UNIX socket.jeremya@chromium.org2013-03-121-1/+1
| | | | | | | | | | | | | | IPC::ChannelFactory listens on a UNIX domain socket and notifies its delegate when a client connects. The delegate is expected to craft an IPC::Channel from the handle it is given. Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=186912 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=187233 Review URL: https://chromiumcodereview.appspot.com/12386010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187554 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 187233dmikurube@chromium.org2013-03-111-1/+1
| | | | | | | | | | | | | | | | | > Implement IPC::ChannelFactory, a class that accept()s on a UNIX socket. > > IPC::ChannelFactory listens on a UNIX domain socket and notifies its delegate > when a client connects. The delegate is expected to craft an IPC::Channel from > the handle it is given. > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=186912 > > Review URL: https://chromiumcodereview.appspot.com/12386010 TBR=jeremya@chromium.org Review URL: https://codereview.chromium.org/12761003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187240 0039d316-1c4b-4281-b951-d872f2087c98
* Implement IPC::ChannelFactory, a class that accept()s on a UNIX socket.jeremya@chromium.org2013-03-111-1/+1
| | | | | | | | | | | | IPC::ChannelFactory listens on a UNIX domain socket and notifies its delegate when a client connects. The delegate is expected to craft an IPC::Channel from the handle it is given. Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=186912 Review URL: https://chromiumcodereview.appspot.com/12386010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187233 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 186912jeremya@chromium.org2013-03-081-1/+1
| | | | | | | | | | | | | | | > Implement IPC::ChannelFactory, a class that accept()s on a UNIX socket. > > IPC::ChannelFactory listens on a UNIX domain socket and notifies its delegate > when a client connects. The delegate is expected to craft an IPC::Channel from > the handle it is given. > > Review URL: https://codereview.chromium.org/12386010 TBR=jeremya@chromium.org Review URL: https://codereview.chromium.org/12510008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@186919 0039d316-1c4b-4281-b951-d872f2087c98
* Implement IPC::ChannelFactory, a class that accept()s on a UNIX socket.jeremya@chromium.org2013-03-081-1/+1
| | | | | | | | | | IPC::ChannelFactory listens on a UNIX domain socket and notifies its delegate when a client connects. The delegate is expected to craft an IPC::Channel from the handle it is given. Review URL: https://codereview.chromium.org/12386010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@186912 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "GTTF: Add missing virtual destructors."phajdan.jr@chromium.org2013-02-061-2/+0
| | | | | | | | | | | | | | It turned out this is not necessary, we have a better warning already enabled in clang (-Wdelete-non-virtual-dtor, part of -Wall). TBR=darin,satorux,fischman,jamesr,jar,sky BUG=45135 Review URL: https://codereview.chromium.org/12224027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@180971 0039d316-1c4b-4281-b951-d872f2087c98
* GTTF: Add missing virtual destructors.phajdan.jr@chromium.org2013-02-051-0/+2
| | | | | | | | | | | R=jar TBR=darin,satorux,fischman,jamesr,sky BUG=45135 Review URL: https://codereview.chromium.org/12086018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@180669 0039d316-1c4b-4281-b951-d872f2087c98
* Marked IPC::ChannelProxy as non thread-safe. Added DCHECKs to verify that ↵alexeypa@chromium.org2012-12-051-1/+2
| | | | | | | | | | | | public methods (with Send() being the only exception) are called on the thread that created the object. Tests calling Send() from a wrong thread should be fixed first before similar check can be added to Send(). See http://crbug.com/163523 for details. BUG=163091,163523 Review URL: https://chromiumcodereview.appspot.com/11308278 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171106 0039d316-1c4b-4281-b951-d872f2087c98
* Clean-up inline members of nested classes (ipc/)hans@chromium.org2012-08-091-1/+1
| | | | | | | | | | | | | | | | Due to a bug, the Clang-plugin style checker failed to warn about inline constructors, destructors, non-empty virtual methods, etc. for nested classes. The plugin has been fixed, and this patch is part of a clean-up of all the code that now causes the plugin to issue errors. BUG=139346 Review URL: https://chromiumcodereview.appspot.com/10825275 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@150891 0039d316-1c4b-4281-b951-d872f2087c98
* Remove the rest of #pragma once in one big CL.ajwong@chromium.org2012-07-111-1/+0
| | | | | | | | | For context see this thread: https://groups.google.com/a/chromium.org/forum/?fromgroups#!topic/chromium-dev/RMcVNGjB4II TBR=thakis,pkasting,jam git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146163 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup IPC::ChannelProxy to use SingleThreadTaskRunnersergeyu@chromium.org2012-07-021-12/+15
| | | | | | | | Also removed ClearIPCMessageLoop() as it is not needed anymore. Review URL: https://chromiumcodereview.appspot.com/10694014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@145192 0039d316-1c4b-4281-b951-d872f2087c98
* Remove an IPC::ChannelProxy constructor that is not actually implemented ↵bryner@chromium.org2012-06-191-6/+0
| | | | | | | | anywhere. Review URL: https://chromiumcodereview.appspot.com/10577006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@143007 0039d316-1c4b-4281-b951-d872f2087c98
* Separate out IPC::Message::Sender and Channel::Listener into a separate class.brettw@chromium.org2012-06-111-8/+9
| | | | | | | | | | | | | I fixed the places that did IPC::Channel::Sender (I don't even know how this compiled, but I presume this means the "Sender" base class of the "Channel" which ends up being right). We can fix the other users of this later. BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/10541065 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@141534 0039d316-1c4b-4281-b951-d872f2087c98
* PPAPI/NaCl: Re-land speculative implementation for ipc_channel_nacl.ccdmichael@chromium.org2012-05-311-1/+1
| | | | | | | | | | | | | Original CL: http://codereview.chromium.org/10174048/ Was committed at 139635, reverted at 139646 due to a flake. BUG=116317 TEST= TBR=dmichael@chromium.org Review URL: https://chromiumcodereview.appspot.com/10442112 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@139840 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 139635 - PPAPI/NaCl: Speculative implementation for ipc_channel_nacl.ccrch@chromium.org2012-05-301-1/+1
| | | | | | | | | | | | | BUG=116317 TEST= Review URL: https://chromiumcodereview.appspot.com/10174048 TBR=dmichael@chromium.org Review URL: https://chromiumcodereview.appspot.com/10456039 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@139646 0039d316-1c4b-4281-b951-d872f2087c98
* PPAPI/NaCl: Speculative implementation for ipc_channel_nacl.ccdmichael@chromium.org2012-05-301-1/+1
| | | | | | | | | | BUG=116317 TEST= Review URL: https://chromiumcodereview.appspot.com/10174048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@139635 0039d316-1c4b-4281-b951-d872f2087c98
* RefCounted types should not have public destructors, ipc/ editionrsleevi@chromium.org2012-04-281-2/+9
| | | | | | | | | | BUG=123295 TEST=none Review URL: http://codereview.chromium.org/10008108 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@134421 0039d316-1c4b-4281-b951-d872f2087c98
* Make IPC channels track their peer process IDjschuh@chromium.org2012-04-051-2/+9
| | | | | | | | | | BrokerDuplicateHandle() requires the target process ID on Windows. Rather than plumb this into every channel class independently, I'm adding it at the top. TEST=IPCSyncChannelTest.Verified Review URL: http://codereview.chromium.org/9968111 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@130817 0039d316-1c4b-4281-b951-d872f2087c98
* base::Bind: Convert IPC::SendTask.jhawkins@chromium.org2011-11-291-3/+3
| | | | | | | | | | | BUG=none TEST=none R=groby@chromium.org Review URL: http://codereview.chromium.org/8714003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@111837 0039d316-1c4b-4281-b951-d872f2087c98
* Add OVERRIDE to ipc/.avi@chromium.org2011-11-171-1/+1
| | | | | | | | | BUG=104314 TEST=no change Review URL: http://codereview.chromium.org/8590004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110495 0039d316-1c4b-4281-b951-d872f2087c98
* Allow proxy channels to be created without initializing the underlying channel.kkania@chromium.org2011-11-161-10/+18
| | | | | | | | | | | | | | This fixes a bug where a client needed to guarantee a message filter was in place before any messages were received. It also follows the style of not having constructors that do complex initialization. BUG=102894 TEST=none Review URL: http://codereview.chromium.org/8417054 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110229 0039d316-1c4b-4281-b951-d872f2087c98
* Wait properly for renderer crashesphajdan.jr@chromium.org2011-09-191-1/+2
| | | | | | | | | | | | | | This replaces a Sleep in automation with a wait for renderer crash. It turns out that our IPC on POSIX had one loophole that caused it not to notice very early crashes, so I also fixed that. The problem was that when the child process died before connecting to the parent's IPC channel, the parent wouldn't notice the crash because the child end of the IPC pipe was kept open for too long. This change makes the code close the child end of the pipe right after forking the child. This might also help with automation not noticing the browser crash during initial launch, or at least should be a good step toward fixing that problem. BUG=38497,90489 Review URL: http://codereview.chromium.org/7870008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@101760 0039d316-1c4b-4281-b951-d872f2087c98
* This patch caused Chrome to be unable to load any web pages on Chrome OS.satorux@chromium.org2011-08-231-15/+3
| | | | | | | | | | | | | BUG=chromium-os:19468 TEST=confirm chrome loads pages Revert "Fix IPC OnChannelConnected() to send correct PID on Linux/CrOS" This reverts commit 92321e01ba42f2d0e9508e921f8b440ac0b5319f. Review URL: http://codereview.chromium.org/7712022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@97811 0039d316-1c4b-4281-b951-d872f2087c98
* Fix IPC OnChannelConnected() to send correct PID on Linux/CrOSjamescook@chromium.org2011-08-191-3/+15
| | | | | | | | | | | | | | | | | | | | Sandboxed renderers on Linux/CrOS are in a PID namespace, so they don't know their own global PID. Thus the PID sent in the IPC channel Hello message contains an unexpected value, which is used in the OnChannelConnected() callback into chrome. This causes problems like the Task Manager not showing any data for FPS, JavaScript memory and image cache memory. The task manager is attempting to use the PID/process handle from BrowserMessageFilter, which got it from IPC::Channel::Listener::OnChannelConnected(), and it doesn't match the global PID of each renderer. BUG=70179 TEST=manual, open a few tabs, then open task manager, right-click to turn on JavaScript memory and image memory. Verify there are non-zero values for FPS, JavaScript memory, image cache memory Review URL: http://codereview.chromium.org/7661004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@97481 0039d316-1c4b-4281-b951-d872f2087c98
* Tag IPC::Channel::Listener implementations with OVERRIDEevan@chromium.org2011-08-161-3/+3
| | | | | | Review URL: http://codereview.chromium.org/7661031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@97021 0039d316-1c4b-4281-b951-d872f2087c98
* Create ipc.dll.darin@chromium.org2011-08-151-2/+2
| | | | | | Review URL: http://codereview.chromium.org/7633042 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@96820 0039d316-1c4b-4281-b951-d872f2087c98
* IPC outgoing message filters interpose yourself in a message stream. ↵tsepez@chromium.org2011-05-041-0/+19
| | | | | | | | Minimally invasive baseline for building IPC tests to abuse browser along the lines of a compromised renderer. Review URL: http://codereview.chromium.org/6711024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@84076 0039d316-1c4b-4281-b951-d872f2087c98
* Switch IPC::ChannelProxy to use MessageLoopProxy instead of MessageLoop. ↵jam@chromium.org2011-05-021-13/+14
| | | | | | | | This allows us to remove usage of the IOThread object, and generally makes IPC::ChannelProxy more robust for future uses. Review URL: http://codereview.chromium.org/6901146 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@83741 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 80604 - Revert 80602 - Limit access to named IPC channels with ↵wez@chromium.org2011-04-061-0/+1
| | | | | | | | | SO_PEERCRED, not file permissions.BUG=TEST=Run Chrome & configure a service, to get the service process to start. Close Chrome and run a copy as a different user, but from the same user-data-dir. New Chrome should not be able to communicate with the service process.Review URL: http://codereview.chromium.org/6631002TBR=wez@chromium.orgReview URL: http://codereview.chromium.org/6806006 TBR=wez@chromium.org Review URL: http://codereview.chromium.org/6806007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80606 0039d316-1c4b-4281-b951-d872f2087c98