1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "next_proto.h"
6
7namespace net {
8
9NextProtoVector NextProtosHttpOnly() {
10  NextProtoVector next_protos;
11  next_protos.push_back(kProtoHTTP11);
12  return next_protos;
13}
14
15NextProtoVector NextProtosDefaults() {
16  NextProtoVector next_protos;
17  next_protos.push_back(kProtoHTTP11);
18  next_protos.push_back(kProtoSPDY3);
19  next_protos.push_back(kProtoSPDY31);
20  return next_protos;
21}
22
23NextProtoVector NextProtosWithSpdyAndQuic(bool spdy_enabled,
24                                          bool quic_enabled) {
25  NextProtoVector next_protos;
26  next_protos.push_back(kProtoHTTP11);
27  if (quic_enabled)
28    next_protos.push_back(kProtoQUIC1SPDY3);
29  if (spdy_enabled) {
30    next_protos.push_back(kProtoSPDY3);
31    next_protos.push_back(kProtoSPDY31);
32  }
33  return next_protos;
34}
35
36NextProtoVector NextProtosSpdy3() {
37  NextProtoVector next_protos;
38  next_protos.push_back(kProtoHTTP11);
39  next_protos.push_back(kProtoQUIC1SPDY3);
40  next_protos.push_back(kProtoSPDY3);
41  return next_protos;
42}
43
44NextProtoVector NextProtosSpdy31() {
45  NextProtoVector next_protos;
46  next_protos.push_back(kProtoHTTP11);
47  next_protos.push_back(kProtoQUIC1SPDY3);
48  next_protos.push_back(kProtoSPDY3);
49  next_protos.push_back(kProtoSPDY31);
50  return next_protos;
51}
52
53NextProtoVector NextProtosSpdy31WithSpdy2() {
54  NextProtoVector next_protos;
55  next_protos.push_back(kProtoHTTP11);
56  next_protos.push_back(kProtoQUIC1SPDY3);
57  next_protos.push_back(kProtoDeprecatedSPDY2);
58  next_protos.push_back(kProtoSPDY3);
59  next_protos.push_back(kProtoSPDY31);
60  return next_protos;
61}
62
63NextProtoVector NextProtosSpdy4Http2() {
64  NextProtoVector next_protos;
65  next_protos.push_back(kProtoHTTP11);
66  next_protos.push_back(kProtoQUIC1SPDY3);
67  next_protos.push_back(kProtoSPDY3);
68  next_protos.push_back(kProtoSPDY31);
69  next_protos.push_back(kProtoSPDY4);
70  return next_protos;
71}
72
73}  // namespace net
74