summaryrefslogtreecommitdiff
path: root/chromium/net/websockets/websocket_handshake_constants.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/net/websockets/websocket_handshake_constants.h')
-rw-r--r--chromium/net/websockets/websocket_handshake_constants.h84
1 files changed, 84 insertions, 0 deletions
diff --git a/chromium/net/websockets/websocket_handshake_constants.h b/chromium/net/websockets/websocket_handshake_constants.h
new file mode 100644
index 00000000000..0cf67a8ac7f
--- /dev/null
+++ b/chromium/net/websockets/websocket_handshake_constants.h
@@ -0,0 +1,84 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// A set of common constants that are needed for the WebSocket handshake.
+// In general, you should prefer using these constants to literal strings,
+// except in tests.
+//
+// These constants cannot be used in files that are compiled on iOS, because
+// this file is not compiled on iOS.
+
+#ifndef NET_WEBSOCKETS_WEBSOCKET_HANDSHAKE_CONSTANTS_H_
+#define NET_WEBSOCKETS_WEBSOCKET_HANDSHAKE_CONSTANTS_H_
+
+#include "base/basictypes.h"
+
+// This file plases constants inside the ::net::websockets namespace to avoid
+// risk of collisions with other symbols in libnet.
+namespace net {
+namespace websockets {
+
+// "HTTP/1.1"
+// RFC6455 only requires HTTP/1.1 "or better" but in practice an HTTP version
+// other than 1.1 should not occur in a WebSocket handshake.
+extern const char* const kHttpProtocolVersion;
+
+// The Sec-WebSockey-Key challenge is 16 random bytes, base64 encoded.
+extern const size_t kRawChallengeLength;
+
+// "Sec-WebSocket-Protocol"
+extern const char* const kSecWebSocketProtocol;
+
+// "Sec-WebSocket-Extensions"
+extern const char* const kSecWebSocketExtensions;
+
+// "Sec-WebSocket-Key"
+extern const char* const kSecWebSocketKey;
+
+// "Sec-WebSocket-Accept"
+extern const char* const kSecWebSocketAccept;
+
+// "Sec-WebSocket-Version"
+extern const char* const kSecWebSocketVersion;
+
+// "Upgrade"
+extern const char* const kUpgrade;
+
+// "258EAFA5-E914-47DA-95CA-C5AB0DC85B11" as defined in section 4.1 of
+// RFC6455.
+extern const char* const kWebSocketGuid;
+
+// Colon-prefixed lowercase headers for SPDY3.
+
+// ":sec-websocket-protocol"
+extern const char* const kSecWebSocketProtocolSpdy3;
+
+// ":sec-websocket-extensions"
+extern const char* const kSecWebSocketExtensionsSpdy3;
+
+// Some parts of the code require lowercase versions of the header names in
+// order to do case-insensitive comparisons, or because of SPDY.
+// "sec-websocket-protocol"
+extern const char* const kSecWebSocketProtocolLowercase;
+
+// "sec-websocket-extensions"
+extern const char* const kSecWebSocketExtensionsLowercase;
+
+// "sec-webSocket-key"
+extern const char* const kSecWebSocketKeyLowercase;
+
+// "sec-websocket-version"
+extern const char* const kSecWebSocketVersionLowercase;
+
+// "upgrade"
+extern const char* const kUpgradeLowercase;
+
+// "websocket", as used in the "Upgrade:" header. This is always lowercase
+// (except in obsolete versions of the protocol).
+extern const char* const kWebSocketLowercase;
+
+} // namespace websockets
+} // namespace net
+
+#endif // NET_WEBSOCKETS_WEBSOCKET_HANDSHAKE_CONSTANTS_H_