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 6e79bb5d431f7f296ae374228bbe1d7bfa25fb02..0a637e61abe41f6f29dcbc416f55611d0f803f07 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" |
@@ -197,6 +198,12 @@ void CronetURLRequestAdapter::OnReceivedRedirect( |
bool* defer_redirect) { |
DCHECK(context_->IsOnNetworkThread()); |
JNIEnv* env = base::android::AttachCurrentThread(); |
+ |
+ const net::HostPortPair host_port_pair = |
+ !request->response_info().proxy_server.is_valid() || |
+ request->response_info().proxy_server.is_direct() |
+ ? net::HostPortPair() |
+ : request->response_info().proxy_server.host_port_pair(); |
cronet::Java_CronetUrlRequest_onRedirectReceived( |
env, owner_.obj(), |
ConvertUTF8ToJavaString(env, redirect_info.new_url.spec()).obj(), |
@@ -208,9 +215,7 @@ void CronetURLRequestAdapter::OnReceivedRedirect( |
ConvertUTF8ToJavaString(env, |
request->response_info().alpn_negotiated_protocol) |
.obj(), |
- ConvertUTF8ToJavaString(env, |
- request->response_info().proxy_server.ToString()) |
- .obj(), |
+ ConvertUTF8ToJavaString(env, host_port_pair.ToString()).obj(), |
request->GetTotalReceivedBytes()); |
*defer_redirect = true; |
} |
@@ -248,6 +253,11 @@ void CronetURLRequestAdapter::OnResponseStarted(net::URLRequest* request, |
return; |
} |
JNIEnv* env = base::android::AttachCurrentThread(); |
+ const net::HostPortPair host_port_pair = |
+ !request->response_info().proxy_server.is_valid() || |
+ request->response_info().proxy_server.is_direct() |
+ ? net::HostPortPair() |
+ : request->response_info().proxy_server.host_port_pair(); |
cronet::Java_CronetUrlRequest_onResponseStarted( |
env, owner_.obj(), request->GetResponseCode(), |
ConvertUTF8ToJavaString(env, request->response_headers()->GetStatusText()) |
@@ -257,9 +267,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, host_port_pair.ToString()).obj()); |
} |
void CronetURLRequestAdapter::OnReadCompleted(net::URLRequest* request, |