Index: components/cronet/android/cronet_url_request_adapter.cc |
diff --git a/components/cronet/android/cronet_url_request_adapter.cc b/components/cronet/android/cronet_url_request_adapter.cc |
index e0820aa46b6db0584abd0cd4147aaa33b0d02f9b..75362cde1e468b071d890d58324fb6d554b3a485 100644 |
--- a/components/cronet/android/cronet_url_request_adapter.cc |
+++ b/components/cronet/android/cronet_url_request_adapter.cc |
@@ -23,6 +23,7 @@ |
#include "net/http/http_response_headers.h" |
#include "net/http/http_status_code.h" |
#include "net/http/http_util.h" |
+#include "net/proxy/proxy_server.h" |
#include "net/quic/core/quic_protocol.h" |
#include "net/ssl/ssl_info.h" |
#include "net/url_request/redirect_info.h" |
@@ -47,6 +48,14 @@ int64_t ConvertTime(const base::TimeTicks& ticks, |
return (start_time + (ticks - start_ticks)).ToJavaTime(); |
} |
+// Returns the string representation of the HostPortPair of the proxy server |
+// that was used to fetch the response. |
+std::string GetProxy(const net::HttpResponseInfo& info) { |
+ if (!info.proxy_server.is_valid() || info.proxy_server.is_direct()) |
+ return net::HostPortPair().ToString(); |
+ return info.proxy_server.host_port_pair().ToString(); |
+} |
+ |
} // namespace |
// Explicitly register static JNI functions. |
@@ -227,9 +236,7 @@ void CronetURLRequestAdapter::OnReceivedRedirect( |
ConvertUTF8ToJavaString(env, |
request->response_info().alpn_negotiated_protocol) |
.obj(), |
- ConvertUTF8ToJavaString(env, |
- request->response_info().proxy_server.ToString()) |
- .obj(), |
+ ConvertUTF8ToJavaString(env, GetProxy(request->response_info())).obj(), |
request->GetTotalReceivedBytes()); |
*defer_redirect = true; |
} |
@@ -276,9 +283,7 @@ void CronetURLRequestAdapter::OnResponseStarted(net::URLRequest* request, |
ConvertUTF8ToJavaString(env, |
request->response_info().alpn_negotiated_protocol) |
.obj(), |
- ConvertUTF8ToJavaString(env, |
- request->response_info().proxy_server.ToString()) |
- .obj()); |
+ ConvertUTF8ToJavaString(env, GetProxy(request->response_info())).obj()); |
} |
void CronetURLRequestAdapter::OnReadCompleted(net::URLRequest* request, |