Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(484)

Side by Side Diff: components/cronet/android/cronet_url_request_adapter.cc

Issue 2334623003: Store net::ProxyServer in HttpResponseInfo object (Closed)
Patch Set: Rebased Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/cronet/android/cronet_url_request_adapter.h" 5 #include "components/cronet/android/cronet_url_request_adapter.h"
6 6
7 #include <limits> 7 #include <limits>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/bind.h" 11 #include "base/bind.h"
12 #include "base/location.h" 12 #include "base/location.h"
13 #include "base/logging.h" 13 #include "base/logging.h"
14 #include "components/cronet/android/cronet_url_request_context_adapter.h" 14 #include "components/cronet/android/cronet_url_request_context_adapter.h"
15 #include "components/cronet/android/io_buffer_with_byte_buffer.h" 15 #include "components/cronet/android/io_buffer_with_byte_buffer.h"
16 #include "components/cronet/android/url_request_error.h" 16 #include "components/cronet/android/url_request_error.h"
17 #include "jni/CronetUrlRequest_jni.h" 17 #include "jni/CronetUrlRequest_jni.h"
18 #include "net/base/load_flags.h" 18 #include "net/base/load_flags.h"
19 #include "net/base/load_states.h" 19 #include "net/base/load_states.h"
20 #include "net/base/net_errors.h" 20 #include "net/base/net_errors.h"
21 #include "net/base/request_priority.h" 21 #include "net/base/request_priority.h"
22 #include "net/cert/cert_status_flags.h" 22 #include "net/cert/cert_status_flags.h"
23 #include "net/http/http_response_headers.h" 23 #include "net/http/http_response_headers.h"
24 #include "net/http/http_status_code.h" 24 #include "net/http/http_status_code.h"
25 #include "net/http/http_util.h" 25 #include "net/http/http_util.h"
26 #include "net/proxy/proxy_server.h"
26 #include "net/quic/core/quic_protocol.h" 27 #include "net/quic/core/quic_protocol.h"
27 #include "net/ssl/ssl_info.h" 28 #include "net/ssl/ssl_info.h"
28 #include "net/url_request/redirect_info.h" 29 #include "net/url_request/redirect_info.h"
29 #include "net/url_request/url_request_context.h" 30 #include "net/url_request/url_request_context.h"
30 31
31 using base::android::ConvertUTF8ToJavaString; 32 using base::android::ConvertUTF8ToJavaString;
32 using base::android::JavaParamRef; 33 using base::android::JavaParamRef;
33 34
34 namespace cronet { 35 namespace cronet {
35 36
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 FROM_HERE, base::Bind(&CronetURLRequestAdapter::DestroyOnNetworkThread, 191 FROM_HERE, base::Bind(&CronetURLRequestAdapter::DestroyOnNetworkThread,
191 base::Unretained(this), jsend_on_canceled)); 192 base::Unretained(this), jsend_on_canceled));
192 } 193 }
193 194
194 void CronetURLRequestAdapter::OnReceivedRedirect( 195 void CronetURLRequestAdapter::OnReceivedRedirect(
195 net::URLRequest* request, 196 net::URLRequest* request,
196 const net::RedirectInfo& redirect_info, 197 const net::RedirectInfo& redirect_info,
197 bool* defer_redirect) { 198 bool* defer_redirect) {
198 DCHECK(context_->IsOnNetworkThread()); 199 DCHECK(context_->IsOnNetworkThread());
199 JNIEnv* env = base::android::AttachCurrentThread(); 200 JNIEnv* env = base::android::AttachCurrentThread();
201
202 const net::HostPortPair host_port_pair =
203 !request->response_info().proxy_server.is_valid() ||
204 request->response_info().proxy_server.is_direct()
205 ? net::HostPortPair()
206 : request->response_info().proxy_server.host_port_pair();
200 cronet::Java_CronetUrlRequest_onRedirectReceived( 207 cronet::Java_CronetUrlRequest_onRedirectReceived(
201 env, owner_.obj(), 208 env, owner_.obj(),
202 ConvertUTF8ToJavaString(env, redirect_info.new_url.spec()).obj(), 209 ConvertUTF8ToJavaString(env, redirect_info.new_url.spec()).obj(),
203 redirect_info.status_code, 210 redirect_info.status_code,
204 ConvertUTF8ToJavaString(env, request->response_headers()->GetStatusText()) 211 ConvertUTF8ToJavaString(env, request->response_headers()->GetStatusText())
205 .obj(), 212 .obj(),
206 GetResponseHeaders(env).obj(), 213 GetResponseHeaders(env).obj(),
207 request->response_info().was_cached ? JNI_TRUE : JNI_FALSE, 214 request->response_info().was_cached ? JNI_TRUE : JNI_FALSE,
208 ConvertUTF8ToJavaString(env, 215 ConvertUTF8ToJavaString(env,
209 request->response_info().alpn_negotiated_protocol) 216 request->response_info().alpn_negotiated_protocol)
210 .obj(), 217 .obj(),
211 ConvertUTF8ToJavaString(env, 218 ConvertUTF8ToJavaString(env, host_port_pair.ToString()).obj(),
212 request->response_info().proxy_server.ToString())
213 .obj(),
214 request->GetTotalReceivedBytes()); 219 request->GetTotalReceivedBytes());
215 *defer_redirect = true; 220 *defer_redirect = true;
216 } 221 }
217 222
218 void CronetURLRequestAdapter::OnCertificateRequested( 223 void CronetURLRequestAdapter::OnCertificateRequested(
219 net::URLRequest* request, 224 net::URLRequest* request,
220 net::SSLCertRequestInfo* cert_request_info) { 225 net::SSLCertRequestInfo* cert_request_info) {
221 DCHECK(context_->IsOnNetworkThread()); 226 DCHECK(context_->IsOnNetworkThread());
222 // Cronet does not support client certificates. 227 // Cronet does not support client certificates.
223 request->ContinueWithCertificate(nullptr, nullptr); 228 request->ContinueWithCertificate(nullptr, nullptr);
(...skipping 17 matching lines...) Expand all
241 void CronetURLRequestAdapter::OnResponseStarted(net::URLRequest* request, 246 void CronetURLRequestAdapter::OnResponseStarted(net::URLRequest* request,
242 int net_error) { 247 int net_error) {
243 DCHECK_NE(net::ERR_IO_PENDING, net_error); 248 DCHECK_NE(net::ERR_IO_PENDING, net_error);
244 DCHECK(context_->IsOnNetworkThread()); 249 DCHECK(context_->IsOnNetworkThread());
245 250
246 if (net_error != net::OK) { 251 if (net_error != net::OK) {
247 ReportError(request, net_error); 252 ReportError(request, net_error);
248 return; 253 return;
249 } 254 }
250 JNIEnv* env = base::android::AttachCurrentThread(); 255 JNIEnv* env = base::android::AttachCurrentThread();
256 const net::HostPortPair host_port_pair =
257 !request->response_info().proxy_server.is_valid() ||
258 request->response_info().proxy_server.is_direct()
259 ? net::HostPortPair()
260 : request->response_info().proxy_server.host_port_pair();
251 cronet::Java_CronetUrlRequest_onResponseStarted( 261 cronet::Java_CronetUrlRequest_onResponseStarted(
252 env, owner_.obj(), request->GetResponseCode(), 262 env, owner_.obj(), request->GetResponseCode(),
253 ConvertUTF8ToJavaString(env, request->response_headers()->GetStatusText()) 263 ConvertUTF8ToJavaString(env, request->response_headers()->GetStatusText())
254 .obj(), 264 .obj(),
255 GetResponseHeaders(env).obj(), 265 GetResponseHeaders(env).obj(),
256 request->response_info().was_cached ? JNI_TRUE : JNI_FALSE, 266 request->response_info().was_cached ? JNI_TRUE : JNI_FALSE,
257 ConvertUTF8ToJavaString(env, 267 ConvertUTF8ToJavaString(env,
258 request->response_info().alpn_negotiated_protocol) 268 request->response_info().alpn_negotiated_protocol)
259 .obj(), 269 .obj(),
260 ConvertUTF8ToJavaString(env, 270 ConvertUTF8ToJavaString(env, host_port_pair.ToString()).obj());
261 request->response_info().proxy_server.ToString())
262 .obj());
263 } 271 }
264 272
265 void CronetURLRequestAdapter::OnReadCompleted(net::URLRequest* request, 273 void CronetURLRequestAdapter::OnReadCompleted(net::URLRequest* request,
266 int bytes_read) { 274 int bytes_read) {
267 DCHECK(context_->IsOnNetworkThread()); 275 DCHECK(context_->IsOnNetworkThread());
268 276
269 if (bytes_read < 0) { 277 if (bytes_read < 0) {
270 ReportError(request, bytes_read); 278 ReportError(request, bytes_read);
271 return; 279 return;
272 } 280 }
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 net_error_details.quic_connection_error, 393 net_error_details.quic_connection_error,
386 ConvertUTF8ToJavaString(env, net::ErrorToString(net_error)).obj(), 394 ConvertUTF8ToJavaString(env, net::ErrorToString(net_error)).obj(),
387 request->GetTotalReceivedBytes()); 395 request->GetTotalReceivedBytes());
388 } 396 }
389 397
390 net::URLRequest* CronetURLRequestAdapter::GetURLRequestForTesting() { 398 net::URLRequest* CronetURLRequestAdapter::GetURLRequestForTesting() {
391 return url_request_.get(); 399 return url_request_.get();
392 } 400 }
393 401
394 } // namespace cronet 402 } // namespace cronet
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698