1 // Copyright 2012 The Chromium Authors 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef NET_SOCKET_NEXT_PROTO_H_ 6 #define NET_SOCKET_NEXT_PROTO_H_ 7 8 #include <vector> 9 10 #include "base/strings/string_piece.h" 11 #include "net/base/net_export.h" 12 13 namespace net { 14 15 // This enum is used in Net.SSLNegotiatedAlpnProtocol histogram. 16 // Do not change or re-use values. 17 enum NextProto { 18 kProtoUnknown = 0, 19 kProtoHTTP11 = 1, 20 kProtoHTTP2 = 2, 21 kProtoQUIC = 3, 22 kProtoLast = kProtoQUIC 23 }; 24 25 // List of protocols to use for ALPN, used for configuring HttpNetworkSessions. 26 typedef std::vector<NextProto> NextProtoVector; 27 28 NET_EXPORT_PRIVATE NextProto 29 NextProtoFromString(base::StringPiece proto_string); 30 31 NET_EXPORT_PRIVATE const char* NextProtoToString(NextProto next_proto); 32 33 } // namespace net 34 35 #endif // NET_SOCKET_NEXT_PROTO_H_ 36