Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(138)

Unified Diff: net/http/http_cache_transaction.cc

Issue 1599143002: Remove CertCacheTrial (DiskBasedCertCache). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: crbug.com doesn't like trailing slashes Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/http/http_cache_transaction.h ('k') | net/net.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/http/http_cache_transaction.cc
diff --git a/net/http/http_cache_transaction.cc b/net/http/http_cache_transaction.cc
index 3b9f28dc30c8a42ceae09cd575916a131491e980..38da8f3bd7b0fc8a7492cef49a0666fd027c8668 100644
--- a/net/http/http_cache_transaction.cc
+++ b/net/http/http_cache_transaction.cc
@@ -36,7 +36,6 @@
#include "net/cert/cert_status_flags.h"
#include "net/cert/x509_certificate.h"
#include "net/disk_cache/disk_cache.h"
-#include "net/http/disk_based_cert_cache.h"
#include "net/http/http_network_session.h"
#include "net/http/http_request_info.h"
#include "net/http/http_util.h"
@@ -54,111 +53,6 @@ namespace {
// TODO(ricea): Move this to HttpResponseHeaders once it is standardised.
static const char kFreshnessHeader[] = "Resource-Freshness";
-// Stores data relevant to the statistics of writing and reading entire
-// certificate chains using DiskBasedCertCache. |num_pending_ops| is the number
-// of certificates in the chain that have pending operations in the
-// DiskBasedCertCache. |start_time| is the time that the read and write
-// commands began being issued to the DiskBasedCertCache.
-// TODO(brandonsalmon): Remove this when it is no longer necessary to
-// collect data.
-class SharedChainData : public base::RefCounted<SharedChainData> {
- public:
- SharedChainData(int num_ops, TimeTicks start)
- : num_pending_ops(num_ops), start_time(start) {}
-
- int num_pending_ops;
- TimeTicks start_time;
-
- private:
- friend class base::RefCounted<SharedChainData>;
- ~SharedChainData() {}
- DISALLOW_COPY_AND_ASSIGN(SharedChainData);
-};
-
-// Used to obtain a cache entry key for an OSCertHandle.
-// TODO(brandonsalmon): Remove this when cache keys are stored
-// and no longer have to be recomputed to retrieve the OSCertHandle
-// from the disk.
-std::string GetCacheKeyForCert(X509Certificate::OSCertHandle cert_handle) {
- SHA1HashValue fingerprint =
- X509Certificate::CalculateFingerprint(cert_handle);
-
- return "cert:" +
- base::HexEncode(fingerprint.data, arraysize(fingerprint.data));
-}
-
-// |dist_from_root| indicates the position of the read certificate in the
-// certificate chain, 0 indicating it is the root. |is_leaf| indicates
-// whether or not the read certificate was the leaf of the chain.
-// |shared_chain_data| contains data shared by each certificate in
-// the chain.
-void OnCertReadIOComplete(
- int dist_from_root,
- bool is_leaf,
- const scoped_refptr<SharedChainData>& shared_chain_data,
- X509Certificate::OSCertHandle cert_handle) {
- // If |num_pending_ops| is one, this was the last pending read operation
- // for this chain of certificates. The total time used to read the chain
- // can be calculated by subtracting the starting time from Now().
- shared_chain_data->num_pending_ops--;
- if (!shared_chain_data->num_pending_ops) {
- const TimeDelta read_chain_wait =
- TimeTicks::Now() - shared_chain_data->start_time;
- UMA_HISTOGRAM_CUSTOM_TIMES("DiskBasedCertCache.ChainReadTime",
- read_chain_wait,
- base::TimeDelta::FromMilliseconds(1),
- base::TimeDelta::FromMinutes(10),
- 50);
- }
-
- bool success = (cert_handle != NULL);
- if (is_leaf)
- UMA_HISTOGRAM_BOOLEAN("DiskBasedCertCache.CertIoReadSuccessLeaf", success);
-
- if (success)
- UMA_HISTOGRAM_CUSTOM_COUNTS(
- "DiskBasedCertCache.CertIoReadSuccess", dist_from_root, 0, 10, 7);
- else
- UMA_HISTOGRAM_CUSTOM_COUNTS(
- "DiskBasedCertCache.CertIoReadFailure", dist_from_root, 0, 10, 7);
-}
-
-// |dist_from_root| indicates the position of the written certificate in the
-// certificate chain, 0 indicating it is the root. |is_leaf| indicates
-// whether or not the written certificate was the leaf of the chain.
-// |shared_chain_data| contains data shared by each certificate in
-// the chain.
-void OnCertWriteIOComplete(
- int dist_from_root,
- bool is_leaf,
- const scoped_refptr<SharedChainData>& shared_chain_data,
- const std::string& key) {
- // If |num_pending_ops| is one, this was the last pending write operation
- // for this chain of certificates. The total time used to write the chain
- // can be calculated by subtracting the starting time from Now().
- shared_chain_data->num_pending_ops--;
- if (!shared_chain_data->num_pending_ops) {
- const TimeDelta write_chain_wait =
- TimeTicks::Now() - shared_chain_data->start_time;
- UMA_HISTOGRAM_CUSTOM_TIMES("DiskBasedCertCache.ChainWriteTime",
- write_chain_wait,
- base::TimeDelta::FromMilliseconds(1),
- base::TimeDelta::FromMinutes(10),
- 50);
- }
-
- bool success = !key.empty();
- if (is_leaf)
- UMA_HISTOGRAM_BOOLEAN("DiskBasedCertCache.CertIoWriteSuccessLeaf", success);
-
- if (success)
- UMA_HISTOGRAM_CUSTOM_COUNTS(
- "DiskBasedCertCache.CertIoWriteSuccess", dist_from_root, 0, 10, 7);
- else
- UMA_HISTOGRAM_CUSTOM_COUNTS(
- "DiskBasedCertCache.CertIoWriteFailure", dist_from_root, 0, 10, 7);
-}
-
// From http://tools.ietf.org/html/draft-ietf-httpbis-p6-cache-21#section-6
// a "non-error response" is one with a 2xx (Successful) or 3xx
// (Redirection) status code.
@@ -1276,10 +1170,6 @@ int HttpCache::Transaction::DoCacheReadResponseComplete(int result) {
return OnCacheReadError(result, true);
}
- // cert_cache() will be null if the CertCacheTrial field trial is disabled.
- if (cache_->cert_cache() && response_.ssl_info.is_valid())
- ReadCertChain();
-
// Some resources may have slipped in as truncated when they're not.
int current_size = entry_->disk_entry->GetDataSize(kResponseContentIndex);
if (response_.headers->GetContentLength() == current_size)
@@ -1919,63 +1809,6 @@ int HttpCache::Transaction::DoCacheWriteTruncatedResponseComplete(int result) {
//-----------------------------------------------------------------------------
-void HttpCache::Transaction::ReadCertChain() {
- std::string key =
- GetCacheKeyForCert(response_.ssl_info.cert->os_cert_handle());
- const X509Certificate::OSCertHandles& intermediates =
- response_.ssl_info.cert->GetIntermediateCertificates();
- int dist_from_root = intermediates.size();
-
- scoped_refptr<SharedChainData> shared_chain_data(
- new SharedChainData(intermediates.size() + 1, TimeTicks::Now()));
- cache_->cert_cache()->GetCertificate(key,
- base::Bind(&OnCertReadIOComplete,
- dist_from_root,
- true /* is leaf */,
- shared_chain_data));
-
- for (X509Certificate::OSCertHandles::const_iterator it =
- intermediates.begin();
- it != intermediates.end();
- ++it) {
- --dist_from_root;
- key = GetCacheKeyForCert(*it);
- cache_->cert_cache()->GetCertificate(key,
- base::Bind(&OnCertReadIOComplete,
- dist_from_root,
- false /* is not leaf */,
- shared_chain_data));
- }
- DCHECK_EQ(0, dist_from_root);
-}
-
-void HttpCache::Transaction::WriteCertChain() {
- const X509Certificate::OSCertHandles& intermediates =
- response_.ssl_info.cert->GetIntermediateCertificates();
- int dist_from_root = intermediates.size();
-
- scoped_refptr<SharedChainData> shared_chain_data(
- new SharedChainData(intermediates.size() + 1, TimeTicks::Now()));
- cache_->cert_cache()->SetCertificate(
- response_.ssl_info.cert->os_cert_handle(),
- base::Bind(&OnCertWriteIOComplete,
- dist_from_root,
- true /* is leaf */,
- shared_chain_data));
- for (X509Certificate::OSCertHandles::const_iterator it =
- intermediates.begin();
- it != intermediates.end();
- ++it) {
- --dist_from_root;
- cache_->cert_cache()->SetCertificate(*it,
- base::Bind(&OnCertWriteIOComplete,
- dist_from_root,
- false /* is not leaf */,
- shared_chain_data));
- }
- DCHECK_EQ(0, dist_from_root);
-}
-
void HttpCache::Transaction::SetRequest(const BoundNetLog& net_log,
const HttpRequestInfo* request) {
net_log_ = net_log;
@@ -2663,10 +2496,6 @@ int HttpCache::Transaction::WriteResponseInfoToEntry(bool truncated) {
return OK;
}
- // cert_cache() will be null if the CertCacheTrial field trial is disabled.
- if (cache_->cert_cache() && response_.ssl_info.is_valid())
- WriteCertChain();
-
if (truncated)
DCHECK_EQ(200, response_.headers->response_code());
« no previous file with comments | « net/http/http_cache_transaction.h ('k') | net/net.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698