OLD | NEW |
1 // Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef NET_BASE_SSL_CONFIG_SERVICE_H_ | 5 #ifndef NET_BASE_SSL_CONFIG_SERVICE_H_ |
6 #define NET_BASE_SSL_CONFIG_SERVICE_H_ | 6 #define NET_BASE_SSL_CONFIG_SERVICE_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 | 70 |
71 // The list of application level protocols supported. If set, this will | 71 // The list of application level protocols supported. If set, this will |
72 // enable Next Protocol Negotiation (if supported). This is a list of 8-bit | 72 // enable Next Protocol Negotiation (if supported). This is a list of 8-bit |
73 // length prefixed strings. The order of the protocols doesn't matter expect | 73 // length prefixed strings. The order of the protocols doesn't matter expect |
74 // for one case: if the server supports Next Protocol Negotiation, but there | 74 // for one case: if the server supports Next Protocol Negotiation, but there |
75 // is no overlap between the server's and client's protocol sets, then the | 75 // is no overlap between the server's and client's protocol sets, then the |
76 // first protocol in this list will be requested by the client. | 76 // first protocol in this list will be requested by the client. |
77 std::string next_protos; | 77 std::string next_protos; |
78 | 78 |
79 scoped_refptr<X509Certificate> client_cert; | 79 scoped_refptr<X509Certificate> client_cert; |
| 80 |
| 81 // ssl_host_info contains an optional context that is needed for Snap Start. |
| 82 // If provided, the SSL socket will assume that the application protocol is |
| 83 // client-speaks-first. Also needs SSLConfigService::EnableSnapStart to |
| 84 // have been called. |
| 85 scoped_refptr<SSLHostInfo> ssl_host_info; |
80 }; | 86 }; |
81 | 87 |
82 // The interface for retrieving the SSL configuration. This interface | 88 // The interface for retrieving the SSL configuration. This interface |
83 // does not cover setting the SSL configuration, as on some systems, the | 89 // does not cover setting the SSL configuration, as on some systems, the |
84 // SSLConfigService objects may not have direct access to the configuration, or | 90 // SSLConfigService objects may not have direct access to the configuration, or |
85 // live longer than the configuration preferences. | 91 // live longer than the configuration preferences. |
86 class SSLConfigService : public base::RefCountedThreadSafe<SSLConfigService> { | 92 class SSLConfigService : public base::RefCountedThreadSafe<SSLConfigService> { |
87 public: | 93 public: |
88 // Observer is notified when SSL config settings have changed. | 94 // Observer is notified when SSL config settings have changed. |
89 class Observer { | 95 class Observer { |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
163 void ProcessConfigUpdate(const SSLConfig& orig_config, | 169 void ProcessConfigUpdate(const SSLConfig& orig_config, |
164 const SSLConfig& new_config); | 170 const SSLConfig& new_config); |
165 | 171 |
166 private: | 172 private: |
167 ObserverList<Observer> observer_list_; | 173 ObserverList<Observer> observer_list_; |
168 }; | 174 }; |
169 | 175 |
170 } // namespace net | 176 } // namespace net |
171 | 177 |
172 #endif // NET_BASE_SSL_CONFIG_SERVICE_H_ | 178 #endif // NET_BASE_SSL_CONFIG_SERVICE_H_ |
OLD | NEW |