Initialize IPC:ChannelHandle from existing HANDLE
1] Add a ctor to IPC:ChannelHandle that takes a pipe HANDLE.
2] Corresponding change in Channel::ChannelImpl::CreatePipe to
attach to the given pipe instead of creating a new one.
Being able to hand over a pipe handle to IPC::Channel in this way has
other advantages such as using anonymous pipes and safer connections
between process with different level of privileges. Here's how it
can be done:
Server Process:
- Create a server pipe, anonymous pipe is fine too.
- Server creates a client handle of pipe using CreateFile.
- Use DuplicateHandle to duplicate this handle for the client process.
- pass over the handle value to the client process, say using comman line.
Client process:
- Simply receive the handle from the server and hand it over to
IPC:Channel using IPC::ChannelHandle.
Apart from being more flexible, this is more secure as it removes
the 'connection window' while using names.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/9150030
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118786 0039d316-1c4b-4281-b951-d872f2087c98
CrOS-Libchrome-Original-Commit: a7c03d4f3c5b36df2375ff24d5e279221ae65ed1
3 files changed