| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "remoting/host/desktop_session_agent.h" | 5 #include "remoting/host/desktop_session_agent.h" |
| 6 | 6 |
| 7 #include "base/files/file_util.h" | 7 #include "base/files/file_util.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "base/memory/shared_memory.h" | 9 #include "base/memory/shared_memory.h" |
| 10 #include "ipc/ipc_channel_proxy.h" | 10 #include "ipc/ipc_channel_proxy.h" |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 113 scoped_refptr<AutoThreadTaskRunner> audio_capture_task_runner, | 113 scoped_refptr<AutoThreadTaskRunner> audio_capture_task_runner, |
| 114 scoped_refptr<AutoThreadTaskRunner> caller_task_runner, | 114 scoped_refptr<AutoThreadTaskRunner> caller_task_runner, |
| 115 scoped_refptr<AutoThreadTaskRunner> input_task_runner, | 115 scoped_refptr<AutoThreadTaskRunner> input_task_runner, |
| 116 scoped_refptr<AutoThreadTaskRunner> io_task_runner, | 116 scoped_refptr<AutoThreadTaskRunner> io_task_runner, |
| 117 scoped_refptr<AutoThreadTaskRunner> video_capture_task_runner) | 117 scoped_refptr<AutoThreadTaskRunner> video_capture_task_runner) |
| 118 : audio_capture_task_runner_(audio_capture_task_runner), | 118 : audio_capture_task_runner_(audio_capture_task_runner), |
| 119 caller_task_runner_(caller_task_runner), | 119 caller_task_runner_(caller_task_runner), |
| 120 input_task_runner_(input_task_runner), | 120 input_task_runner_(input_task_runner), |
| 121 io_task_runner_(io_task_runner), | 121 io_task_runner_(io_task_runner), |
| 122 video_capture_task_runner_(video_capture_task_runner), | 122 video_capture_task_runner_(video_capture_task_runner), |
| 123 control_factory_(this), | |
| 124 next_shared_buffer_id_(1), | 123 next_shared_buffer_id_(1), |
| 125 shared_buffers_(0), | 124 shared_buffers_(0), |
| 126 started_(false) { | 125 started_(false), |
| 126 weak_factory_(this) { |
| 127 DCHECK(caller_task_runner_->BelongsToCurrentThread()); | 127 DCHECK(caller_task_runner_->BelongsToCurrentThread()); |
| 128 } | 128 } |
| 129 | 129 |
| 130 bool DesktopSessionAgent::OnMessageReceived(const IPC::Message& message) { | 130 bool DesktopSessionAgent::OnMessageReceived(const IPC::Message& message) { |
| 131 DCHECK(caller_task_runner_->BelongsToCurrentThread()); | 131 DCHECK(caller_task_runner_->BelongsToCurrentThread()); |
| 132 | 132 |
| 133 bool handled = true; | 133 bool handled = true; |
| 134 if (started_) { | 134 if (started_) { |
| 135 IPC_BEGIN_MESSAGE_MAP(DesktopSessionAgent, message) | 135 IPC_BEGIN_MESSAGE_MAP(DesktopSessionAgent, message) |
| 136 IPC_MESSAGE_HANDLER(ChromotingNetworkDesktopMsg_CaptureFrame, | 136 IPC_MESSAGE_HANDLER(ChromotingNetworkDesktopMsg_CaptureFrame, |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 261 | 261 |
| 262 started_ = true; | 262 started_ = true; |
| 263 client_jid_ = authenticated_jid; | 263 client_jid_ = authenticated_jid; |
| 264 | 264 |
| 265 // Enable the curtain mode. | 265 // Enable the curtain mode. |
| 266 delegate_->desktop_environment_factory().SetEnableCurtaining( | 266 delegate_->desktop_environment_factory().SetEnableCurtaining( |
| 267 virtual_terminal); | 267 virtual_terminal); |
| 268 | 268 |
| 269 // Create a desktop environment for the new session. | 269 // Create a desktop environment for the new session. |
| 270 desktop_environment_ = delegate_->desktop_environment_factory().Create( | 270 desktop_environment_ = delegate_->desktop_environment_factory().Create( |
| 271 control_factory_.GetWeakPtr()); | 271 weak_factory_.GetWeakPtr()); |
| 272 | 272 |
| 273 // Create the session controller and set the initial screen resolution. | 273 // Create the session controller and set the initial screen resolution. |
| 274 screen_controls_ = desktop_environment_->CreateScreenControls(); | 274 screen_controls_ = desktop_environment_->CreateScreenControls(); |
| 275 SetScreenResolution(resolution); | 275 SetScreenResolution(resolution); |
| 276 | 276 |
| 277 // Create the input injector. | 277 // Create the input injector. |
| 278 input_injector_ = desktop_environment_->CreateInputInjector(); | 278 input_injector_ = desktop_environment_->CreateInputInjector(); |
| 279 | 279 |
| 280 // Hook up the input filter. | 280 // Hook up the input filter. |
| 281 input_tracker_.reset(new protocol::InputEventTracker(input_injector_.get())); | 281 input_tracker_.reset(new protocol::InputEventTracker(input_injector_.get())); |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 400 | 400 |
| 401 delegate_.reset(); | 401 delegate_.reset(); |
| 402 | 402 |
| 403 // Make sure the channel is closed. | 403 // Make sure the channel is closed. |
| 404 network_channel_.reset(); | 404 network_channel_.reset(); |
| 405 | 405 |
| 406 if (started_) { | 406 if (started_) { |
| 407 started_ = false; | 407 started_ = false; |
| 408 | 408 |
| 409 // Ignore any further callbacks. | 409 // Ignore any further callbacks. |
| 410 control_factory_.InvalidateWeakPtrs(); | 410 weak_factory_.InvalidateWeakPtrs(); |
| 411 client_jid_.clear(); | 411 client_jid_.clear(); |
| 412 | 412 |
| 413 remote_input_filter_.reset(); | 413 remote_input_filter_.reset(); |
| 414 | 414 |
| 415 // Ensure that any pressed keys or buttons are released. | 415 // Ensure that any pressed keys or buttons are released. |
| 416 input_tracker_->ReleaseAll(); | 416 input_tracker_->ReleaseAll(); |
| 417 input_tracker_.reset(); | 417 input_tracker_.reset(); |
| 418 | 418 |
| 419 desktop_environment_.reset(); | 419 desktop_environment_.reset(); |
| 420 input_injector_.reset(); | 420 input_injector_.reset(); |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 583 void DesktopSessionAgent::OnSharedBufferDeleted(int id) { | 583 void DesktopSessionAgent::OnSharedBufferDeleted(int id) { |
| 584 DCHECK(video_capture_task_runner_->BelongsToCurrentThread()); | 584 DCHECK(video_capture_task_runner_->BelongsToCurrentThread()); |
| 585 DCHECK(id != 0); | 585 DCHECK(id != 0); |
| 586 | 586 |
| 587 shared_buffers_--; | 587 shared_buffers_--; |
| 588 DCHECK_GE(shared_buffers_, 0); | 588 DCHECK_GE(shared_buffers_, 0); |
| 589 SendToNetwork(new ChromotingDesktopNetworkMsg_ReleaseSharedBuffer(id)); | 589 SendToNetwork(new ChromotingDesktopNetworkMsg_ReleaseSharedBuffer(id)); |
| 590 } | 590 } |
| 591 | 591 |
| 592 } // namespace remoting | 592 } // namespace remoting |
| OLD | NEW |