Chromium Code Reviews| Index: content/browser/loader/resource_loader.cc |
| diff --git a/content/browser/loader/resource_loader.cc b/content/browser/loader/resource_loader.cc |
| index 4993c8217e4bb297b6813fbf99574ebc3e823023..fb2459a35d23016e26c26a4eefbb3903896661e0 100644 |
| --- a/content/browser/loader/resource_loader.cc |
| +++ b/content/browser/loader/resource_loader.cc |
| @@ -19,6 +19,7 @@ |
| #include "content/public/browser/cert_store.h" |
| #include "content/public/browser/resource_context.h" |
| #include "content/public/browser/resource_dispatcher_host_login_delegate.h" |
| +#include "content/public/browser/signed_certificate_timestamp_store.h" |
| #include "content/public/common/content_client.h" |
| #include "content/public/common/content_switches.h" |
| #include "content/public/common/process_type.h" |
| @@ -473,6 +474,21 @@ void ResourceLoader::CancelRequestInternal(int error, bool from_renderer) { |
| } |
| } |
| +void ResourceLoader::StoreSignedCertificateTimestamps( |
| + const net::SignedCertificateTimestampAndStatusList& sct_list, |
| + int process_id, content::SignedCertificateTimestampIDStatusList* |
| + signed_certificate_timestamp_ids) { |
| + SignedCertificateTimestampStore* sct_store( |
| + SignedCertificateTimestampStore::GetInstance()); |
| + |
| + for (net::SignedCertificateTimestampAndStatusList::const_iterator iter = |
| + sct_list.begin(); iter != sct_list.end(); ++iter) { |
| + const int sct_id(sct_store->Store(iter->sct_, process_id)); |
| + signed_certificate_timestamp_ids->push_back( |
| + content::SignedCertificateTimestampIDAndStatus(sct_id, iter->status_)); |
| + } |
| +} |
| + |
| void ResourceLoader::CompleteResponseStarted() { |
| ResourceRequestInfoImpl* info = GetRequestInfo(); |
| @@ -482,11 +498,19 @@ void ResourceLoader::CompleteResponseStarted() { |
| if (request_->ssl_info().cert.get()) { |
| int cert_id = CertStore::GetInstance()->StoreCert( |
| request_->ssl_info().cert.get(), info->GetChildID()); |
| + |
| + content::SignedCertificateTimestampIDStatusList |
| + signed_certificate_timestamp_ids; |
| + StoreSignedCertificateTimestamps( |
| + request_->ssl_info().signed_certificate_timestamps, info->GetChildID(), |
|
Eran M. (Google)
2013/11/26 21:33:22
Nit: Put each parameter in a line of its own, see:
alcutter
2013/11/26 23:00:05
I think this is what clang-format came up with, I'
|
| + &signed_certificate_timestamp_ids); |
| + |
| response->head.security_info = SerializeSecurityInfo( |
| cert_id, |
| request_->ssl_info().cert_status, |
| request_->ssl_info().security_bits, |
| - request_->ssl_info().connection_status); |
| + request_->ssl_info().connection_status, |
| + signed_certificate_timestamp_ids); |
| } else { |
| // We should not have any SSL state. |
| DCHECK(!request_->ssl_info().cert_status && |
| @@ -590,9 +614,14 @@ void ResourceLoader::ResponseCompleted() { |
| if (ssl_info.cert.get() != NULL) { |
| int cert_id = CertStore::GetInstance()->StoreCert(ssl_info.cert.get(), |
| info->GetChildID()); |
| + content::SignedCertificateTimestampIDStatusList |
| + signed_certificate_timestamp_ids; |
| + StoreSignedCertificateTimestamps(ssl_info.signed_certificate_timestamps, |
| + info->GetChildID(), &signed_certificate_timestamp_ids); |
| + |
| security_info = SerializeSecurityInfo( |
| cert_id, ssl_info.cert_status, ssl_info.security_bits, |
| - ssl_info.connection_status); |
| + ssl_info.connection_status, signed_certificate_timestamp_ids); |
| } |
| bool defer = false; |