Index: content/browser/loader/resource_loader.cc |
diff --git a/content/browser/loader/resource_loader.cc b/content/browser/loader/resource_loader.cc |
index e3f99ee146217ca1c62d365a5d37a562d755343b..0a1b466bc13791b15f8705df9a95b6244c3ed8bd 100644 |
--- a/content/browser/loader/resource_loader.cc |
+++ b/content/browser/loader/resource_loader.cc |
@@ -18,6 +18,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/sct_store.h" |
#include "content/public/common/content_client.h" |
#include "content/public/common/content_switches.h" |
#include "content/public/common/process_type.h" |
@@ -474,14 +475,24 @@ void ResourceLoader::CompleteResponseStarted() { |
if (request_->ssl_info().cert.get()) { |
int cert_id = CertStore::GetInstance()->StoreCert( |
request_->ssl_info().cert.get(), info->GetChildID()); |
- // XXX(rsleevi): Wire up sending the SCT to the child |
- int signed_certificate_timestamp_id = 0; |
+ content::SCTIdStatusList signed_certificate_timestamp_ids; |
+ SignedCertificateTimestampStore* sct_store( |
+ SignedCertificateTimestampStore::GetInstance()); |
+ |
+ for (net::SCTStatusList::const_iterator iter = |
+ request_->ssl_info().scts.begin(); |
+ iter != request_->ssl_info().scts.end(); ++iter) { |
+ const int sct_id(sct_store->StoreSignedCertificateTimestamp( |
+ iter->first, info->GetChildID())); |
+ signed_certificate_timestamp_ids.push_back( |
+ std::make_pair(sct_id, iter->second)); |
+ } |
response->head.security_info = SerializeSecurityInfo( |
cert_id, |
request_->ssl_info().cert_status, |
request_->ssl_info().security_bits, |
request_->ssl_info().connection_status, |
- signed_certificate_timestamp_id); |
+ signed_certificate_timestamp_ids); |
} else { |
// We should not have any SSL state. |
DCHECK(!request_->ssl_info().cert_status && |
@@ -585,11 +596,21 @@ void ResourceLoader::ResponseCompleted() { |
if (ssl_info.cert.get() != NULL) { |
int cert_id = CertStore::GetInstance()->StoreCert(ssl_info.cert.get(), |
info->GetChildID()); |
- // XXX(rsleevi): Wire up the SCTStore |
- int sct_id = 0; |
+ content::SCTIdStatusList signed_certificate_timestamp_ids; |
+ SignedCertificateTimestampStore* sct_store( |
+ SignedCertificateTimestampStore::GetInstance()); |
+ |
+ for (net::SCTStatusList::const_iterator iter = |
+ request_->ssl_info().scts.begin(); |
+ iter != request_->ssl_info().scts.end(); ++iter) { |
+ const int sct_id(sct_store->StoreSignedCertificateTimestamp( |
+ iter->first, info->GetChildID())); |
+ signed_certificate_timestamp_ids.push_back( |
+ std::make_pair(sct_id, iter->second)); |
+ } |
security_info = SerializeSecurityInfo( |
cert_id, ssl_info.cert_status, ssl_info.security_bits, |
- ssl_info.connection_status, sct_id); |
+ ssl_info.connection_status, signed_certificate_timestamp_ids); |
} |
if (handler_->OnResponseCompleted(info->GetRequestID(), request_->status(), |