Index: remoting/host/client_session.h |
diff --git a/remoting/host/client_session.h b/remoting/host/client_session.h |
index a42e91e4edcc3741d30a1086852aae362865b612..8bc2e0944ccd97309fcd717833bba04491634003 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 |
std::unique_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_|. |
+ std::unique_ptr<protocol::VideoLayout> pending_video_layout_message_; |
// Used to disable callbacks to |this| once DisconnectSession() has been |
// called. |