| Index: net/websockets/websocket_frame.h
|
| diff --git a/net/websockets/websocket_frame.h b/net/websockets/websocket_frame.h
|
| index 46b011f7f308a712493e1f0c9f9791c4bbb6c417..0f456a5bdbeb422c98cbe94995e00cb034cbbf1d 100644
|
| --- a/net/websockets/websocket_frame.h
|
| +++ b/net/websockets/websocket_frame.h
|
| @@ -25,9 +25,23 @@ struct NET_EXPORT WebSocketFrameHeader {
|
| static const OpCode kOpCodeContinuation;
|
| static const OpCode kOpCodeText;
|
| static const OpCode kOpCodeBinary;
|
| + static const OpCode kOpCodeDataUnused;
|
| static const OpCode kOpCodeClose;
|
| static const OpCode kOpCodePing;
|
| static const OpCode kOpCodePong;
|
| + static const OpCode kOpCodeControlUnused;
|
| +
|
| + // Efficiently determine whether a given opcode is one of the data opcodes
|
| + // known to this implementation.
|
| + static bool IsKnownDataOpCode(OpCode opCode) {
|
| + return (opCode & ~3) == 0 && opCode != 3;
|
| + }
|
| +
|
| + // Efficiently determine whether a given opcode is one of the control opcodes
|
| + // known to this implementation.
|
| + static bool IsKnownControlOpCode(OpCode opCode) {
|
| + return (opCode & ~3) == 8 && opCode != 0x0B;
|
| + }
|
|
|
| // These values must be a compile-time constant. "enum hack" is used here
|
| // to make MSVC happy.
|
| @@ -37,6 +51,32 @@ struct NET_EXPORT WebSocketFrameHeader {
|
| kMaskingKeyLength = 4
|
| };
|
|
|
| + // Constructor to avoid a lot of repetitive initialisation.
|
| + explicit WebSocketFrameHeader(OpCode opCode)
|
| + : final(false),
|
| + reserved1(false),
|
| + reserved2(false),
|
| + reserved3(false),
|
| + opcode(opCode),
|
| + masked(false),
|
| + payload_length(0) {}
|
| +
|
| + // Backwards-compatible constructor to avoid breaking Chromedriver.
|
| + // The above constructor should be used in preference, as there is no good
|
| + // default value for "opcode".
|
| + // TODO(ricea): Remove this once Chromedriver have stopped using it.
|
| + WebSocketFrameHeader()
|
| + : final(false),
|
| + reserved1(false),
|
| + reserved2(false),
|
| + reserved3(false),
|
| + opcode(kOpCodeDataUnused),
|
| + masked(false),
|
| + payload_length(0) {}
|
| +
|
| + // Create a clone of this object on the heap.
|
| + scoped_ptr<WebSocketFrameHeader> Clone();
|
| +
|
| // Members below correspond to each item in WebSocket frame header.
|
| // See <http://tools.ietf.org/html/rfc6455#section-5.2> for details.
|
| bool final;
|
| @@ -46,6 +86,9 @@ struct NET_EXPORT WebSocketFrameHeader {
|
| OpCode opcode;
|
| bool masked;
|
| uint64 payload_length;
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(WebSocketFrameHeader);
|
| };
|
|
|
| // Contains payload data of part of a WebSocket frame.
|
|
|