Index: mojo/public/cpp/bindings/lib/pipe_control_message_handler.cc |
diff --git a/mojo/public/cpp/bindings/lib/pipe_control_message_handler.cc b/mojo/public/cpp/bindings/lib/pipe_control_message_handler.cc |
index 39b31635a3d46640a2fad8bc5763a915fd54f5a6..db04c6dabc29bcd66ebab03f5ae50249c22b72e9 100644 |
--- a/mojo/public/cpp/bindings/lib/pipe_control_message_handler.cc |
+++ b/mojo/public/cpp/bindings/lib/pipe_control_message_handler.cc |
@@ -67,8 +67,15 @@ bool PipeControlMessageHandler::RunOrClosePipe(Message* message) { |
params, ¶ms_ptr, &context_); |
if (params_ptr->input->is_peer_associated_endpoint_closed_event()) { |
- return delegate_->OnPeerAssociatedEndpointClosed( |
- params_ptr->input->get_peer_associated_endpoint_closed_event()->id); |
+ const auto& event = |
+ params_ptr->input->get_peer_associated_endpoint_closed_event(); |
+ |
+ base::Optional<DisconnectReason> reason; |
+ if (event->disconnect_reason) { |
+ reason.emplace(event->disconnect_reason->custom_reason, |
+ event->disconnect_reason->description); |
+ } |
+ return delegate_->OnPeerAssociatedEndpointClosed(event->id, reason); |
} |
if (params_ptr->input->is_associated_endpoint_closed_before_sent_event()) { |
return delegate_->OnAssociatedEndpointClosedBeforeSent( |