summaryrefslogtreecommitdiffstats
path: root/ipc/ipc_channel_proxy.cc
Commit message (Collapse)AuthorAgeFilesLines
* Introduce OS_NACL_SFI and OS_NACL_NONSFI macros.hidehiko2014-10-281-2/+1
| | | | | | | | | | | | | | | | | | PNaCl toolchain starts to support "Non-SFI build binary" mode. Some sources are built both for SFI binary and for Non-SFI binary, but, in some cases, there are small diffs which need to be guarded by #ifdef. In "Non-SFI build binary" mode, __native_client_nonsfi__ is defined. This CL introduce OS_NACL_SFI and OS_NACL_NONSFI which can be used among the chrome code, to slightly simplify the #ifdef conditions. This CL is the follow up of crrev.com/659243002 BUG=358465 TEST=Ran trybot. Review URL: https://codereview.chromium.org/664373003 Cr-Commit-Position: refs/heads/master@{#301603}
* Non-SFI Mode: Build ipc/ library by PNaCl toolchain for nacl_helper_nonsfi.hidehiko2014-10-241-1/+2
| | | | | | | | | | | | | | | | | | This CL is to build ipc/ for nacl_helper_nonsfi. The library is similar to ipc_nacl, but slightly different: - The IPC::Channel should use ChannelPosix rather than ChannelNaCl, as it runs under linux directly. - Some features of ChannelPosix cannot be compiled by PNaCl toolchain for Non-SFI build, but these are not necessary for nacl_helper_nonsfi. These are dropped by "ifdef" guard. Note that this library is not used yet, but should be built successfully. BUG=358465 TEST=Ran trybot. Implement nacl_helper_nonsfi on top of this CL, and made sure it works. Review URL: https://codereview.chromium.org/659243002 Cr-Commit-Position: refs/heads/master@{#301037}
* Refactoring: Make IPC::Channel::TakeClientFileDescriptor() a ScopedFD.morrita2014-10-201-1/+1
| | | | | | | | | | | | | By using base::ScopedFD, the ownership of the returned FD becomes clearer. BUG=415294 R=brettw@chromium.org, jam@chromium.org, yzshen@chromium.org, sehr@chromium.org TBR=gene@chromium.org Review URL: https://codereview.chromium.org/621613002 Cr-Commit-Position: refs/heads/master@{#300381}
* Manual fixups for scoped_refptr operator T* removal in ipc/dcheng2014-08-281-6/+8
| | | | | | | | BUG=110610 Review URL: https://codereview.chromium.org/512153002 Cr-Commit-Position: refs/heads/master@{#292404}
* Introduce ChannelMojomorrita@chromium.org2014-08-041-9/+25
| | | | | | | | | | | | | | | | | | 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-9/+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-2/+2
| | | | | | | | | | | | | | 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-7/+14
| | | | | | | | | | | | | | | | | | | 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-80/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-10/+80
| | | | | | | | | | | | | | | | | 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
* Introduce IPC::Channel::Create*() to ensure it being heap-allocated.morrita@chromium.org2014-05-301-1/+1
| | | | | | | | | | | | | | | | | | | | | This change introduces IPC::Channel::Create*() API to turn IPC::Channel into a heap allocated object. This will allow us to make Channel a polymorphic class. This change also tries to hide Channel::Mode from public API so that we can simplify channel creation code paths cleaner in following changes. ChannelProxy has to follow same pattern to finish this cleanup. Such changes will follow. TEST=none BUG=377980 R=darin@chromium.org,cpu@chromium.org Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=273575 Review URL: https://codereview.chromium.org/307653003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@273713 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 273575 "Introduce IPC::Channel::Create*() to ensure it be..."mattm@chromium.org2014-05-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Broke win compile. > Introduce IPC::Channel::Create*() to ensure it being heap-allocated. > > This change introduces IPC::Channel::Create*() API to turn > IPC::Channel into a heap allocated object. This will allow us to > make Channel a polymorphic class. > > This change also tries to hide Channel::Mode from public API > so that we can simplify channel creation code paths cleaner in > following changes. ChannelProxy has to follow same pattern to > finish this cleanup. Such changes will follow. > > TEST=none > BUG=377980 > R=darin@chromium.org,cpu@chromium.org > > Review URL: https://codereview.chromium.org/307653003 TBR=morrita@chromium.org Review URL: https://codereview.chromium.org/304153005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@273596 0039d316-1c4b-4281-b951-d872f2087c98
* Introduce IPC::Channel::Create*() to ensure it being heap-allocated.morrita@chromium.org2014-05-291-1/+1
| | | | | | | | | | | | | | | | | | | This change introduces IPC::Channel::Create*() API to turn IPC::Channel into a heap allocated object. This will allow us to make Channel a polymorphic class. This change also tries to hide Channel::Mode from public API so that we can simplify channel creation code paths cleaner in following changes. ChannelProxy has to follow same pattern to finish this cleanup. Such changes will follow. TEST=none BUG=377980 R=darin@chromium.org,cpu@chromium.org Review URL: https://codereview.chromium.org/307653003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@273575 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/+12
| | | | | | | | | | | | 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
* IPC: Restrict 'toplevel' to truly toplevel events.epenner@chromium.org2014-05-021-2/+2
| | | | | | | | | | | | | | | | | | | | These traces shouldn't ever be top level: - "SyncChannel::SendWithTimeout" - "ChannelProxy::Context::OnDispatchMessage" One is sending an IPC (contained within RunTask), and one is recieving an IPC that was forwarded (also contained within RunTask). This brings back the 'ipc' label for all ipc related events, and just adds 'toplevel' to the one IPC trace that is actually toplevel, "ChannelReader::DispatchInputData". BUG=None. Review URL: https://codereview.chromium.org/237113006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@267923 0039d316-1c4b-4281-b951-d872f2087c98
* Move IPC::MessageFilter and router to a separate filedmichael@chromium.org2014-04-251-119/+4
| | | | | | | | | | | | | | | 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
* DCHECK that listener thread != IO threaddmichael@chromium.org2014-04-171-0/+9
| | | | | | | | | | | | | This came up in code review, where somebody was creating a SyncChannel on the IO thread. That will easily lead to deadlocks. For ChannelProxy, it seems OK to have them be the same thread so long as there is no Listener. We apparently already do this in one place: https://code.google.com/p/chromium/codesearch#chromium/src/components/nacl/browser/nacl_process_host.cc&l=866 BUG= Review URL: https://codereview.chromium.org/234253002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@264424 0039d316-1c4b-4281-b951-d872f2087c98
* Eliminate a potential race in IPC::ChannelProxydmichael@chromium.org2014-03-201-16/+34
| | | | | | | | | | | | | | | | | | | | | 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-31/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (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-16/+31
| | | | | | | | | | | | | | | | | | | 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-6/+107
| | | | | | | | | | | | | | | | | | | | 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-100/+6
| | | | | | | | | | | | | 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-6/+100
| | | | | | | | | | | | | | | | | 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
* Make flow event traces disabled-by-defaultfmeawad@chromium.org2014-02-061-2/+2
| | | | | | | | | | Currently all flow events are in the category "toplevel.flow", they originated from "ipc" and "task" categories. BUG=338427 Review URL: https://codereview.chromium.org/148173011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@249450 0039d316-1c4b-4281-b951-d872f2087c98
* Remove an outdated comment.eroman@chromium.org2014-01-111-4/+0
| | | | | | | | It is obsolete now that the code is using a MessageLoopProxy. Review URL: https://codereview.chromium.org/133903006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244333 0039d316-1c4b-4281-b951-d872f2087c98
* Remove ipc fuzzing code.thestig@chromium.org2013-10-191-4/+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-4/+0
| | | | | | | | | | 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
* Make utility process run in-process when running in single-process mode.jam@chromium.org2013-07-091-0/+3
| | | | | | | | | | | Remove the unit test/single process code path for SandboxedUnpacker as a first step. BUG=19192 R=asargent@chromium.org, scottmg@chromium.org Review URL: https://codereview.chromium.org/18119009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@210620 0039d316-1c4b-4281-b951-d872f2087c98
* Update ipc/ to use scoped_refptr<T>::get() rather than implicit "operator T*"rsleevi@chromium.org2013-06-011-1/+1
| | | | | | | | | | | 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-2/+2
| | | | | | | | | | | | | | | 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-2/+2
| | | | | | | | | | | | | | | | | | | | | | 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-2/+2
| | | | | | | | | | | | | | 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-2/+2
| | | | | | | | | | | | | | | | | > 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-2/+2
| | | | | | | | | | | | 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-2/+2
| | | | | | | | | | | | | | | > 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-2/+2
| | | | | | | | | | 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
* Marked IPC::ChannelProxy as non thread-safe. Added DCHECKs to verify that ↵alexeypa@chromium.org2012-12-051-0/+20
| | | | | | | | | | | | 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
* Trace PostTasks from post to run.jbates@chromium.org2012-09-181-1/+0
| | | | | | | | | | | | To do this properly, we need a new type of trace event "FLOW" which will be drawn as lines in about:tracing from BEGIN to END. Also instruments SequencedWorkerPool and ChannelReader::DispatchInputData, which were not currently traced. BUG=79942 Review URL: https://codereview.chromium.org/10913242 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157288 0039d316-1c4b-4281-b951-d872f2087c98
* Add async trace events to trace progress of IPC messagesjbates@chromium.org2012-09-041-0/+1
| | | | | | | | BUG=79942 Review URL: https://chromiumcodereview.appspot.com/10919023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@154840 0039d316-1c4b-4281-b951-d872f2087c98
* Clean-up inline members of nested classes (ipc/)hans@chromium.org2012-08-091-0/+4
| | | | | | | | | | | | | | | | 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
* Cleanup IPC::ChannelProxy to use SingleThreadTaskRunnersergeyu@chromium.org2012-07-021-19/+26
| | | | | | | | 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
* Separate out IPC::Message::Sender and Channel::Listener into a separate class.brettw@chromium.org2012-06-111-2/+3
| | | | | | | | | | | | | 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
* Log message class/line in IPC::ChannelProxy::Context::OnDispatchMessagepiman@chromium.org2012-05-111-2/+4
| | | | | | | | | | BUG=none TEST=about:tracing Review URL: https://chromiumcodereview.appspot.com/10380046 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@136703 0039d316-1c4b-4281-b951-d872f2087c98
* RefCounted types should not have public destructors, ipc/ editionrsleevi@chromium.org2012-04-281-28/+6
| | | | | | | | | | 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
* Add ipc_channel_nacl to the untrusted build and fix all compile/link errors.bbudge@chromium.org2012-04-231-1/+1
| | | | | | | | | ppapi_proxy_untrusted.gyp should now build with a single link error for main. BUG=116317 TEST=builds with a single link error for main(). Review URL: https://chromiumcodereview.appspot.com/10167024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@133519 0039d316-1c4b-4281-b951-d872f2087c98
* Make IPC channels track their peer process IDjschuh@chromium.org2012-04-051-4/+5
| | | | | | | | | | 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
* Simple trace logging of received IPC messagesrbyers@chromium.org2012-02-141-1/+12
| | | | | | | | | | | | | | | | Adds an entry to chrome://tracing for processing IPC messages that includes either the IPC message type ID (which can be matched to a name with the ipclist tool), or in DEBUG builds (or other builds where IPC_MESSAGE_LOG_ENABLED has been set), the message name. Also updates ipclist to not expect to see content shell messages, and clarifies some comments around cases where message classes are used entirely outside of chrome itself. Identical re-submit of http://codereview.chromium.org/9389020/ which somehow triggered a Windows linker bug (unexpected error LNK1000). BUG=79942 TBR=jam@chromium.org Review URL: https://chromiumcodereview.appspot.com/9360052 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121921 0039d316-1c4b-4281-b951-d872f2087c98