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
tree: a559227a5d7599e0de0c8c84f9f663802aae8d89
  1. base/
  2. build/
  3. dbus/
  4. ipc/
  5. testing/
  6. third_party/