| Index: remoting/host/desktop_session_proxy.cc
|
| diff --git a/remoting/host/desktop_session_proxy.cc b/remoting/host/desktop_session_proxy.cc
|
| index 2cd68c3d85f9c7f0278024d61c51db9324e14e00..45ffb77a7eaf9f2469762e00daec8408ec665ccc 100644
|
| --- a/remoting/host/desktop_session_proxy.cc
|
| +++ b/remoting/host/desktop_session_proxy.cc
|
| @@ -178,8 +178,8 @@ bool DesktopSessionProxy::OnMessageReceived(const IPC::Message& message) {
|
| IPC_BEGIN_MESSAGE_MAP(DesktopSessionProxy, message)
|
| IPC_MESSAGE_HANDLER(ChromotingDesktopNetworkMsg_AudioPacket,
|
| OnAudioPacket)
|
| - IPC_MESSAGE_HANDLER(ChromotingDesktopNetworkMsg_CaptureCompleted,
|
| - OnCaptureCompleted)
|
| + IPC_MESSAGE_HANDLER(ChromotingDesktopNetworkMsg_CaptureResult,
|
| + OnCaptureResult)
|
| IPC_MESSAGE_HANDLER(ChromotingDesktopNetworkMsg_MouseCursor,
|
| OnMouseCursor)
|
| IPC_MESSAGE_HANDLER(ChromotingDesktopNetworkMsg_CreateSharedBuffer,
|
| @@ -262,7 +262,8 @@ void DesktopSessionProxy::DetachFromDesktop() {
|
| // Generate fake responses to keep the video capturer in sync.
|
| while (pending_capture_frame_requests_) {
|
| --pending_capture_frame_requests_;
|
| - video_capturer_->OnCaptureCompleted(nullptr);
|
| + video_capturer_->OnCaptureResult(
|
| + webrtc::DesktopCapturer::Result::ERROR_PERMANENT, nullptr);
|
| }
|
| }
|
|
|
| @@ -280,7 +281,8 @@ void DesktopSessionProxy::CaptureFrame() {
|
| ++pending_capture_frame_requests_;
|
| SendToDesktop(new ChromotingNetworkDesktopMsg_CaptureFrame());
|
| } else {
|
| - video_capturer_->OnCaptureCompleted(nullptr);
|
| + video_capturer_->OnCaptureResult(
|
| + webrtc::DesktopCapturer::Result::ERROR_PERMANENT, nullptr);
|
| }
|
| }
|
|
|
| @@ -467,16 +469,15 @@ void DesktopSessionProxy::OnReleaseSharedBuffer(int id) {
|
| shared_buffers_.erase(id);
|
| }
|
|
|
| -void DesktopSessionProxy::OnCaptureCompleted(
|
| +void DesktopSessionProxy::OnCaptureResult(
|
| + webrtc::DesktopCapturer::Result result,
|
| const SerializedDesktopFrame& serialized_frame) {
|
| DCHECK(caller_task_runner_->BelongsToCurrentThread());
|
|
|
| --pending_capture_frame_requests_;
|
|
|
| - // If the input serialized_frame does not have a screen size, it means the
|
| - // capturer returns a nullptr for OnCaptureCompleted call.
|
| - if (serialized_frame.dimensions.is_empty()) {
|
| - video_capturer_->OnCaptureCompleted(nullptr);
|
| + if (result != webrtc::DesktopCapturer::Result::SUCCESS) {
|
| + video_capturer_->OnCaptureResult(result, nullptr);
|
| return;
|
| }
|
|
|
| @@ -497,7 +498,7 @@ void DesktopSessionProxy::OnCaptureCompleted(
|
| frame->mutable_updated_region()->AddRect(serialized_frame.dirty_region[i]);
|
| }
|
|
|
| - video_capturer_->OnCaptureCompleted(std::move(frame));
|
| + video_capturer_->OnCaptureResult(result, std::move(frame));
|
| }
|
|
|
| void DesktopSessionProxy::OnMouseCursor(
|
|
|