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 <string_view> 9 #include <vector> 10 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 NextProtoFromString(std::string_view proto_string); 29 30 NET_EXPORT_PRIVATE const char* NextProtoToString(NextProto next_proto); 31 32 } // namespace net 33 34 #endif // NET_SOCKET_NEXT_PROTO_H_ 35