diff options
author | estark <estark@chromium.org> | 2015-07-28 15:42:46 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-07-28 22:43:18 +0000 |
commit | 0c388aaf008fe3549e436fdfa3b2d2ee95b9a011 (patch) | |
tree | a19334865538c338914fc5edbe492a63be997a86 /content/browser/loader/resource_loader.cc | |
parent | 772c9c76dd4af50f697e67751867686c15321435 (diff) | |
download | chromium_src-0c388aaf008fe3549e436fdfa3b2d2ee95b9a011.zip chromium_src-0c388aaf008fe3549e436fdfa3b2d2ee95b9a011.tar.gz chromium_src-0c388aaf008fe3549e436fdfa3b2d2ee95b9a011.tar.bz2 |
Revert of Attach a SecurityStyle to each request in ResourceLoader (patchset #9 id:160001 of https://codereview.chromium.org/1244863003/)
Reason for revert:
SecurityStyleChanged browser test is flaky after this change: http://build.chromium.org/p/chromium.linux/builders/Linux%20Tests
Original issue's description:
> Attach a SecurityStyle to each request in ResourceLoader
>
> This CL adds a SecurityStyle to the serialized security information that
> is sent with each request from the browser to the renderer. The
> SecurityStyle describes the individual resource, not any bigger-picture
> concerns like mixed content. The per-request SecurityStyle will be
> displayed in DevTools to help developers diagnose SSL issues on
> subresources.
>
> BUG=502118, 445234
>
> Committed: https://crrev.com/5318895a4dd623caf5d152461684935c6e874e12
> Cr-Commit-Position: refs/heads/master@{#340762}
TBR=creis@chromium.org,davidben@chromium.org,palmer@chromium.org,msw@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=502118, 445234
Review URL: https://codereview.chromium.org/1259253009
Cr-Commit-Position: refs/heads/master@{#340785}
Diffstat (limited to 'content/browser/loader/resource_loader.cc')
-rw-r--r-- | content/browser/loader/resource_loader.cc | 89 |
1 files changed, 40 insertions, 49 deletions
diff --git a/content/browser/loader/resource_loader.cc b/content/browser/loader/resource_loader.cc index 0339cf1..5c2b9b8 100644 --- a/content/browser/loader/resource_loader.cc +++ b/content/browser/loader/resource_loader.cc @@ -20,7 +20,6 @@ #include "content/browser/service_worker/service_worker_request_handler.h" #include "content/browser/ssl/ssl_client_auth_handler.h" #include "content/browser/ssl/ssl_manager.h" -#include "content/browser/ssl/ssl_policy.h" #include "content/common/ssl_status_serialization.h" #include "content/public/browser/cert_store.h" #include "content/public/browser/resource_context.h" @@ -30,7 +29,6 @@ #include "content/public/common/content_switches.h" #include "content/public/common/process_type.h" #include "content/public/common/resource_response.h" -#include "content/public/common/security_style.h" #include "net/base/io_buffer.h" #include "net/base/load_flags.h" #include "net/http/http_response_headers.h" @@ -77,43 +75,6 @@ void PopulateResourceResponse(ResourceRequestInfoImpl* info, request->GetLoadTimingInfo(&response->head.load_timing); } -void StoreSignedCertificateTimestamps( - const net::SignedCertificateTimestampAndStatusList& sct_list, - int process_id, - SignedCertificateTimestampIDStatusList* sct_ids) { - SignedCertificateTimestampStore* sct_store( - SignedCertificateTimestampStore::GetInstance()); - - for (auto iter = sct_list.begin(); iter != sct_list.end(); ++iter) { - const int sct_id(sct_store->Store(iter->sct.get(), process_id)); - sct_ids->push_back( - SignedCertificateTimestampIDAndStatus(sct_id, iter->status)); - } -} - -void GetSSLStatusForRequest(const GURL& url, - const net::SSLInfo& ssl_info, - int child_id, - SSLStatus* ssl_status) { - DCHECK(ssl_info.cert); - - int cert_id = - CertStore::GetInstance()->StoreCert(ssl_info.cert.get(), child_id); - - SignedCertificateTimestampIDStatusList signed_certificate_timestamp_ids; - StoreSignedCertificateTimestamps(ssl_info.signed_certificate_timestamps, - child_id, &signed_certificate_timestamp_ids); - - ssl_status->cert_id = cert_id; - ssl_status->cert_status = ssl_info.cert_status; - ssl_status->security_bits = ssl_info.security_bits; - ssl_status->connection_status = ssl_info.connection_status; - ssl_status->signed_certificate_timestamp_ids = - signed_certificate_timestamp_ids; - ssl_status->security_style = - SSLPolicy::GetSecurityStyleForResource(url, *ssl_status); -} - } // namespace ResourceLoader::ResourceLoader(scoped_ptr<net::URLRequest> request, @@ -582,17 +543,42 @@ void ResourceLoader::CancelRequestInternal(int error, bool from_renderer) { } } +void ResourceLoader::StoreSignedCertificateTimestamps( + const net::SignedCertificateTimestampAndStatusList& sct_list, + int process_id, + SignedCertificateTimestampIDStatusList* sct_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.get(), process_id)); + sct_ids->push_back( + SignedCertificateTimestampIDAndStatus(sct_id, iter->status)); + } +} + void ResourceLoader::CompleteResponseStarted() { ResourceRequestInfoImpl* info = GetRequestInfo(); scoped_refptr<ResourceResponse> response(new ResourceResponse()); PopulateResourceResponse(info, request_.get(), response.get()); if (request_->ssl_info().cert.get()) { - SSLStatus ssl_status; - GetSSLStatusForRequest(request_->url(), request_->ssl_info(), - info->GetChildID(), &ssl_status); - - response->head.security_info = SerializeSecurityInfo(ssl_status); + int cert_id = CertStore::GetInstance()->StoreCert( + request_->ssl_info().cert.get(), info->GetChildID()); + + SignedCertificateTimestampIDStatusList 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, + signed_certificate_timestamp_ids); } else { // We should not have any SSL state. DCHECK(!request_->ssl_info().cert_status && @@ -708,11 +694,16 @@ void ResourceLoader::ResponseCompleted() { std::string security_info; const net::SSLInfo& ssl_info = request_->ssl_info(); if (ssl_info.cert.get() != NULL) { - SSLStatus ssl_status; - GetSSLStatusForRequest(request_->url(), ssl_info, info->GetChildID(), - &ssl_status); - - security_info = SerializeSecurityInfo(ssl_status); + int cert_id = CertStore::GetInstance()->StoreCert(ssl_info.cert.get(), + info->GetChildID()); + 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, signed_certificate_timestamp_ids); } bool defer = false; |