OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 <set> | 9 #include <set> |
10 #include <vector> | 10 #include <vector> |
(...skipping 1056 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1067 } | 1067 } |
1068 | 1068 |
1069 void ResourceDispatcherHost::OnSSLCertificateError( | 1069 void ResourceDispatcherHost::OnSSLCertificateError( |
1070 net::URLRequest* request, | 1070 net::URLRequest* request, |
1071 int cert_error, | 1071 int cert_error, |
1072 net::X509Certificate* cert) { | 1072 net::X509Certificate* cert) { |
1073 DCHECK(request); | 1073 DCHECK(request); |
1074 SSLManager::OnSSLCertificateError(this, request, cert_error, cert); | 1074 SSLManager::OnSSLCertificateError(this, request, cert_error, cert); |
1075 } | 1075 } |
1076 | 1076 |
| 1077 void ResourceDispatcherHost::OnTLSLoginRequired( |
| 1078 net::URLRequest* request, |
| 1079 net::AuthChallengeInfo* auth_info) { |
| 1080 DCHECK(request); |
| 1081 |
| 1082 LOG(INFO) << "OnTLSLoginRequired"; |
| 1083 ResourceDispatcherHostRequestInfo* info = InfoForRequest(request); |
| 1084 DCHECK(!info->login_handler()) << |
| 1085 "OnTLSLoginRequired called with login_handler pending"; |
| 1086 info->set_login_handler(CreateLoginPrompt(auth_info, request)); |
| 1087 } |
| 1088 |
1077 void ResourceDispatcherHost::OnGetCookies( | 1089 void ResourceDispatcherHost::OnGetCookies( |
1078 net::URLRequest* request, | 1090 net::URLRequest* request, |
1079 bool blocked_by_policy) { | 1091 bool blocked_by_policy) { |
1080 VLOG(1) << "OnGetCookies: " << request->url().spec(); | 1092 VLOG(1) << "OnGetCookies: " << request->url().spec(); |
1081 | 1093 |
1082 int render_process_id, render_view_id; | 1094 int render_process_id, render_view_id; |
1083 if (!RenderViewForRequest(request, &render_process_id, &render_view_id)) | 1095 if (!RenderViewForRequest(request, &render_process_id, &render_view_id)) |
1084 return; | 1096 return; |
1085 | 1097 |
1086 net::URLRequestContext* context = request->context(); | 1098 net::URLRequestContext* context = request->context(); |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1150 info->replace_extension_localization_templates(), response); | 1162 info->replace_extension_localization_templates(), response); |
1151 | 1163 |
1152 if (request->ssl_info().cert) { | 1164 if (request->ssl_info().cert) { |
1153 int cert_id = | 1165 int cert_id = |
1154 CertStore::GetInstance()->StoreCert(request->ssl_info().cert, | 1166 CertStore::GetInstance()->StoreCert(request->ssl_info().cert, |
1155 info->child_id()); | 1167 info->child_id()); |
1156 response->response_head.security_info = | 1168 response->response_head.security_info = |
1157 SSLManager::SerializeSecurityInfo( | 1169 SSLManager::SerializeSecurityInfo( |
1158 cert_id, request->ssl_info().cert_status, | 1170 cert_id, request->ssl_info().cert_status, |
1159 request->ssl_info().security_bits, | 1171 request->ssl_info().security_bits, |
1160 request->ssl_info().connection_status); | 1172 request->ssl_info().connection_status, |
| 1173 request->ssl_info().tls_username); |
| 1174 } else if (!request->ssl_info().tls_username.empty()) { |
| 1175 response->response_head.security_info = |
| 1176 SSLManager::SerializeSecurityInfo( |
| 1177 0, 0, |
| 1178 request->ssl_info().security_bits, |
| 1179 request->ssl_info().connection_status, |
| 1180 request->ssl_info().tls_username); |
1161 } else { | 1181 } else { |
1162 // We should not have any SSL state. | 1182 // We should not have any SSL state. |
1163 DCHECK(!request->ssl_info().cert_status && | 1183 DCHECK(!request->ssl_info().cert_status && |
1164 request->ssl_info().security_bits == -1 && | 1184 request->ssl_info().security_bits == -1 && |
1165 !request->ssl_info().connection_status); | 1185 !request->ssl_info().connection_status); |
1166 } | 1186 } |
1167 | 1187 |
1168 NotifyResponseStarted(request, info->child_id()); | 1188 NotifyResponseStarted(request, info->child_id()); |
1169 info->set_called_on_response_started(true); | 1189 info->set_called_on_response_started(true); |
1170 return info->resource_handler()->OnResponseStarted(info->request_id(), | 1190 return info->resource_handler()->OnResponseStarted(info->request_id(), |
(...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1489 GetAllNetErrorCodes()); | 1509 GetAllNetErrorCodes()); |
1490 } | 1510 } |
1491 | 1511 |
1492 std::string security_info; | 1512 std::string security_info; |
1493 const net::SSLInfo& ssl_info = request->ssl_info(); | 1513 const net::SSLInfo& ssl_info = request->ssl_info(); |
1494 if (ssl_info.cert != NULL) { | 1514 if (ssl_info.cert != NULL) { |
1495 int cert_id = CertStore::GetInstance()->StoreCert(ssl_info.cert, | 1515 int cert_id = CertStore::GetInstance()->StoreCert(ssl_info.cert, |
1496 info->child_id()); | 1516 info->child_id()); |
1497 security_info = SSLManager::SerializeSecurityInfo( | 1517 security_info = SSLManager::SerializeSecurityInfo( |
1498 cert_id, ssl_info.cert_status, ssl_info.security_bits, | 1518 cert_id, ssl_info.cert_status, ssl_info.security_bits, |
1499 ssl_info.connection_status); | 1519 ssl_info.connection_status, ssl_info.tls_username); |
| 1520 } else if (!ssl_info.tls_username.empty()) { |
| 1521 security_info = SSLManager::SerializeSecurityInfo( |
| 1522 0, 0, |
| 1523 ssl_info.security_bits, ssl_info.connection_status, |
| 1524 ssl_info.tls_username); |
1500 } | 1525 } |
1501 | 1526 |
1502 if (info->resource_handler()->OnResponseCompleted(info->request_id(), | 1527 if (info->resource_handler()->OnResponseCompleted(info->request_id(), |
1503 request->status(), | 1528 request->status(), |
1504 security_info)) { | 1529 security_info)) { |
1505 NotifyResponseCompleted(request, info->child_id()); | 1530 NotifyResponseCompleted(request, info->child_id()); |
1506 | 1531 |
1507 // The request is complete so we can remove it. | 1532 // The request is complete so we can remove it. |
1508 RemovePendingRequest(info->child_id(), info->request_id()); | 1533 RemovePendingRequest(info->child_id(), info->request_id()); |
1509 } | 1534 } |
(...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1938 return is_prefetch_enabled_; | 1963 return is_prefetch_enabled_; |
1939 } | 1964 } |
1940 | 1965 |
1941 // static | 1966 // static |
1942 void ResourceDispatcherHost::set_is_prefetch_enabled(bool value) { | 1967 void ResourceDispatcherHost::set_is_prefetch_enabled(bool value) { |
1943 is_prefetch_enabled_ = value; | 1968 is_prefetch_enabled_ = value; |
1944 } | 1969 } |
1945 | 1970 |
1946 // static | 1971 // static |
1947 bool ResourceDispatcherHost::is_prefetch_enabled_ = false; | 1972 bool ResourceDispatcherHost::is_prefetch_enabled_ = false; |
OLD | NEW |