Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(180)

Side by Side Diff: remoting/host/desktop_session_proxy.cc

Issue 1864213002: Convert //remoting to use std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Mac IWYU Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « remoting/host/desktop_session_proxy.h ('k') | remoting/host/desktop_session_win.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_proxy.h" 5 #include "remoting/host/desktop_session_proxy.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <utility> 9 #include <utility>
10 10
11 #include "base/compiler_specific.h" 11 #include "base/compiler_specific.h"
12 #include "base/logging.h" 12 #include "base/logging.h"
13 #include "base/macros.h" 13 #include "base/macros.h"
14 #include "base/memory/ptr_util.h"
14 #include "base/memory/shared_memory.h" 15 #include "base/memory/shared_memory.h"
15 #include "base/process/process_handle.h" 16 #include "base/process/process_handle.h"
16 #include "base/single_thread_task_runner.h" 17 #include "base/single_thread_task_runner.h"
17 #include "build/build_config.h" 18 #include "build/build_config.h"
18 #include "ipc/ipc_channel_proxy.h" 19 #include "ipc/ipc_channel_proxy.h"
19 #include "ipc/ipc_message_macros.h" 20 #include "ipc/ipc_message_macros.h"
20 #include "remoting/base/capabilities.h" 21 #include "remoting/base/capabilities.h"
21 #include "remoting/host/chromoting_messages.h" 22 #include "remoting/host/chromoting_messages.h"
22 #include "remoting/host/client_session.h" 23 #include "remoting/host/client_session.h"
23 #include "remoting/host/client_session_control.h" 24 #include "remoting/host/client_session_control.h"
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 io_task_runner_(io_task_runner), 100 io_task_runner_(io_task_runner),
100 client_session_control_(client_session_control), 101 client_session_control_(client_session_control),
101 desktop_session_connector_(desktop_session_connector), 102 desktop_session_connector_(desktop_session_connector),
102 pending_capture_frame_requests_(0), 103 pending_capture_frame_requests_(0),
103 is_desktop_session_connected_(false), 104 is_desktop_session_connected_(false),
104 virtual_terminal_(virtual_terminal), 105 virtual_terminal_(virtual_terminal),
105 supports_touch_events_(supports_touch_events) { 106 supports_touch_events_(supports_touch_events) {
106 DCHECK(caller_task_runner_->BelongsToCurrentThread()); 107 DCHECK(caller_task_runner_->BelongsToCurrentThread());
107 } 108 }
108 109
109 scoped_ptr<AudioCapturer> DesktopSessionProxy::CreateAudioCapturer() { 110 std::unique_ptr<AudioCapturer> DesktopSessionProxy::CreateAudioCapturer() {
110 DCHECK(caller_task_runner_->BelongsToCurrentThread()); 111 DCHECK(caller_task_runner_->BelongsToCurrentThread());
111 112
112 return make_scoped_ptr(new IpcAudioCapturer(this)); 113 return base::WrapUnique(new IpcAudioCapturer(this));
113 } 114 }
114 115
115 scoped_ptr<InputInjector> DesktopSessionProxy::CreateInputInjector() { 116 std::unique_ptr<InputInjector> DesktopSessionProxy::CreateInputInjector() {
116 DCHECK(caller_task_runner_->BelongsToCurrentThread()); 117 DCHECK(caller_task_runner_->BelongsToCurrentThread());
117 118
118 return make_scoped_ptr(new IpcInputInjector(this)); 119 return base::WrapUnique(new IpcInputInjector(this));
119 } 120 }
120 121
121 scoped_ptr<ScreenControls> DesktopSessionProxy::CreateScreenControls() { 122 std::unique_ptr<ScreenControls> DesktopSessionProxy::CreateScreenControls() {
122 DCHECK(caller_task_runner_->BelongsToCurrentThread()); 123 DCHECK(caller_task_runner_->BelongsToCurrentThread());
123 124
124 return make_scoped_ptr(new IpcScreenControls(this)); 125 return base::WrapUnique(new IpcScreenControls(this));
125 } 126 }
126 127
127 scoped_ptr<webrtc::DesktopCapturer> DesktopSessionProxy::CreateVideoCapturer() { 128 std::unique_ptr<webrtc::DesktopCapturer>
129 DesktopSessionProxy::CreateVideoCapturer() {
128 DCHECK(caller_task_runner_->BelongsToCurrentThread()); 130 DCHECK(caller_task_runner_->BelongsToCurrentThread());
129 131
130 return make_scoped_ptr(new IpcVideoFrameCapturer(this)); 132 return base::WrapUnique(new IpcVideoFrameCapturer(this));
131 } 133 }
132 134
133 scoped_ptr<webrtc::MouseCursorMonitor> 135 std::unique_ptr<webrtc::MouseCursorMonitor>
134 DesktopSessionProxy::CreateMouseCursorMonitor() { 136 DesktopSessionProxy::CreateMouseCursorMonitor() {
135 return make_scoped_ptr(new IpcMouseCursorMonitor(this)); 137 return base::WrapUnique(new IpcMouseCursorMonitor(this));
136 } 138 }
137 139
138 std::string DesktopSessionProxy::GetCapabilities() const { 140 std::string DesktopSessionProxy::GetCapabilities() const {
139 std::string result = protocol::kRateLimitResizeRequests; 141 std::string result = protocol::kRateLimitResizeRequests;
140 // Ask the client to send its resolution unconditionally. 142 // Ask the client to send its resolution unconditionally.
141 if (virtual_terminal_) 143 if (virtual_terminal_)
142 result = result + " " + protocol::kSendInitialResolution; 144 result = result + " " + protocol::kSendInitialResolution;
143 145
144 if (supports_touch_events_) 146 if (supports_touch_events_)
145 result = result + " " + protocol::kTouchEventsCapability; 147 result = result + " " + protocol::kTouchEventsCapability;
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
364 if (!event.SerializeToString(&serialized_event)) { 366 if (!event.SerializeToString(&serialized_event)) {
365 LOG(ERROR) << "Failed to serialize protocol::TouchEvent."; 367 LOG(ERROR) << "Failed to serialize protocol::TouchEvent.";
366 return; 368 return;
367 } 369 }
368 370
369 SendToDesktop( 371 SendToDesktop(
370 new ChromotingNetworkDesktopMsg_InjectTouchEvent(serialized_event)); 372 new ChromotingNetworkDesktopMsg_InjectTouchEvent(serialized_event));
371 } 373 }
372 374
373 void DesktopSessionProxy::StartInputInjector( 375 void DesktopSessionProxy::StartInputInjector(
374 scoped_ptr<protocol::ClipboardStub> client_clipboard) { 376 std::unique_ptr<protocol::ClipboardStub> client_clipboard) {
375 DCHECK(caller_task_runner_->BelongsToCurrentThread()); 377 DCHECK(caller_task_runner_->BelongsToCurrentThread());
376 378
377 client_clipboard_ = std::move(client_clipboard); 379 client_clipboard_ = std::move(client_clipboard);
378 } 380 }
379 381
380 void DesktopSessionProxy::SetScreenResolution( 382 void DesktopSessionProxy::SetScreenResolution(
381 const ScreenResolution& resolution) { 383 const ScreenResolution& resolution) {
382 DCHECK(caller_task_runner_->BelongsToCurrentThread()); 384 DCHECK(caller_task_runner_->BelongsToCurrentThread());
383 385
384 if (resolution.IsEmpty()) 386 if (resolution.IsEmpty())
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
424 LOG(ERROR) << "Failed to find the shared buffer " << id; 426 LOG(ERROR) << "Failed to find the shared buffer " << id;
425 return nullptr; 427 return nullptr;
426 } 428 }
427 } 429 }
428 430
429 void DesktopSessionProxy::OnAudioPacket(const std::string& serialized_packet) { 431 void DesktopSessionProxy::OnAudioPacket(const std::string& serialized_packet) {
430 DCHECK(caller_task_runner_->BelongsToCurrentThread()); 432 DCHECK(caller_task_runner_->BelongsToCurrentThread());
431 433
432 // Parse a serialized audio packet. No further validation is done since 434 // Parse a serialized audio packet. No further validation is done since
433 // the message was sent by more privileged process. 435 // the message was sent by more privileged process.
434 scoped_ptr<AudioPacket> packet(new AudioPacket()); 436 std::unique_ptr<AudioPacket> packet(new AudioPacket());
435 if (!packet->ParseFromString(serialized_packet)) { 437 if (!packet->ParseFromString(serialized_packet)) {
436 LOG(ERROR) << "Failed to parse AudioPacket."; 438 LOG(ERROR) << "Failed to parse AudioPacket.";
437 return; 439 return;
438 } 440 }
439 441
440 // Pass a captured audio packet to |audio_capturer_|. 442 // Pass a captured audio packet to |audio_capturer_|.
441 audio_capture_task_runner_->PostTask( 443 audio_capture_task_runner_->PostTask(
442 FROM_HERE, base::Bind(&IpcAudioCapturer::OnAudioPacket, audio_capturer_, 444 FROM_HERE, base::Bind(&IpcAudioCapturer::OnAudioPacket, audio_capturer_,
443 base::Passed(&packet))); 445 base::Passed(&packet)));
444 } 446 }
(...skipping 23 matching lines...) Expand all
468 void DesktopSessionProxy::OnCaptureCompleted( 470 void DesktopSessionProxy::OnCaptureCompleted(
469 const SerializedDesktopFrame& serialized_frame) { 471 const SerializedDesktopFrame& serialized_frame) {
470 DCHECK(caller_task_runner_->BelongsToCurrentThread()); 472 DCHECK(caller_task_runner_->BelongsToCurrentThread());
471 473
472 // Assume that |serialized_frame| is well-formed because it was received from 474 // Assume that |serialized_frame| is well-formed because it was received from
473 // a more privileged process. 475 // a more privileged process.
474 scoped_refptr<IpcSharedBufferCore> shared_buffer_core = 476 scoped_refptr<IpcSharedBufferCore> shared_buffer_core =
475 GetSharedBufferCore(serialized_frame.shared_buffer_id); 477 GetSharedBufferCore(serialized_frame.shared_buffer_id);
476 CHECK(shared_buffer_core.get()); 478 CHECK(shared_buffer_core.get());
477 479
478 scoped_ptr<webrtc::DesktopFrame> frame( 480 std::unique_ptr<webrtc::DesktopFrame> frame(
479 new webrtc::SharedMemoryDesktopFrame( 481 new webrtc::SharedMemoryDesktopFrame(
480 serialized_frame.dimensions, serialized_frame.bytes_per_row, 482 serialized_frame.dimensions, serialized_frame.bytes_per_row,
481 new IpcSharedBuffer(shared_buffer_core))); 483 new IpcSharedBuffer(shared_buffer_core)));
482 frame->set_capture_time_ms(serialized_frame.capture_time_ms); 484 frame->set_capture_time_ms(serialized_frame.capture_time_ms);
483 frame->set_dpi(serialized_frame.dpi); 485 frame->set_dpi(serialized_frame.dpi);
484 486
485 for (size_t i = 0; i < serialized_frame.dirty_region.size(); ++i) { 487 for (size_t i = 0; i < serialized_frame.dirty_region.size(); ++i) {
486 frame->mutable_updated_region()->AddRect(serialized_frame.dirty_region[i]); 488 frame->mutable_updated_region()->AddRect(serialized_frame.dirty_region[i]);
487 } 489 }
488 490
489 --pending_capture_frame_requests_; 491 --pending_capture_frame_requests_;
490 video_capturer_->OnCaptureCompleted(std::move(frame)); 492 video_capturer_->OnCaptureCompleted(std::move(frame));
491 } 493 }
492 494
493 void DesktopSessionProxy::OnMouseCursor( 495 void DesktopSessionProxy::OnMouseCursor(
494 const webrtc::MouseCursor& mouse_cursor) { 496 const webrtc::MouseCursor& mouse_cursor) {
495 DCHECK(caller_task_runner_->BelongsToCurrentThread()); 497 DCHECK(caller_task_runner_->BelongsToCurrentThread());
496 498
497 if (mouse_cursor_monitor_) { 499 if (mouse_cursor_monitor_) {
498 mouse_cursor_monitor_->OnMouseCursor( 500 mouse_cursor_monitor_->OnMouseCursor(
499 make_scoped_ptr(webrtc::MouseCursor::CopyOf(mouse_cursor))); 501 base::WrapUnique(webrtc::MouseCursor::CopyOf(mouse_cursor)));
500 } 502 }
501 } 503 }
502 504
503 void DesktopSessionProxy::OnInjectClipboardEvent( 505 void DesktopSessionProxy::OnInjectClipboardEvent(
504 const std::string& serialized_event) { 506 const std::string& serialized_event) {
505 DCHECK(caller_task_runner_->BelongsToCurrentThread()); 507 DCHECK(caller_task_runner_->BelongsToCurrentThread());
506 508
507 if (client_clipboard_) { 509 if (client_clipboard_) {
508 protocol::ClipboardEvent event; 510 protocol::ClipboardEvent event;
509 if (!event.ParseFromString(serialized_event)) { 511 if (!event.ParseFromString(serialized_event)) {
(...skipping 16 matching lines...) Expand all
526 } 528 }
527 529
528 // static 530 // static
529 void DesktopSessionProxyTraits::Destruct( 531 void DesktopSessionProxyTraits::Destruct(
530 const DesktopSessionProxy* desktop_session_proxy) { 532 const DesktopSessionProxy* desktop_session_proxy) {
531 desktop_session_proxy->caller_task_runner_->DeleteSoon(FROM_HERE, 533 desktop_session_proxy->caller_task_runner_->DeleteSoon(FROM_HERE,
532 desktop_session_proxy); 534 desktop_session_proxy);
533 } 535 }
534 536
535 } // namespace remoting 537 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/host/desktop_session_proxy.h ('k') | remoting/host/desktop_session_win.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698