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( |