Index: net/http/http_server_properties.cc |
diff --git a/net/http/http_server_properties.cc b/net/http/http_server_properties.cc |
index 1e5471c5e0c50be122241a1717a1eeed6645ee8f..c6c6432d5e49c22f6feea3886a91233648024171 100644 |
--- a/net/http/http_server_properties.cc |
+++ b/net/http/http_server_properties.cc |
@@ -63,23 +63,66 @@ |
BROKEN_ALTERNATE_PROTOCOL_LOCATION_MAX); |
} |
-bool IsAlternateProtocolValid(NextProto protocol) { |
+bool IsAlternateProtocolValid(AlternateProtocol protocol) { |
switch (protocol) { |
- case kProtoUnknown: |
+ case NPN_HTTP_2: |
+ return true; |
+ case QUIC: |
+ return true; |
+ case UNINITIALIZED_ALTERNATE_PROTOCOL: |
return false; |
- case kProtoHTTP11: |
- return false; |
- case kProtoHTTP2: |
- return true; |
- case kProtoQUIC: |
- return true; |
} |
NOTREACHED(); |
return false; |
} |
+const char* AlternateProtocolToString(AlternateProtocol protocol) { |
+ switch (protocol) { |
+ case QUIC: |
+ return "quic"; |
+ case NPN_HTTP_2: |
+ return "h2"; |
+ case UNINITIALIZED_ALTERNATE_PROTOCOL: |
+ return "Uninitialized"; |
+ } |
+ NOTREACHED(); |
+ return ""; |
+} |
+ |
+AlternateProtocol AlternateProtocolFromString(const std::string& str) { |
+ if (str == "quic") |
+ return QUIC; |
+ if (str == "h2") |
+ return NPN_HTTP_2; |
+ // "npn-h2" and "npn-spdy/3.1" are accepted here so that persisted settings |
+ // with the old string can be loaded from disk. TODO(bnc): Remove around |
+ // 2016 December. |
+ if (str == "npn-h2") |
+ return NPN_HTTP_2; |
+ if (str == "npn-spdy/3.1") |
+ return NPN_HTTP_2; |
+ |
+ return UNINITIALIZED_ALTERNATE_PROTOCOL; |
+} |
+ |
+AlternateProtocol AlternateProtocolFromNextProto(NextProto next_proto) { |
+ switch (next_proto) { |
+ case kProtoHTTP2: |
+ return NPN_HTTP_2; |
+ case kProtoQUIC: |
+ return QUIC; |
+ |
+ case kProtoUnknown: |
+ case kProtoHTTP11: |
+ break; |
+ } |
+ |
+ NOTREACHED() << "Invalid NextProto: " << next_proto; |
+ return UNINITIALIZED_ALTERNATE_PROTOCOL; |
+} |
+ |
std::string AlternativeService::ToString() const { |
- return base::StringPrintf("%s %s:%d", NextProtoToString(protocol), |
+ return base::StringPrintf("%s %s:%d", AlternateProtocolToString(protocol), |
host.c_str(), port); |
} |