Roll src/third_party/WebKit 60624dd:2936779 (svn 202421:202423)
[chromium-blink-merge.git] / ipc / handle_attachment_win.cc
blobb7f43734b5bc7500af56629432ed5ae3da547aec
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "ipc/handle_attachment_win.h"
7 #include <windows.h>
9 namespace IPC {
10 namespace internal {
12 HandleAttachmentWin::HandleAttachmentWin(const HANDLE& handle,
13 HandleWin::Permissions permissions)
14 : handle_(handle), permissions_(permissions) {}
16 HandleAttachmentWin::HandleAttachmentWin(const WireFormat& wire_format)
17 : BrokerableAttachment(wire_format.attachment_id),
18 handle_(LongToHandle(wire_format.handle)),
19 permissions_(wire_format.permissions) {}
21 HandleAttachmentWin::HandleAttachmentWin(
22 const BrokerableAttachment::AttachmentId& id)
23 : BrokerableAttachment(id),
24 handle_(INVALID_HANDLE_VALUE),
25 permissions_(HandleWin::INVALID) {}
27 HandleAttachmentWin::~HandleAttachmentWin() {
30 HandleAttachmentWin::BrokerableType HandleAttachmentWin::GetBrokerableType()
31 const {
32 return WIN_HANDLE;
35 HandleAttachmentWin::WireFormat HandleAttachmentWin::GetWireFormat(
36 const base::ProcessId& destination) const {
37 WireFormat format;
38 format.handle = HandleToLong(handle_);
39 format.attachment_id = GetIdentifier();
40 format.destination_process = destination;
41 format.permissions = permissions_;
42 return format;
45 } // namespace internal
46 } // namespace IPC