Index: net/socket/ssl_client_socket.h |
diff --git a/net/socket/ssl_client_socket.h b/net/socket/ssl_client_socket.h |
index 11b19a1ec02480d2423187e37a9cb8912367ffa4..46461df2ead1fcc6f1424a7eebe533a5ffdc4768 100644 |
--- a/net/socket/ssl_client_socket.h |
+++ b/net/socket/ssl_client_socket.h |
@@ -209,10 +209,23 @@ class NET_EXPORT SSLClientSocket : public SSLSocket { |
const SSLConfig& ssl_config, |
ChannelIDService* channel_id_service); |
+ // Determine if there is at least one enabled cipher suite that satisfies |
+ // Section 9.2 of the HTTP/2 specification. Note that the server might still |
+ // pick an inadequate cipher suite. |
+ static bool HasCipherAdequateForHTTP2( |
+ const std::vector<uint16>& cipher_suites); |
+ |
+ // Determine if the TLS version required by Section 9.2 of the HTTP/2 |
+ // specification is enabled. Note that the server might still pick an |
+ // inadequate TLS version. |
+ static bool IsTLSVersionAdequateForHTTP2(const SSLConfig& ssl_config); |
+ |
// Serializes |next_protos| in the wire format for ALPN: protocols are listed |
- // in order, each prefixed by a one-byte length. |
+ // in order, each prefixed by a one-byte length. Any HTTP/2 protocols in |
+ // |next_protos| are ignored if |can_advertise_http2| is false. |
static std::vector<uint8_t> SerializeNextProtos( |
- const std::vector<std::string>& next_protos); |
+ const NextProtoVector& next_protos, |
+ bool can_advertise_http2); |
// For unit testing only. |
// Returns the unverified certificate chain as presented by server. |
@@ -222,6 +235,7 @@ class NET_EXPORT SSLClientSocket : public SSLSocket { |
const = 0; |
private: |
+ FRIEND_TEST_ALL_PREFIXES(SSLClientSocket, SerializeNextProtos); |
// For signed_cert_timestamps_received_ and stapled_ocsp_response_received_. |
FRIEND_TEST_ALL_PREFIXES(SSLClientSocketTest, |
ConnectSignedCertTimestampsEnabledTLSExtension); |