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

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

Issue 2069303002: Add new Cronet exception class for QUIC errors (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Lots of fixing formatting Created 4 years, 5 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"
pauljensen 2016/07/01 18:40:41 #include "net/quic/quic_protocol.h"
mgersh 2016/07/01 19:27:54 Done.
26 #include "net/ssl/ssl_info.h" 26 #include "net/ssl/ssl_info.h"
27 #include "net/url_request/redirect_info.h" 27 #include "net/url_request/redirect_info.h"
28 #include "net/url_request/url_request_context.h" 28 #include "net/url_request/url_request_context.h"
29 29
30 using base::android::ConvertUTF8ToJavaString; 30 using base::android::ConvertUTF8ToJavaString;
31 31
32 namespace cronet { 32 namespace cronet {
33 33
34 // Explicitly register static JNI functions. 34 // Explicitly register static JNI functions.
35 bool CronetUrlRequestAdapterRegisterJni(JNIEnv* env) { 35 bool CronetUrlRequestAdapterRegisterJni(JNIEnv* env) {
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 void CronetURLRequestAdapter::OnSSLCertificateError( 228 void CronetURLRequestAdapter::OnSSLCertificateError(
229 net::URLRequest* request, 229 net::URLRequest* request,
230 const net::SSLInfo& ssl_info, 230 const net::SSLInfo& ssl_info,
231 bool fatal) { 231 bool fatal) {
232 DCHECK(context_->IsOnNetworkThread()); 232 DCHECK(context_->IsOnNetworkThread());
233 request->Cancel(); 233 request->Cancel();
234 int net_error = net::MapCertStatusToNetError(ssl_info.cert_status); 234 int net_error = net::MapCertStatusToNetError(ssl_info.cert_status);
235 JNIEnv* env = base::android::AttachCurrentThread(); 235 JNIEnv* env = base::android::AttachCurrentThread();
236 cronet::Java_CronetUrlRequest_onError( 236 cronet::Java_CronetUrlRequest_onError(
237 env, owner_.obj(), NetErrorToUrlRequestError(net_error), net_error, 237 env, owner_.obj(), NetErrorToUrlRequestError(net_error), net_error,
238 net::QUIC_NO_ERROR,
238 ConvertUTF8ToJavaString(env, net::ErrorToString(net_error)).obj(), 239 ConvertUTF8ToJavaString(env, net::ErrorToString(net_error)).obj(),
239 request->GetTotalReceivedBytes()); 240 request->GetTotalReceivedBytes());
240 } 241 }
241 242
242 void CronetURLRequestAdapter::OnResponseStarted(net::URLRequest* request) { 243 void CronetURLRequestAdapter::OnResponseStarted(net::URLRequest* request) {
243 DCHECK(context_->IsOnNetworkThread()); 244 DCHECK(context_->IsOnNetworkThread());
244 if (MaybeReportError(request)) 245 if (MaybeReportError(request))
245 return; 246 return;
246 JNIEnv* env = base::android::AttachCurrentThread(); 247 JNIEnv* env = base::android::AttachCurrentThread();
247 cronet::Java_CronetUrlRequest_onResponseStarted( 248 cronet::Java_CronetUrlRequest_onResponseStarted(
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
361 } 362 }
362 delete this; 363 delete this;
363 } 364 }
364 365
365 bool CronetURLRequestAdapter::MaybeReportError(net::URLRequest* request) const { 366 bool CronetURLRequestAdapter::MaybeReportError(net::URLRequest* request) const {
366 DCHECK_NE(net::URLRequestStatus::IO_PENDING, url_request_->status().status()); 367 DCHECK_NE(net::URLRequestStatus::IO_PENDING, url_request_->status().status());
367 DCHECK_EQ(request, url_request_.get()); 368 DCHECK_EQ(request, url_request_.get());
368 if (url_request_->status().is_success()) 369 if (url_request_->status().is_success())
369 return false; 370 return false;
370 int net_error = url_request_->status().error(); 371 int net_error = url_request_->status().error();
372 net::NetErrorDetails net_error_details;
373 url_request_->PopulateNetErrorDetails(&net_error_details);
371 VLOG(1) << "Error " << net::ErrorToString(net_error) 374 VLOG(1) << "Error " << net::ErrorToString(net_error)
372 << " on chromium request: " << initial_url_.possibly_invalid_spec(); 375 << " on chromium request: " << initial_url_.possibly_invalid_spec();
373 JNIEnv* env = base::android::AttachCurrentThread(); 376 JNIEnv* env = base::android::AttachCurrentThread();
374 cronet::Java_CronetUrlRequest_onError( 377 cronet::Java_CronetUrlRequest_onError(
375 env, owner_.obj(), NetErrorToUrlRequestError(net_error), net_error, 378 env, owner_.obj(), NetErrorToUrlRequestError(net_error), net_error,
379 net_error_details.quic_connection_error,
376 ConvertUTF8ToJavaString(env, net::ErrorToString(net_error)).obj(), 380 ConvertUTF8ToJavaString(env, net::ErrorToString(net_error)).obj(),
377 request->GetTotalReceivedBytes()); 381 request->GetTotalReceivedBytes());
378 return true; 382 return true;
379 } 383 }
380 384
381 net::URLRequest* CronetURLRequestAdapter::GetURLRequestForTesting() { 385 net::URLRequest* CronetURLRequestAdapter::GetURLRequestForTesting() {
382 return url_request_.get(); 386 return url_request_.get();
383 } 387 }
384 388
385 } // namespace cronet 389 } // namespace cronet
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698