| Index: remoting/host/basic_desktop_environment.cc
|
| diff --git a/remoting/host/basic_desktop_environment.cc b/remoting/host/basic_desktop_environment.cc
|
| index b65018e8bc82ae6093037a805425b0014aaf193b..cdaadf04dce153a2f601b5a0e39b57996883256c 100644
|
| --- a/remoting/host/basic_desktop_environment.cc
|
| +++ b/remoting/host/basic_desktop_environment.cc
|
| @@ -10,7 +10,9 @@
|
| #include "build/build_config.h"
|
| #include "remoting/host/audio_capturer.h"
|
| #include "remoting/host/client_session_control.h"
|
| +#include "remoting/host/desktop_capturer_proxy.h"
|
| #include "remoting/host/input_injector.h"
|
| +#include "remoting/host/mouse_cursor_monitor_proxy.h"
|
| #include "remoting/host/screen_controls.h"
|
| #include "remoting/host/security_key/gnubby_auth_handler.h"
|
| #include "remoting/protocol/capability_names.h"
|
| @@ -52,12 +54,16 @@ scoped_ptr<ScreenControls> BasicDesktopEnvironment::CreateScreenControls() {
|
|
|
| scoped_ptr<webrtc::MouseCursorMonitor>
|
| BasicDesktopEnvironment::CreateMouseCursorMonitor() {
|
| + scoped_ptr<webrtc::MouseCursorMonitor> cursor_monitor;
|
| +
|
| #if defined(OS_CHROMEOS)
|
| - return make_scoped_ptr(new MouseCursorMonitorAura());
|
| + cursor_monitor.reset(new MouseCursorMonitorAura());
|
| #else
|
| - return make_scoped_ptr(webrtc::MouseCursorMonitor::CreateForScreen(
|
| + cursor_monitor.reset(webrtc::MouseCursorMonitor::CreateForScreen(
|
| *desktop_capture_options_, webrtc::kFullDesktopScreenId));
|
| #endif
|
| + return make_scoped_ptr(new MouseCursorMonitorProxy(
|
| + video_capture_task_runner_, std::move(cursor_monitor)));
|
| }
|
|
|
| std::string BasicDesktopEnvironment::GetCapabilities() const {
|
| @@ -79,27 +85,30 @@ scoped_ptr<webrtc::DesktopCapturer>
|
| BasicDesktopEnvironment::CreateVideoCapturer() {
|
| DCHECK(caller_task_runner_->BelongsToCurrentThread());
|
|
|
| + scoped_ptr<webrtc::DesktopCapturer> capturer;
|
| +
|
| #if defined(OS_CHROMEOS)
|
| - return scoped_ptr<webrtc::DesktopCapturer>(new AuraDesktopCapturer());
|
| + capturer.reset(new AuraDesktopCapturer());
|
| #else // !defined(OS_CHROMEOS)
|
| - // The basic desktop environment does not use X DAMAGE, since it is
|
| - // broken on many systems - see http://crbug.com/73423.
|
| - return make_scoped_ptr(
|
| - webrtc::ScreenCapturer::Create(*desktop_capture_options_));
|
| + capturer.reset(webrtc::ScreenCapturer::Create(*desktop_capture_options_));
|
| #endif // !defined(OS_CHROMEOS)
|
| +
|
| + return make_scoped_ptr(new DesktopCapturerProxy(video_capture_task_runner_,
|
| + std::move(capturer)));
|
| }
|
|
|
| BasicDesktopEnvironment::BasicDesktopEnvironment(
|
| scoped_refptr<base::SingleThreadTaskRunner> caller_task_runner,
|
| + scoped_refptr<base::SingleThreadTaskRunner> video_capture_task_runner,
|
| scoped_refptr<base::SingleThreadTaskRunner> input_task_runner,
|
| scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner,
|
| bool supports_touch_events)
|
| : caller_task_runner_(caller_task_runner),
|
| + video_capture_task_runner_(video_capture_task_runner),
|
| input_task_runner_(input_task_runner),
|
| ui_task_runner_(ui_task_runner),
|
| - desktop_capture_options_(
|
| - new webrtc::DesktopCaptureOptions(
|
| - webrtc::DesktopCaptureOptions::CreateDefault())),
|
| + desktop_capture_options_(new webrtc::DesktopCaptureOptions(
|
| + webrtc::DesktopCaptureOptions::CreateDefault())),
|
| supports_touch_events_(supports_touch_events) {
|
| DCHECK(caller_task_runner_->BelongsToCurrentThread());
|
| #if defined(USE_X11)
|
| @@ -109,16 +118,16 @@ BasicDesktopEnvironment::BasicDesktopEnvironment(
|
|
|
| BasicDesktopEnvironmentFactory::BasicDesktopEnvironmentFactory(
|
| scoped_refptr<base::SingleThreadTaskRunner> caller_task_runner,
|
| + scoped_refptr<base::SingleThreadTaskRunner> video_capture_task_runner,
|
| scoped_refptr<base::SingleThreadTaskRunner> input_task_runner,
|
| scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner)
|
| : caller_task_runner_(caller_task_runner),
|
| + video_capture_task_runner_(video_capture_task_runner),
|
| input_task_runner_(input_task_runner),
|
| ui_task_runner_(ui_task_runner),
|
| - supports_touch_events_(false) {
|
| -}
|
| + supports_touch_events_(false) {}
|
|
|
| -BasicDesktopEnvironmentFactory::~BasicDesktopEnvironmentFactory() {
|
| -}
|
| +BasicDesktopEnvironmentFactory::~BasicDesktopEnvironmentFactory() {}
|
|
|
| bool BasicDesktopEnvironmentFactory::SupportsAudioCapture() const {
|
| DCHECK(caller_task_runner_->BelongsToCurrentThread());
|
|
|