Chromium Code Reviews| Index: remoting/host/client_session.cc |
| diff --git a/remoting/host/client_session.cc b/remoting/host/client_session.cc |
| index 11a380e89f2edc30329cdb1b1dbcf0eee12d1c27..48170d203de3e6581dfd4fa1a59ff284ea27edb1 100644 |
| --- a/remoting/host/client_session.cc |
| +++ b/remoting/host/client_session.cc |
| @@ -48,12 +48,7 @@ ClientSession::ClientSession( |
| connection_(connection.Pass()), |
| connection_factory_(connection_.get()), |
| client_jid_(connection_->session()->jid()), |
| - // TODO(alexeypa): delay creation of |desktop_environment_| until |
| - // the curtain is enabled. |
| - desktop_environment_(desktop_environment_factory->Create( |
| - client_jid_, |
| - base::Bind(&protocol::ConnectionToClient::Disconnect, |
| - connection_factory_.GetWeakPtr()))), |
| + desktop_environment_factory_(desktop_environment_factory), |
| input_tracker_(&host_input_filter_), |
| remote_input_filter_(&input_tracker_), |
| mouse_clamping_filter_(&remote_input_filter_), |
| @@ -159,11 +154,17 @@ void ClientSession::OnConnectionChannelsConnected( |
| DCHECK(!session_controller_); |
| DCHECK(!video_scheduler_); |
| + scoped_ptr<DesktopEnvironment> desktop_environment = |
| + desktop_environment_factory_->Create( |
| + client_jid_, |
| + base::Bind(&protocol::ConnectionToClient::Disconnect, |
| + connection_factory_.GetWeakPtr())); |
|
Wez
2013/03/14 04:15:54
ClientSession owns the DesktopEnvironment, so can'
alexeypa (please no reviews)
2013/03/14 19:09:06
No, we can't. The callback is passed to DesktopSes
Wez
2013/03/15 00:15:26
That feels like IpcDesktopEnvironment/DesktopSessi
|
| + |
| // Create the session controller. |
| - session_controller_ = desktop_environment_->CreateSessionController(); |
| + session_controller_ = desktop_environment->CreateSessionController(); |
| // Create and start the event executor. |
| - event_executor_ = desktop_environment_->CreateEventExecutor( |
| + event_executor_ = desktop_environment->CreateEventExecutor( |
| input_task_runner_, ui_task_runner_); |
| event_executor_->Start(CreateClipboardProxy()); |
| @@ -182,8 +183,8 @@ void ClientSession::OnConnectionChannelsConnected( |
| video_capture_task_runner_, |
| video_encode_task_runner_, |
| network_task_runner_, |
| - desktop_environment_->CreateVideoCapturer(video_capture_task_runner_, |
| - video_encode_task_runner_), |
| + desktop_environment->CreateVideoCapturer(video_capture_task_runner_, |
| + video_encode_task_runner_), |
| video_encoder.Pass(), |
| connection_->client_stub(), |
| &mouse_clamping_filter_); |
| @@ -195,7 +196,7 @@ void ClientSession::OnConnectionChannelsConnected( |
| audio_scheduler_ = AudioScheduler::Create( |
| audio_task_runner_, |
| network_task_runner_, |
| - desktop_environment_->CreateAudioCapturer(audio_task_runner_), |
| + desktop_environment->CreateAudioCapturer(audio_task_runner_), |
| audio_encoder.Pass(), |
| connection_->audio_stub()); |
| } |