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

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

Issue 1239543003: [Cronet] Surface SSL cert error through CronetURLRequestAdapter::OnSSLCertificateError (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added a test Created 5 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 "cronet_url_request_adapter.h" 5 #include "cronet_url_request_adapter.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/location.h" 10 #include "base/location.h"
11 #include "base/logging.h" 11 #include "base/logging.h"
12 #include "components/cronet/android/cronet_url_request_context_adapter.h" 12 #include "components/cronet/android/cronet_url_request_context_adapter.h"
13 #include "jni/CronetUrlRequest_jni.h" 13 #include "jni/CronetUrlRequest_jni.h"
14 #include "net/base/io_buffer.h" 14 #include "net/base/io_buffer.h"
15 #include "net/base/load_flags.h" 15 #include "net/base/load_flags.h"
16 #include "net/base/net_errors.h" 16 #include "net/base/net_errors.h"
17 #include "net/base/request_priority.h" 17 #include "net/base/request_priority.h"
18 #include "net/cert/cert_status_flags.h"
18 #include "net/http/http_response_headers.h" 19 #include "net/http/http_response_headers.h"
19 #include "net/http/http_status_code.h" 20 #include "net/http/http_status_code.h"
20 #include "net/http/http_util.h" 21 #include "net/http/http_util.h"
22 #include "net/ssl/ssl_info.h"
21 #include "net/url_request/redirect_info.h" 23 #include "net/url_request/redirect_info.h"
22 #include "net/url_request/url_request_context.h" 24 #include "net/url_request/url_request_context.h"
23 25
24 using base::android::ConvertUTF8ToJavaString; 26 using base::android::ConvertUTF8ToJavaString;
25 27
26 namespace cronet { 28 namespace cronet {
27 29
28 // Explicitly register static JNI functions. 30 // Explicitly register static JNI functions.
29 bool CronetUrlRequestAdapterRegisterJni(JNIEnv* env) { 31 bool CronetUrlRequestAdapterRegisterJni(JNIEnv* env) {
30 return RegisterNativesImpl(env); 32 return RegisterNativesImpl(env);
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 275
274 void CronetURLRequestAdapter::OnResponseStarted(net::URLRequest* request) { 276 void CronetURLRequestAdapter::OnResponseStarted(net::URLRequest* request) {
275 DCHECK(context_->IsOnNetworkThread()); 277 DCHECK(context_->IsOnNetworkThread());
276 if (MaybeReportError(request)) 278 if (MaybeReportError(request))
277 return; 279 return;
278 JNIEnv* env = base::android::AttachCurrentThread(); 280 JNIEnv* env = base::android::AttachCurrentThread();
279 cronet::Java_CronetUrlRequest_onResponseStarted(env, owner_.obj(), 281 cronet::Java_CronetUrlRequest_onResponseStarted(env, owner_.obj(),
280 request->GetResponseCode()); 282 request->GetResponseCode());
281 } 283 }
282 284
285 void CronetURLRequestAdapter::OnSSLCertificateError(
286 net::URLRequest* request,
287 const net::SSLInfo& ssl_info,
288 bool fatal) {
289 request->Cancel();
290 int ssl_cert_net_error = net::MapCertStatusToNetError(ssl_info.cert_status);
mmenke 2015/07/17 19:29:59 optional: May want to just call this net_error (M
xunjieli 2015/07/17 20:15:20 Done.
291 JNIEnv* env = base::android::AttachCurrentThread();
292 cronet::Java_CronetUrlRequest_onError(
293 env, owner_.obj(), ssl_cert_net_error,
294 ConvertUTF8ToJavaString(env, net::ErrorToString(ssl_cert_net_error))
295 .obj());
296 }
297
283 void CronetURLRequestAdapter::OnReadCompleted(net::URLRequest* request, 298 void CronetURLRequestAdapter::OnReadCompleted(net::URLRequest* request,
284 int bytes_read) { 299 int bytes_read) {
285 DCHECK(context_->IsOnNetworkThread()); 300 DCHECK(context_->IsOnNetworkThread());
286 if (MaybeReportError(request)) 301 if (MaybeReportError(request))
287 return; 302 return;
288 if (bytes_read != 0) { 303 if (bytes_read != 0) {
289 JNIEnv* env = base::android::AttachCurrentThread(); 304 JNIEnv* env = base::android::AttachCurrentThread();
290 cronet::Java_CronetUrlRequest_onReadCompleted( 305 cronet::Java_CronetUrlRequest_onReadCompleted(
291 env, owner_.obj(), read_buffer_->byte_buffer(), bytes_read, 306 env, owner_.obj(), read_buffer_->byte_buffer(), bytes_read,
292 read_buffer_->initial_position()); 307 read_buffer_->initial_position());
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 VLOG(1) << "Error " << net::ErrorToString(net_error) 378 VLOG(1) << "Error " << net::ErrorToString(net_error)
364 << " on chromium request: " << initial_url_.possibly_invalid_spec(); 379 << " on chromium request: " << initial_url_.possibly_invalid_spec();
365 JNIEnv* env = base::android::AttachCurrentThread(); 380 JNIEnv* env = base::android::AttachCurrentThread();
366 cronet::Java_CronetUrlRequest_onError( 381 cronet::Java_CronetUrlRequest_onError(
367 env, owner_.obj(), net_error, 382 env, owner_.obj(), net_error,
368 ConvertUTF8ToJavaString(env, net::ErrorToString(net_error)).obj()); 383 ConvertUTF8ToJavaString(env, net::ErrorToString(net_error)).obj());
369 return true; 384 return true;
370 } 385 }
371 386
372 } // namespace cronet 387 } // namespace cronet
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698