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..5647b7e8ced6d84f40005f54ed31de71c33b292b 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* |
jam
2013/11/27 01:07:50
ditto
alcutter
2013/11/27 12:17:56
Done.
|
+ 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,20 @@ void ResourceLoader::CompleteResponseStarted() { |
if (request_->ssl_info().cert.get()) { |
int cert_id = CertStore::GetInstance()->StoreCert( |
request_->ssl_info().cert.get(), info->GetChildID()); |
+ |
+ content::SignedCertificateTimestampIDStatusList |
jam
2013/11/27 01:07:50
no content::
alcutter
2013/11/27 12:17:56
D'oh, sorry.
Removed.
|
+ signed_certificate_timestamp_ids; |
+ StoreSignedCertificateTimestamps( |
+ request_->ssl_info().signed_certificate_timestamps, |
+ info->GetChildID(), |
+ &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 +615,15 @@ void ResourceLoader::ResponseCompleted() { |
if (ssl_info.cert.get() != NULL) { |
int cert_id = CertStore::GetInstance()->StoreCert(ssl_info.cert.get(), |
info->GetChildID()); |
+ content::SignedCertificateTimestampIDStatusList |
jam
2013/11/27 01:07:50
ditto
alcutter
2013/11/27 12:17:56
Done.
|
+ 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; |