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

Unified Diff: net/http/http_cache.cc

Issue 356953003: Adding DiskBasedCertCache to HttpCache (+UMA). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@current
Patch Set: Fixed issues (remembered to compile). Created 6 years, 5 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
Index: net/http/http_cache.cc
diff --git a/net/http/http_cache.cc b/net/http/http_cache.cc
index aa6fc228bc6c91b7cbf31c3fa67145683466695f..be7ea7caf823a3ee39bf48ed5259d2296b70d236 100644
--- a/net/http/http_cache.cc
+++ b/net/http/http_cache.cc
@@ -33,6 +33,7 @@
#include "net/base/net_errors.h"
#include "net/base/upload_data_stream.h"
#include "net/disk_cache/disk_cache.h"
+#include "net/http/disk_based_cert_cache.h"
#include "net/http/disk_cache_based_quic_server_info.h"
#include "net/http/http_cache_transaction.h"
#include "net/http/http_network_layer.h"
@@ -45,6 +46,11 @@
namespace {
+bool UseCertCache() {
+ return base::FieldTrialList::FindFullName("CertCacheTrial") ==
+ "ExperimentGroup";
+}
+
// Adaptor to delete a file on a worker thread.
void DeletePath(base::FilePath path) {
base::DeleteFile(path, false);
@@ -346,6 +352,7 @@ HttpCache::~HttpCache() {
// Before deleting pending_ops_, we have to make sure that the disk cache is
// done with said operations, or it will attempt to use deleted data.
+ cert_cache_.reset();
disk_cache_.reset();
PendingOpsMap::iterator pending_it = pending_ops_.begin();
@@ -1174,8 +1181,11 @@ void HttpCache::OnBackendCreated(int result, PendingOp* pending_op) {
// work items. The first call saves the backend and releases the factory,
// and the last call clears building_backend_.
backend_factory_.reset(); // Reclaim memory.
- if (result == OK)
+ if (result == OK) {
disk_cache_ = pending_op->backend.Pass();
+ if (UseCertCache())
+ cert_cache_.reset(new DiskBasedCertCache(disk_cache_.get()));
+ }
}
if (!pending_op->pending_queue.empty()) {

Powered by Google App Engine
This is Rietveld 408576698