15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef REMOTING_HOST_CHROMOTING_MESSAGES_H_
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define REMOTING_HOST_CHROMOTING_MESSAGES_H_
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ipc/ipc_platform_file.h"
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "net/base/ip_endpoint.h"
1090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "remoting/host/chromoting_param_traits.h"
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "remoting/host/screen_resolution.h"
122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "remoting/protocol/transport.h"
1390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "third_party/webrtc/modules/desktop_capture/desktop_geometry.h"
14868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "third_party/webrtc/modules/desktop_capture/mouse_cursor_shape.h"
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif  // REMOTING_HOST_CHROMOTING_MESSAGES_H_
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Multiply-included message file, no traditional include guard.
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ipc/ipc_message_macros.h"
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define IPC_MESSAGE_START ChromotingMsgStart
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//-----------------------------------------------------------------------------
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Chromoting messages sent from the daemon.
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Requests the receiving process to crash producing a crash dump. The daemon
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// sends this message when a fatal error has been detected indicating that
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// the receiving process misbehaves. The daemon passes the location of the code
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// that detected the error.
302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL3(ChromotingDaemonMsg_Crash,
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                     std::string /* function_name */,
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                     std::string /* file_name */,
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                     int /* line_number */)
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)//-----------------------------------------------------------------------------
362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Chromoting messages sent from the daemon to the network process.
372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Delivers the host configuration (and updates) to the network process.
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL1(ChromotingDaemonNetworkMsg_Configuration, std::string)
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Initializes the pairing registry on Windows. The passed key handles are
425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// already duplicated by the sender.
435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)IPC_MESSAGE_CONTROL2(ChromotingDaemonNetworkMsg_InitializePairingRegistry,
445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                     IPC::PlatformFileForTransit /* privileged_key */,
455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                     IPC::PlatformFileForTransit /* unprivileged_key */)
465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Notifies the network process that the terminal |terminal_id| has been
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// disconnected from the desktop session.
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL1(ChromotingDaemonNetworkMsg_TerminalDisconnected,
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                     int /* terminal_id */)
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Notifies the network process that |terminal_id| is now attached to
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// a desktop integration process. |desktop_process| is the handle of the desktop
542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// process. |desktop_pipe| is the client end of the desktop-to-network pipe
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// opened.
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Windows only: |desktop_pipe| has to be duplicated from the desktop process
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// by the receiver of the message. |desktop_process| is already duplicated by
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// the sender.
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL3(ChromotingDaemonNetworkMsg_DesktopAttached,
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                     int /* terminal_id */,
622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                     base::ProcessHandle /* desktop_process */,
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                     IPC::PlatformFileForTransit /* desktop_pipe */)
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//-----------------------------------------------------------------------------
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Chromoting messages sent from the network to the daemon process.
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Connects the terminal |terminal_id| (i.e. a remote client) to a desktop
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// session.
702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL3(ChromotingNetworkHostMsg_ConnectTerminal,
712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                     int /* terminal_id */,
722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                     remoting::ScreenResolution /* resolution */,
732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                     bool /* virtual_terminal */)
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Disconnects the terminal |terminal_id| from the desktop session it was
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// connected to.
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL1(ChromotingNetworkHostMsg_DisconnectTerminal,
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                     int /* terminal_id */)
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Changes the screen resolution in the given desktop session.
812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL2(ChromotingNetworkDaemonMsg_SetScreenResolution,
822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                     int /* terminal_id */,
832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                     remoting::ScreenResolution /* resolution */)
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Serialized remoting::protocol::TransportRoute structure.
862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_STRUCT_BEGIN(SerializedTransportRoute)
872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  IPC_STRUCT_MEMBER(int, type)
882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  IPC_STRUCT_MEMBER(net::IPAddressNumber, remote_address)
892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  IPC_STRUCT_MEMBER(int, remote_port)
902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  IPC_STRUCT_MEMBER(net::IPAddressNumber, local_address)
912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  IPC_STRUCT_MEMBER(int, local_port)
922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_STRUCT_END()
932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Hosts status notifications (see HostStatusObserver interface) sent by
952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// IpcHostEventLogger.
962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL1(ChromotingNetworkDaemonMsg_AccessDenied,
972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                     std::string /* jid */)
982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL1(ChromotingNetworkDaemonMsg_ClientAuthenticated,
1002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                     std::string /* jid */)
1012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL1(ChromotingNetworkDaemonMsg_ClientConnected,
1032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                     std::string /* jid */)
1042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL1(ChromotingNetworkDaemonMsg_ClientDisconnected,
1062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                     std::string /* jid */)
1072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL3(ChromotingNetworkDaemonMsg_ClientRouteChange,
1092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                     std::string /* jid */,
1102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                     std::string /* channel_name */,
1112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                     SerializedTransportRoute /* route */)
1122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL1(ChromotingNetworkDaemonMsg_HostStarted,
1142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                     std::string /* xmpp_login */)
1152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL0(ChromotingNetworkDaemonMsg_HostShutdown)
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//-----------------------------------------------------------------------------
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Chromoting messages sent from the desktop to the daemon process.
1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Notifies the daemon that a desktop integration process has been initialized.
1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// |desktop_pipe| specifies the client end of the desktop pipe. It is to be
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// forwarded to the desktop environment stub.
1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Windows only: |desktop_pipe| has to be duplicated from the desktop process by
1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// the receiver of the message.
1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL1(ChromotingDesktopDaemonMsg_DesktopAttached,
1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                     IPC::PlatformFileForTransit /* desktop_pipe */)
1292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Asks the daemon to inject Secure Attention Sequence (SAS) in the session
1312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// where the desktop process is running.
1322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL0(ChromotingDesktopDaemonMsg_InjectSas)
1332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)//-----------------------------------------------------------------------------
1352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Chromoting messages sent from the desktop to the network process.
1362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
13790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// Notifies the network process that a shared buffer has been created.
1382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL3(ChromotingDesktopNetworkMsg_CreateSharedBuffer,
1392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                     int /* id */,
1402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                     IPC::PlatformFileForTransit /* handle */,
1412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                     uint32 /* size */)
1422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Request the network process to stop using a shared buffer.
1442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL1(ChromotingDesktopNetworkMsg_ReleaseSharedBuffer,
1452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                     int /* id */)
1462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
14790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// Serialized webrtc::DesktopFrame.
14890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)IPC_STRUCT_BEGIN(SerializedDesktopFrame)
1492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  // ID of the shared memory buffer containing the pixels.
1502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  IPC_STRUCT_MEMBER(int, shared_buffer_id)
1512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  // Width of a single row of pixels in bytes.
1532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  IPC_STRUCT_MEMBER(int, bytes_per_row)
1542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  // Captured region.
15690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  IPC_STRUCT_MEMBER(std::vector<webrtc::DesktopRect>, dirty_region)
1572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  // Dimensions of the buffer in pixels.
15990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  IPC_STRUCT_MEMBER(webrtc::DesktopSize, dimensions)
1602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  // Time spent in capture. Unit is in milliseconds.
1622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  IPC_STRUCT_MEMBER(int, capture_time_ms)
1632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  // Sequence number supplied by client for performance tracking.
1652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  IPC_STRUCT_MEMBER(int64, client_sequence_number)
1662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  // DPI for this frame.
16890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  IPC_STRUCT_MEMBER(webrtc::DesktopVector, dpi)
1692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_STRUCT_END()
1702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Notifies the network process that a shared buffer has been created.
1722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL1(ChromotingDesktopNetworkMsg_CaptureCompleted,
17390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)                     SerializedDesktopFrame /* frame */ )
1742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Carries a cursor share update from the desktop session agent to the client.
1766e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)IPC_MESSAGE_CONTROL1(ChromotingDesktopNetworkMsg_MouseCursor,
1776e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)                     webrtc::MouseCursor /* cursor */ )
1782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Carries a clipboard event from the desktop session agent to the client.
1802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// |serialized_event| is a serialized protocol::ClipboardEvent.
1812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL1(ChromotingDesktopNetworkMsg_InjectClipboardEvent,
1822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                     std::string /* serialized_event */ )
1832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Requests the network process to terminate the client session.
1852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL0(ChromotingDesktopNetworkMsg_DisconnectSession)
1862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Carries an audio packet from the desktop session agent to the client.
1882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// |serialized_packet| is a serialized AudioPacket.
1892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL1(ChromotingDesktopNetworkMsg_AudioPacket,
1902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                     std::string /* serialized_packet */ )
1912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)//-----------------------------------------------------------------------------
1932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Chromoting messages sent from the network to the desktop process.
1942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Passes the client session data to the desktop session agent and starts it.
1962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// This must be the first message received from the host.
197b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)IPC_MESSAGE_CONTROL3(ChromotingNetworkDesktopMsg_StartSessionAgent,
1982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                     std::string /* authenticated_jid */,
199b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)                     remoting::ScreenResolution /* resolution */,
200b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)                     bool /* virtual_terminal */)
2012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
2022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL0(ChromotingNetworkDesktopMsg_CaptureFrame)
2032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
2042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Carries a clipboard event from the client to the desktop session agent.
2052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// |serialized_event| is a serialized protocol::ClipboardEvent.
2062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL1(ChromotingNetworkDesktopMsg_InjectClipboardEvent,
2072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                     std::string /* serialized_event */ )
2082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
2092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Carries a keyboard event from the client to the desktop session agent.
2102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// |serialized_event| is a serialized protocol::KeyEvent.
2112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL1(ChromotingNetworkDesktopMsg_InjectKeyEvent,
2122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                     std::string /* serialized_event */ )
2132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
214effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// Carries a keyboard event from the client to the desktop session agent.
215effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// |serialized_event| is a serialized protocol::TextEvent.
216effb81e5f8246d0db0270817048dc992db66e9fbBen MurdochIPC_MESSAGE_CONTROL1(ChromotingNetworkDesktopMsg_InjectTextEvent,
217effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch                     std::string /* serialized_event */ )
218effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
2192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Carries a mouse event from the client to the desktop session agent.
2202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// |serialized_event| is a serialized protocol::MouseEvent.
2212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL1(ChromotingNetworkDesktopMsg_InjectMouseEvent,
2222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                     std::string /* serialized_event */ )
2232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
2242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Changes the screen resolution in the desktop session.
2252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL1(ChromotingNetworkDesktopMsg_SetScreenResolution,
2262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                     remoting::ScreenResolution /* resolution */)
227