Index: chrome/browser/renderer_host/resource_dispatcher_host.cc |
diff --git a/chrome/browser/renderer_host/resource_dispatcher_host.cc b/chrome/browser/renderer_host/resource_dispatcher_host.cc |
index 5bfe4453261528d6712b8c79b005aa67919377f2..018f001d2ca2627c541d223e5fe56b0105d0729b 100644 |
--- a/chrome/browser/renderer_host/resource_dispatcher_host.cc |
+++ b/chrome/browser/renderer_host/resource_dispatcher_host.cc |
@@ -1074,6 +1074,18 @@ void ResourceDispatcherHost::OnSSLCertificateError( |
SSLManager::OnSSLCertificateError(this, request, cert_error, cert); |
} |
+void ResourceDispatcherHost::OnTLSLoginRequired( |
+ net::URLRequest* request, |
+ net::AuthChallengeInfo* auth_info) { |
+ DCHECK(request); |
+ |
+ LOG(INFO) << "OnTLSLoginRequired"; |
+ ResourceDispatcherHostRequestInfo* info = InfoForRequest(request); |
+ DCHECK(!info->login_handler()) << |
+ "OnTLSLoginRequired called with login_handler pending"; |
+ info->set_login_handler(CreateLoginPrompt(auth_info, request)); |
+} |
+ |
void ResourceDispatcherHost::OnGetCookies( |
net::URLRequest* request, |
bool blocked_by_policy) { |
@@ -1157,7 +1169,15 @@ bool ResourceDispatcherHost::CompleteResponseStarted(net::URLRequest* request) { |
SSLManager::SerializeSecurityInfo( |
cert_id, request->ssl_info().cert_status, |
request->ssl_info().security_bits, |
- request->ssl_info().connection_status); |
+ request->ssl_info().connection_status, |
+ request->ssl_info().tls_username); |
+ } else if (!request->ssl_info().tls_username.empty()) { |
+ response->response_head.security_info = |
+ SSLManager::SerializeSecurityInfo( |
+ 0, 0, |
+ request->ssl_info().security_bits, |
+ request->ssl_info().connection_status, |
+ request->ssl_info().tls_username); |
} else { |
// We should not have any SSL state. |
DCHECK(!request->ssl_info().cert_status && |
@@ -1496,7 +1516,12 @@ void ResourceDispatcherHost::OnResponseCompleted(net::URLRequest* request) { |
info->child_id()); |
security_info = SSLManager::SerializeSecurityInfo( |
cert_id, ssl_info.cert_status, ssl_info.security_bits, |
- ssl_info.connection_status); |
+ ssl_info.connection_status, ssl_info.tls_username); |
+ } else if (!ssl_info.tls_username.empty()) { |
+ security_info = SSLManager::SerializeSecurityInfo( |
+ 0, 0, |
+ ssl_info.security_bits, ssl_info.connection_status, |
+ ssl_info.tls_username); |
} |
if (info->resource_handler()->OnResponseCompleted(info->request_id(), |