| Index: remoting/host/client_session.cc
|
| diff --git a/remoting/host/client_session.cc b/remoting/host/client_session.cc
|
| index 6cf1c7f59d76134f83237c01b7c047703dc7a843..d59c3a61b75c54b3856b87f4d3061f019b413fe2 100644
|
| --- a/remoting/host/client_session.cc
|
| +++ b/remoting/host/client_session.cc
|
| @@ -6,6 +6,7 @@
|
|
|
| #include <algorithm>
|
|
|
| +#include "base/message_loop_proxy.h"
|
| #include "base/task.h"
|
| #include "remoting/host/capturer.h"
|
| #include "remoting/proto/event.pb.h"
|
| @@ -38,14 +39,16 @@ ClientSession::ClientSession(
|
| authenticated_(false),
|
| awaiting_continue_approval_(false),
|
| remote_mouse_button_state_(0) {
|
| -}
|
| + connection_->SetEventHandler(this);
|
|
|
| -ClientSession::~ClientSession() {
|
| + // TODO(sergeyu): Currently ConnectionToClient expects stubs to be
|
| + // set before channels are connected. Make it possible to set stubs
|
| + // later and set them only when connection is authenticated.
|
| + connection_->set_host_stub(this);
|
| + connection_->set_input_stub(this);
|
| }
|
|
|
| -void ClientSession::OnAuthenticationComplete() {
|
| - authenticated_ = true;
|
| - event_handler_->OnAuthenticationComplete(connection_.get());
|
| +ClientSession::~ClientSession() {
|
| }
|
|
|
| void ClientSession::InjectKeyEvent(const KeyEvent& event) {
|
| @@ -86,9 +89,40 @@ void ClientSession::InjectMouseEvent(const MouseEvent& event) {
|
| }
|
| }
|
|
|
| -void ClientSession::OnDisconnected() {
|
| - RestoreEventState();
|
| +void ClientSession::OnConnectionOpened(
|
| + protocol::ConnectionToClient* connection) {
|
| + DCHECK_EQ(connection_.get(), connection);
|
| + authenticated_ = true;
|
| + event_handler_->OnSessionAuthenticated(this);
|
| +}
|
| +
|
| +void ClientSession::OnConnectionClosed(
|
| + protocol::ConnectionToClient* connection) {
|
| + DCHECK_EQ(connection_.get(), connection);
|
| + scoped_refptr<ClientSession> self = this;
|
| + event_handler_->OnSessionClosed(this);
|
| + Disconnect();
|
| +}
|
| +
|
| +void ClientSession::OnConnectionFailed(
|
| + protocol::ConnectionToClient* connection) {
|
| + DCHECK_EQ(connection_.get(), connection);
|
| + // TODO(sergeyu): Log failure reason?
|
| + scoped_refptr<ClientSession> self = this;
|
| + event_handler_->OnSessionClosed(this);
|
| + Disconnect();
|
| +}
|
| +
|
| +void ClientSession::OnSequenceNumberUpdated(
|
| + protocol::ConnectionToClient* connection, int64 sequence_number) {
|
| + DCHECK_EQ(connection_.get(), connection);
|
| + event_handler_->OnSessionSequenceNumber(this, sequence_number);
|
| +}
|
| +
|
| +void ClientSession::Disconnect() {
|
| + connection_->Disconnect();
|
| authenticated_ = false;
|
| + RestoreEventState();
|
| }
|
|
|
| void ClientSession::LocalMouseMoved(const SkIPoint& mouse_pos) {
|
|
|