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

Side by Side Diff: chrome/browser/renderer_host/resource_dispatcher_host.cc

Issue 220009: Provides a certificate for SSL client authentication on NSS sockets.... (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: '' Created 11 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/common/chrome_switches.h » ('j') | net/socket/ssl_client_socket_nss.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 // See http://dev.chromium.org/developers/design-documents/multi-process-resourc e-loading 5 // See http://dev.chromium.org/developers/design-documents/multi-process-resourc e-loading
6 6
7 #include "chrome/browser/renderer_host/resource_dispatcher_host.h" 7 #include "chrome/browser/renderer_host/resource_dispatcher_host.h"
8 8
9 #include <vector> 9 #include <vector>
10 10
(...skipping 1034 matching lines...) Expand 10 before | Expand all | Expand 10 after
1045 DCHECK(!info->login_handler()) << 1045 DCHECK(!info->login_handler()) <<
1046 "OnAuthRequired called with login_handler pending"; 1046 "OnAuthRequired called with login_handler pending";
1047 info->set_login_handler(CreateLoginPrompt(auth_info, request, ui_loop_)); 1047 info->set_login_handler(CreateLoginPrompt(auth_info, request, ui_loop_));
1048 } 1048 }
1049 1049
1050 void ResourceDispatcherHost::OnCertificateRequested( 1050 void ResourceDispatcherHost::OnCertificateRequested(
1051 URLRequest* request, 1051 URLRequest* request,
1052 net::SSLCertRequestInfo* cert_request_info) { 1052 net::SSLCertRequestInfo* cert_request_info) {
1053 DCHECK(request); 1053 DCHECK(request);
1054 1054
1055 #if defined(OS_LINUX)
1056 bool select_first_cert = CommandLine::ForCurrentProcess()->HasSwitch(
1057 switches::kAutoSSLClientAuth);
1058 net::X509Certificate* cert =
1059 select_first_cert && !cert_request_info->client_certs.empty() ?
1060 cert_request_info->client_certs[0] : NULL;
1061 request->ContinueWithCertificate(cert);
1062 #else
1055 if (cert_request_info->client_certs.empty()) { 1063 if (cert_request_info->client_certs.empty()) {
1056 // No need to query the user if there are no certs to choose from. 1064 // No need to query the user if there are no certs to choose from.
1057 request->ContinueWithCertificate(NULL); 1065 request->ContinueWithCertificate(NULL);
1058 return; 1066 return;
1059 } 1067 }
1060 1068
1061 ResourceDispatcherHostRequestInfo* info = InfoForRequest(request); 1069 ResourceDispatcherHostRequestInfo* info = InfoForRequest(request);
1062 DCHECK(!info->ssl_client_auth_handler()) << 1070 DCHECK(!info->ssl_client_auth_handler()) <<
1063 "OnCertificateRequested called with ssl_client_auth_handler pending"; 1071 "OnCertificateRequested called with ssl_client_auth_handler pending";
1064 info->set_ssl_client_auth_handler( 1072 info->set_ssl_client_auth_handler(
1065 new SSLClientAuthHandler(request, cert_request_info, io_loop_, ui_loop_)); 1073 new SSLClientAuthHandler(request, cert_request_info, io_loop_, ui_loop_));
1066 info->ssl_client_auth_handler()->SelectCertificate(); 1074 info->ssl_client_auth_handler()->SelectCertificate();
1075 #endif
1067 } 1076 }
1068 1077
1069 void ResourceDispatcherHost::OnSSLCertificateError( 1078 void ResourceDispatcherHost::OnSSLCertificateError(
1070 URLRequest* request, 1079 URLRequest* request,
1071 int cert_error, 1080 int cert_error,
1072 net::X509Certificate* cert) { 1081 net::X509Certificate* cert) {
1073 DCHECK(request); 1082 DCHECK(request);
1074 SSLManager::OnSSLCertificateError(this, request, cert_error, cert, ui_loop_); 1083 SSLManager::OnSSLCertificateError(this, request, cert_error, cert, ui_loop_);
1075 } 1084 }
1076 1085
(...skipping 698 matching lines...) Expand 10 before | Expand all | Expand 10 after
1775 case ViewHostMsg_UploadProgress_ACK::ID: 1784 case ViewHostMsg_UploadProgress_ACK::ID:
1776 case ViewHostMsg_SyncLoad::ID: 1785 case ViewHostMsg_SyncLoad::ID:
1777 return true; 1786 return true;
1778 1787
1779 default: 1788 default:
1780 break; 1789 break;
1781 } 1790 }
1782 1791
1783 return false; 1792 return false;
1784 } 1793 }
OLDNEW
« no previous file with comments | « no previous file | chrome/common/chrome_switches.h » ('j') | net/socket/ssl_client_socket_nss.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698