Chromium Code Reviews| 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. |