1 // Copyright (c) 2012 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 #ifndef NET_WEBSOCKETS_WEBSOCKET_ERRORS_H_ 6 #define NET_WEBSOCKETS_WEBSOCKET_ERRORS_H_ 7 8 #include "net/base/net_errors.h" 9 10 namespace net { 11 12 // Reason codes used with close messages. NoStatusReceived, 13 // AbnormalClosure and TlsHandshake are special in that they 14 // should never be sent on the wire; they are only used within the 15 // implementation. 16 enum WebSocketError { 17 // Status codes in the range 0 to 999 are not used. 18 19 // The following are defined by RFC6455. 20 kWebSocketNormalClosure = 1000, 21 kWebSocketErrorGoingAway = 1001, 22 kWebSocketErrorProtocolError = 1002, 23 kWebSocketErrorUnsupportedData = 1003, 24 kWebSocketErrorNoStatusReceived = 1005, 25 kWebSocketErrorAbnormalClosure = 1006, 26 kWebSocketErrorInvalidFramePayloadData = 1007, 27 kWebSocketErrorPolicyViolation = 1008, 28 kWebSocketErrorMessageTooBig = 1009, 29 kWebSocketErrorMandatoryExtension = 1010, 30 kWebSocketErrorInternalServerError = 1011, 31 kWebSocketErrorTlsHandshake = 1015, 32 33 // The range 1000-2999 is reserved by RFC6455 for use by the WebSocket 34 // protocol and public extensions. 35 kWebSocketErrorProtocolReservedMax = 2999, 36 37 // The range 3000-3999 is reserved by RFC6455 for registered use by libraries, 38 // frameworks and applications. 39 kWebSocketErrorRegisteredReservedMin = 3000, 40 kWebSocketErrorRegisteredReservedMax = 3999, 41 42 // The range 4000-4999 is reserved by RFC6455 for private use by prior 43 // agreement of the endpoints. 44 kWebSocketErrorPrivateReservedMin = 4000, 45 kWebSocketErrorPrivateReservedMax = 4999, 46 }; 47 48 // Convert WebSocketError to net::Error defined in net/base/net_errors.h. 49 NET_EXPORT_PRIVATE Error WebSocketErrorToNetError(WebSocketError error); 50 51 } // namespace net 52 53 #endif // NET_WEBSOCKETS_WEBSOCKET_ERRORS_H_ 54