network_switch_list.h 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. // Copyright 2017 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. // This file deliberately has no header guard, as it's inlined in a number of
  5. // files.
  6. // no-include-guard-because-multiply-included
  7. // Disables the QUIC protocol.
  8. NETWORK_SWITCH(kDisableQuic, "disable-quic")
  9. // Disables the HTTP/2 protocol.
  10. NETWORK_SWITCH(kDisableHttp2, "disable-http2")
  11. // Enables Alternate-Protocol when the port is user controlled (> 1024).
  12. NETWORK_SWITCH(kEnableUserAlternateProtocolPorts,
  13. "enable-user-controlled-alternate-protocol-ports")
  14. // Enables the QUIC protocol. This is a temporary testing flag.
  15. NETWORK_SWITCH(kEnableQuic, "enable-quic")
  16. // Ignores certificate-related errors.
  17. NETWORK_SWITCH(kIgnoreCertificateErrors, "ignore-certificate-errors")
  18. // Specifies a comma separated list of host-port pairs to force use of QUIC on.
  19. NETWORK_SWITCH(kOriginToForceQuicOn, "origin-to-force-quic-on")
  20. // Specifies a comma separated list of QUIC connection options to send to
  21. // the server.
  22. NETWORK_SWITCH(kQuicConnectionOptions, "quic-connection-options")
  23. // Specifies a comma separated list of QUIC client connection options.
  24. NETWORK_SWITCH(kQuicClientConnectionOptions, "quic-client-connection-options")
  25. // Specifies the maximum length for a QUIC packet.
  26. NETWORK_SWITCH(kQuicMaxPacketLength, "quic-max-packet-length")
  27. // Specifies the version of QUIC to use.
  28. NETWORK_SWITCH(kQuicVersion, "quic-version")
  29. // Allows for forcing socket connections to http/https to use fixed ports.
  30. NETWORK_SWITCH(kTestingFixedHttpPort, "testing-fixed-http-port")
  31. NETWORK_SWITCH(kTestingFixedHttpsPort, "testing-fixed-https-port")
  32. // Comma-separated list of rules that control how hostnames are mapped.
  33. //
  34. // For example:
  35. // "MAP * 127.0.0.1" --> Forces all hostnames to be mapped to 127.0.0.1
  36. // "MAP *.google.com proxy" --> Forces all google.com subdomains to be
  37. // resolved to "proxy".
  38. // "MAP test.com [::1]:77 --> Forces "test.com" to resolve to IPv6 loopback.
  39. // Will also force the port of the resulting
  40. // socket address to be 77.
  41. // "MAP * baz, EXCLUDE www.google.com" --> Remaps everything to "baz",
  42. // except for "www.google.com".
  43. //
  44. // These mappings apply to the endpoint host in a net::URLRequest (the TCP
  45. // connect and host resolver in a direct connection, and the CONNECT in an http
  46. // proxy connection, and the endpoint host in a SOCKS proxy connection).
  47. //
  48. // TODO(mmenke): Can we just remove this? host-resolver-rules is more generally
  49. // useful.
  50. NETWORK_SWITCH(kHostRules, "host-rules")
  51. // Enable "greasing" HTTP/2 frame types, that is, sending frames of reserved
  52. // types. See https://tools.ietf.org/html/draft-bishop-httpbis-grease-00 for
  53. // more detail.
  54. NETWORK_SWITCH(kHttp2GreaseFrameType, "http2-grease-frame-type")
  55. // If request has no body, close the stream not by setting END_STREAM flag on
  56. // the HEADERS frame, but by sending an empty DATA frame with END_STREAM
  57. // afterwards. Only affects HTTP/2 request streams, not proxy or bidirectional
  58. // streams.
  59. NETWORK_SWITCH(kHttp2EndStreamWithDataFrame, "http2-end-stream-with-data-frame")