summaryrefslogtreecommitdiffstats
path: root/remoting/protocol
diff options
context:
space:
mode:
Diffstat (limited to 'remoting/protocol')
-rw-r--r--remoting/protocol/client_control_dispatcher.cc9
-rw-r--r--remoting/protocol/client_control_dispatcher.h1
-rw-r--r--remoting/protocol/client_stub.h4
-rw-r--r--remoting/protocol/host_control_dispatcher.cc9
-rw-r--r--remoting/protocol/host_control_dispatcher.h2
-rw-r--r--remoting/protocol/host_stub.h4
-rw-r--r--remoting/protocol/protocol_mock_objects.h2
7 files changed, 31 insertions, 0 deletions
diff --git a/remoting/protocol/client_control_dispatcher.cc b/remoting/protocol/client_control_dispatcher.cc
index 8bb918e..a42c3f6 100644
--- a/remoting/protocol/client_control_dispatcher.cc
+++ b/remoting/protocol/client_control_dispatcher.cc
@@ -74,6 +74,13 @@ void ClientControlDispatcher::RequestPairing(
writer_.Write(SerializeAndFrameMessage(message), base::Closure());
}
+void ClientControlDispatcher::DeliverClientMessage(
+ const ExtensionMessage& message) {
+ ControlMessage control_message;
+ control_message.mutable_extension_message()->CopyFrom(message);
+ writer_.Write(SerializeAndFrameMessage(control_message), base::Closure());
+}
+
void ClientControlDispatcher::OnMessageReceived(
scoped_ptr<ControlMessage> message, const base::Closure& done_task) {
DCHECK(client_stub_);
@@ -88,6 +95,8 @@ void ClientControlDispatcher::OnMessageReceived(
client_stub_->SetCursorShape(message->cursor_shape());
} else if (message->has_pairing_response()) {
client_stub_->SetPairingResponse(message->pairing_response());
+ } else if (message->has_extension_message()) {
+ client_stub_->DeliverHostMessage(message->extension_message());
} else {
LOG(WARNING) << "Unknown control message received.";
}
diff --git a/remoting/protocol/client_control_dispatcher.h b/remoting/protocol/client_control_dispatcher.h
index b2a0bfa..556ce72 100644
--- a/remoting/protocol/client_control_dispatcher.h
+++ b/remoting/protocol/client_control_dispatcher.h
@@ -40,6 +40,7 @@ class ClientControlDispatcher : public ChannelDispatcherBase,
virtual void ControlAudio(const AudioControl& audio_control) OVERRIDE;
virtual void SetCapabilities(const Capabilities& capabilities) OVERRIDE;
virtual void RequestPairing(const PairingRequest& pairing_request) OVERRIDE;
+ virtual void DeliverClientMessage(const ExtensionMessage& message) OVERRIDE;
// Sets the ClientStub that will be called for each incoming control
// message. |client_stub| must outlive this object.
diff --git a/remoting/protocol/client_stub.h b/remoting/protocol/client_stub.h
index 4507ba7..d57f948 100644
--- a/remoting/protocol/client_stub.h
+++ b/remoting/protocol/client_stub.h
@@ -18,6 +18,7 @@ namespace remoting {
namespace protocol {
class Capabilities;
+class ExtensionMessage;
class PairingResponse;
class ClientStub : public ClipboardStub,
@@ -32,6 +33,9 @@ class ClientStub : public ClipboardStub,
// Passes a pairing response message to the client.
virtual void SetPairingResponse(const PairingResponse& pairing_response) = 0;
+ // Deliver an extension message from the host to the client.
+ virtual void DeliverHostMessage(const ExtensionMessage& message) = 0;
+
private:
DISALLOW_COPY_AND_ASSIGN(ClientStub);
};
diff --git a/remoting/protocol/host_control_dispatcher.cc b/remoting/protocol/host_control_dispatcher.cc
index b979e36..26f09fc 100644
--- a/remoting/protocol/host_control_dispatcher.cc
+++ b/remoting/protocol/host_control_dispatcher.cc
@@ -46,6 +46,13 @@ void HostControlDispatcher::SetPairingResponse(
writer_.Write(SerializeAndFrameMessage(message), base::Closure());
}
+void HostControlDispatcher::DeliverHostMessage(
+ const ExtensionMessage& message) {
+ ControlMessage control_message;
+ control_message.mutable_extension_message()->CopyFrom(message);
+ writer_.Write(SerializeAndFrameMessage(control_message), base::Closure());
+}
+
void HostControlDispatcher::InjectClipboardEvent(const ClipboardEvent& event) {
ControlMessage message;
message.mutable_clipboard_event()->CopyFrom(event);
@@ -78,6 +85,8 @@ void HostControlDispatcher::OnMessageReceived(
host_stub_->SetCapabilities(message->capabilities());
} else if (message->has_pairing_request()) {
host_stub_->RequestPairing(message->pairing_request());
+ } else if (message->has_extension_message()) {
+ host_stub_->DeliverClientMessage(message->extension_message());
} else {
LOG(WARNING) << "Unknown control message received.";
}
diff --git a/remoting/protocol/host_control_dispatcher.h b/remoting/protocol/host_control_dispatcher.h
index 4620be1..82aa793 100644
--- a/remoting/protocol/host_control_dispatcher.h
+++ b/remoting/protocol/host_control_dispatcher.h
@@ -37,6 +37,8 @@ class HostControlDispatcher : public ChannelDispatcherBase,
virtual void SetCapabilities(const Capabilities& capabilities) OVERRIDE;
virtual void SetPairingResponse(
const PairingResponse& pairing_response) OVERRIDE;
+ virtual void DeliverHostMessage(
+ const ExtensionMessage& message) OVERRIDE;
// ClipboardStub implementation for sending clipboard data to client.
virtual void InjectClipboardEvent(const ClipboardEvent& event) OVERRIDE;
diff --git a/remoting/protocol/host_stub.h b/remoting/protocol/host_stub.h
index 46d7534..cf9fa0b 100644
--- a/remoting/protocol/host_stub.h
+++ b/remoting/protocol/host_stub.h
@@ -17,6 +17,7 @@ namespace protocol {
class AudioControl;
class Capabilities;
class ClientResolution;
+class ExtensionMessage;
class PairingResponse;
class PairingRequest;
class VideoControl;
@@ -43,6 +44,9 @@ class HostStub {
// Requests pairing between the host and client for PIN-less authentication.
virtual void RequestPairing(const PairingRequest& pairing_request) = 0;
+ // Deliver an extension message from the client to the host.
+ virtual void DeliverClientMessage(const ExtensionMessage& message) = 0;
+
protected:
virtual ~HostStub() {}
diff --git a/remoting/protocol/protocol_mock_objects.h b/remoting/protocol/protocol_mock_objects.h
index 74435db..16bb866 100644
--- a/remoting/protocol/protocol_mock_objects.h
+++ b/remoting/protocol/protocol_mock_objects.h
@@ -114,6 +114,7 @@ class MockHostStub : public HostStub {
MOCK_METHOD1(SetCapabilities, void(const Capabilities& capabilities));
MOCK_METHOD1(RequestPairing,
void(const PairingRequest& pairing_request));
+ MOCK_METHOD1(DeliverClientMessage, void(const ExtensionMessage& message));
private:
DISALLOW_COPY_AND_ASSIGN(MockHostStub);
@@ -128,6 +129,7 @@ class MockClientStub : public ClientStub {
MOCK_METHOD1(SetCapabilities, void(const Capabilities& capabilities));
MOCK_METHOD1(SetPairingResponse,
void(const PairingResponse& pairing_response));
+ MOCK_METHOD1(DeliverHostMessage, void(const ExtensionMessage& message));
// ClipboardStub mock implementation.
MOCK_METHOD1(InjectClipboardEvent, void(const ClipboardEvent& event));