summaryrefslogtreecommitdiffstats
path: root/net/base
diff options
context:
space:
mode:
authoragl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-18 13:45:12 +0000
committeragl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-18 13:45:12 +0000
commit8c9d4ba6af47099c5ce030d0802b276cd8fd37b2 (patch)
tree8fb914c374db9631a749475180036df83e2ed9a9 /net/base
parent971888bc3cefb8dc5538c7785a4b2c82f706a2a5 (diff)
downloadchromium_src-8c9d4ba6af47099c5ce030d0802b276cd8fd37b2.zip
chromium_src-8c9d4ba6af47099c5ce030d0802b276cd8fd37b2.tar.gz
chromium_src-8c9d4ba6af47099c5ce030d0802b276cd8fd37b2.tar.bz2
Revert 62918 - net: clean up SSLHostInfo construction.
Create an SSLHostInfoFactory interface and plumb it from the HttpCache to the SSLConnectJob. Also, move the SSLHostInfo reference from the ssl_config to being passed to the SSLClientSocket. BUG=none TEST=net_unittests Review URL: http://codereview.chromium.org/3747003 TBR=agl@chromium.org Review URL: http://codereview.chromium.org/3846005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62922 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base')
-rw-r--r--net/base/ssl_config_service.h6
-rw-r--r--net/base/ssl_host_info.cc13
-rw-r--r--net/base/ssl_host_info.h16
3 files changed, 11 insertions, 24 deletions
diff --git a/net/base/ssl_config_service.h b/net/base/ssl_config_service.h
index dc48a36..b1d1de4 100644
--- a/net/base/ssl_config_service.h
+++ b/net/base/ssl_config_service.h
@@ -77,6 +77,12 @@ struct SSLConfig {
std::string next_protos;
scoped_refptr<X509Certificate> client_cert;
+
+ // ssl_host_info contains an optional context that is needed for Snap Start.
+ // If provided, the SSL socket will assume that the application protocol is
+ // client-speaks-first. Also needs SSLConfigService::EnableSnapStart to
+ // have been called.
+ scoped_refptr<SSLHostInfo> ssl_host_info;
};
// The interface for retrieving the SSL configuration. This interface
diff --git a/net/base/ssl_host_info.cc b/net/base/ssl_host_info.cc
deleted file mode 100644
index 4b6c0e2..0000000
--- a/net/base/ssl_host_info.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "net/base/ssl_host_info.h"
-
-namespace net {
-
-SSLHostInfo::~SSLHostInfo() {}
-
-SSLHostInfoFactory::~SSLHostInfoFactory() {}
-
-} // namespace net
diff --git a/net/base/ssl_host_info.h b/net/base/ssl_host_info.h
index ae9ac6a..77c40fb 100644
--- a/net/base/ssl_host_info.h
+++ b/net/base/ssl_host_info.h
@@ -15,10 +15,9 @@ namespace net {
// This information may be stored on disk so does not include keys or session
// information etc. Primarily it's intended for caching the server's
// certificates.
-class SSLHostInfo {
+class SSLHostInfo :
+ public base::RefCountedThreadSafe<SSLHostInfo> {
public:
- virtual ~SSLHostInfo();
-
// Start will commence the lookup. This must be called before any other
// methods. By opportunistically calling this early, it may be possible to
// overlap this object's lookup and reduce latency.
@@ -46,15 +45,10 @@ class SSLHostInfo {
// this object and the store operation will still complete. This can only be
// called once WaitForDataReady has returned OK or called its callback.
virtual void Set(const std::string& new_data) = 0;
-};
-
-class SSLHostInfoFactory {
- public:
- virtual ~SSLHostInfoFactory();
- // GetForHost returns a fresh, allocated SSLHostInfo for the given hostname
- // or NULL on failure.
- virtual SSLHostInfo* GetForHost(const std::string& hostname) = 0;
+ protected:
+ friend class base::RefCountedThreadSafe<SSLHostInfo>;
+ virtual ~SSLHostInfo() { }
};
} // namespace net