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

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

Issue 2334623003: Store net::ProxyServer in HttpResponseInfo object (Closed)
Patch Set: PS Created 4 years, 3 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 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
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 DCHECK(request->status().is_success()); 200 DCHECK(request->status().is_success());
200 JNIEnv* env = base::android::AttachCurrentThread(); 201 JNIEnv* env = base::android::AttachCurrentThread();
202
203 const net::HostPortPair host_port_pair =
204 !request->response_info().proxy_server.is_valid() ||
205 request->response_info().proxy_server.is_direct()
206 ? net::HostPortPair()
207 : request->response_info().proxy_server.host_port_pair();
Not at Google. Contact bengr 2016/09/14 21:54:09 Is this test required? If proxy server is invalid
tbansal1 2016/09/14 22:04:16 No. In fact, there is a DCHECK in ProxyServer::hos
201 cronet::Java_CronetUrlRequest_onRedirectReceived( 208 cronet::Java_CronetUrlRequest_onRedirectReceived(
202 env, owner_.obj(), 209 env, owner_.obj(),
203 ConvertUTF8ToJavaString(env, redirect_info.new_url.spec()).obj(), 210 ConvertUTF8ToJavaString(env, redirect_info.new_url.spec()).obj(),
204 redirect_info.status_code, 211 redirect_info.status_code,
205 ConvertUTF8ToJavaString(env, request->response_headers()->GetStatusText()) 212 ConvertUTF8ToJavaString(env, request->response_headers()->GetStatusText())
206 .obj(), 213 .obj(),
207 GetResponseHeaders(env).obj(), 214 GetResponseHeaders(env).obj(),
208 request->response_info().was_cached ? JNI_TRUE : JNI_FALSE, 215 request->response_info().was_cached ? JNI_TRUE : JNI_FALSE,
209 ConvertUTF8ToJavaString(env, 216 ConvertUTF8ToJavaString(env,
210 request->response_info().npn_negotiated_protocol) 217 request->response_info().npn_negotiated_protocol)
211 .obj(), 218 .obj(),
212 ConvertUTF8ToJavaString(env, 219 ConvertUTF8ToJavaString(env, host_port_pair.ToString()).obj(),
213 request->response_info().proxy_server.ToString())
214 .obj(),
215 request->GetTotalReceivedBytes()); 220 request->GetTotalReceivedBytes());
216 *defer_redirect = true; 221 *defer_redirect = true;
217 } 222 }
218 223
219 void CronetURLRequestAdapter::OnCertificateRequested( 224 void CronetURLRequestAdapter::OnCertificateRequested(
220 net::URLRequest* request, 225 net::URLRequest* request,
221 net::SSLCertRequestInfo* cert_request_info) { 226 net::SSLCertRequestInfo* cert_request_info) {
222 DCHECK(context_->IsOnNetworkThread()); 227 DCHECK(context_->IsOnNetworkThread());
223 // Cronet does not support client certificates. 228 // Cronet does not support client certificates.
224 request->ContinueWithCertificate(nullptr, nullptr); 229 request->ContinueWithCertificate(nullptr, nullptr);
(...skipping 12 matching lines...) Expand all
237 net::QUIC_NO_ERROR, 242 net::QUIC_NO_ERROR,
238 ConvertUTF8ToJavaString(env, net::ErrorToString(net_error)).obj(), 243 ConvertUTF8ToJavaString(env, net::ErrorToString(net_error)).obj(),
239 request->GetTotalReceivedBytes()); 244 request->GetTotalReceivedBytes());
240 } 245 }
241 246
242 void CronetURLRequestAdapter::OnResponseStarted(net::URLRequest* request) { 247 void CronetURLRequestAdapter::OnResponseStarted(net::URLRequest* request) {
243 DCHECK(context_->IsOnNetworkThread()); 248 DCHECK(context_->IsOnNetworkThread());
244 if (MaybeReportError(request)) 249 if (MaybeReportError(request))
245 return; 250 return;
246 JNIEnv* env = base::android::AttachCurrentThread(); 251 JNIEnv* env = base::android::AttachCurrentThread();
252 const net::HostPortPair host_port_pair =
253 !request->response_info().proxy_server.is_valid() ||
254 request->response_info().proxy_server.is_direct()
255 ? net::HostPortPair()
256 : request->response_info().proxy_server.host_port_pair();
247 cronet::Java_CronetUrlRequest_onResponseStarted( 257 cronet::Java_CronetUrlRequest_onResponseStarted(
248 env, owner_.obj(), request->GetResponseCode(), 258 env, owner_.obj(), request->GetResponseCode(),
249 ConvertUTF8ToJavaString(env, request->response_headers()->GetStatusText()) 259 ConvertUTF8ToJavaString(env, request->response_headers()->GetStatusText())
250 .obj(), 260 .obj(),
251 GetResponseHeaders(env).obj(), 261 GetResponseHeaders(env).obj(),
252 request->response_info().was_cached ? JNI_TRUE : JNI_FALSE, 262 request->response_info().was_cached ? JNI_TRUE : JNI_FALSE,
253 ConvertUTF8ToJavaString(env, 263 ConvertUTF8ToJavaString(env,
254 request->response_info().npn_negotiated_protocol) 264 request->response_info().npn_negotiated_protocol)
255 .obj(), 265 .obj(),
256 ConvertUTF8ToJavaString(env, 266 ConvertUTF8ToJavaString(env, host_port_pair.ToString()).obj());
257 request->response_info().proxy_server.ToString())
258 .obj());
259 } 267 }
260 268
261 void CronetURLRequestAdapter::OnReadCompleted(net::URLRequest* request, 269 void CronetURLRequestAdapter::OnReadCompleted(net::URLRequest* request,
262 int bytes_read) { 270 int bytes_read) {
263 DCHECK(context_->IsOnNetworkThread()); 271 DCHECK(context_->IsOnNetworkThread());
264 if (MaybeReportError(request)) 272 if (MaybeReportError(request))
265 return; 273 return;
266 if (bytes_read != 0) { 274 if (bytes_read != 0) {
267 JNIEnv* env = base::android::AttachCurrentThread(); 275 JNIEnv* env = base::android::AttachCurrentThread();
268 cronet::Java_CronetUrlRequest_onReadCompleted( 276 cronet::Java_CronetUrlRequest_onReadCompleted(
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 ConvertUTF8ToJavaString(env, net::ErrorToString(net_error)).obj(), 387 ConvertUTF8ToJavaString(env, net::ErrorToString(net_error)).obj(),
380 request->GetTotalReceivedBytes()); 388 request->GetTotalReceivedBytes());
381 return true; 389 return true;
382 } 390 }
383 391
384 net::URLRequest* CronetURLRequestAdapter::GetURLRequestForTesting() { 392 net::URLRequest* CronetURLRequestAdapter::GetURLRequestForTesting() {
385 return url_request_.get(); 393 return url_request_.get();
386 } 394 }
387 395
388 } // namespace cronet 396 } // namespace cronet
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698