Index: remoting/host/client_session.h |
diff --git a/remoting/host/client_session.h b/remoting/host/client_session.h |
index 0caf5e10ff326c5a96a646da80d90174ccfc2bef..ed95a98a999d94f29b946bd9309838e7de9fd4e6 100644 |
--- a/remoting/host/client_session.h |
+++ b/remoting/host/client_session.h |
@@ -44,13 +44,16 @@ class InputInjector; |
class MouseShapePump; |
class ScreenControls; |
+namespace protocol { |
+class VideoLayout; |
+} // namespace protocol |
+ |
// A ClientSession keeps a reference to a connection to a client, and maintains |
// per-client state. |
-class ClientSession |
- : public base::NonThreadSafe, |
- public protocol::HostStub, |
- public protocol::ConnectionToClient::EventHandler, |
- public ClientSessionControl { |
+class ClientSession : public base::NonThreadSafe, |
+ public protocol::HostStub, |
+ public protocol::ConnectionToClient::EventHandler, |
+ public ClientSessionControl { |
public: |
// Callback interface for passing events to the ChromotingHost. |
class EventHandler { |
@@ -112,6 +115,7 @@ class ClientSession |
protocol::ConnectionToClient* connection) override; |
void OnConnectionAuthenticated( |
protocol::ConnectionToClient* connection) override; |
+ void CreateVideoStreams(protocol::ConnectionToClient* connection) override; |
void OnConnectionChannelsConnected( |
protocol::ConnectionToClient* connection) override; |
void OnConnectionClosed(protocol::ConnectionToClient* connection, |
@@ -219,12 +223,19 @@ class ClientSession |
scoped_ptr<HostExtensionSessionManager> extension_manager_; |
// Set to true if the client was authenticated successfully. |
- bool is_authenticated_; |
+ bool is_authenticated_ = false; |
+ |
+ // Set to true after all data channels have been connected. |
+ bool channels_connected_ = false; |
// Used to store video channel pause & lossless parameters. |
- bool pause_video_; |
- bool lossless_video_encode_; |
- bool lossless_video_color_; |
+ bool pause_video_ = false; |
+ bool lossless_video_encode_ = false; |
+ bool lossless_video_color_ = false; |
+ |
+ // VideoLayout is sent only after the control channel is connected. Until |
+ // then it's stored in |pending_video_layout_message_|. |
+ scoped_ptr<protocol::VideoLayout> pending_video_layout_message_; |
Jamie
2016/04/05 21:46:36
Optional: Would it be better to queue this in the
Sergey Ulanov
2016/04/06 21:23:50
That's a great suggestions. Queuing actually works
|
// Used to disable callbacks to |this| once DisconnectSession() has been |
// called. |