Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(643)

Unified Diff: net/websockets/websocket_frame.cc

Issue 15298012: Change the WebSocket OpCode constants to an enum (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Amend comments for IsKnown*OpCode. Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/websockets/websocket_frame.h ('k') | net/websockets/websocket_frame_parser.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/websockets/websocket_frame.cc
diff --git a/net/websockets/websocket_frame.cc b/net/websockets/websocket_frame.cc
index 7a8e22cadbdf3f66766c5b98a94fa5f4da32e430..f05b5b7615262f84f16fd6611f5239d44641962d 100644
--- a/net/websockets/websocket_frame.cc
+++ b/net/websockets/websocket_frame.cc
@@ -4,6 +4,8 @@
#include "net/websockets/websocket_frame.h"
+#include <algorithm>
+
#include "base/basictypes.h"
#include "base/logging.h"
#include "base/rand_util.h"
@@ -39,19 +41,6 @@ inline void MaskWebSocketFramePayloadByBytes(
namespace net {
-// Definitions for in-struct constants.
-const WebSocketFrameHeader::OpCode WebSocketFrameHeader::kOpCodeContinuation =
- 0x0;
-const WebSocketFrameHeader::OpCode WebSocketFrameHeader::kOpCodeText = 0x1;
-const WebSocketFrameHeader::OpCode WebSocketFrameHeader::kOpCodeBinary = 0x2;
-const WebSocketFrameHeader::OpCode WebSocketFrameHeader::kOpCodeDataUnused =
- 0x3;
-const WebSocketFrameHeader::OpCode WebSocketFrameHeader::kOpCodeClose = 0x8;
-const WebSocketFrameHeader::OpCode WebSocketFrameHeader::kOpCodePing = 0x9;
-const WebSocketFrameHeader::OpCode WebSocketFrameHeader::kOpCodePong = 0xA;
-const WebSocketFrameHeader::OpCode WebSocketFrameHeader::kOpCodeControlUnused =
- 0xB;
-
scoped_ptr<WebSocketFrameHeader> WebSocketFrameHeader::Clone() {
scoped_ptr<WebSocketFrameHeader> ret(new WebSocketFrameHeader(opcode));
ret->final = final;
@@ -64,11 +53,9 @@ scoped_ptr<WebSocketFrameHeader> WebSocketFrameHeader::Clone() {
return ret.Pass();
}
-WebSocketFrameChunk::WebSocketFrameChunk() : final_chunk(false) {
-}
+WebSocketFrameChunk::WebSocketFrameChunk() : final_chunk(false) {}
-WebSocketFrameChunk::~WebSocketFrameChunk() {
-}
+WebSocketFrameChunk::~WebSocketFrameChunk() {}
int GetWebSocketFrameHeaderSize(const WebSocketFrameHeader& header) {
int extended_length_size = 0;
@@ -79,8 +66,7 @@ int GetWebSocketFrameHeaderSize(const WebSocketFrameHeader& header) {
extended_length_size = 8;
}
- return (WebSocketFrameHeader::kBaseHeaderSize +
- extended_length_size +
+ return (WebSocketFrameHeader::kBaseHeaderSize + extended_length_size +
(header.masked ? WebSocketFrameHeader::kMaskingKeyLength : 0));
}
@@ -122,8 +108,7 @@ int WriteWebSocketFrameHeader(const WebSocketFrameHeader& header,
int extended_length_size = 0;
uint8 second_byte = 0u;
second_byte |= header.masked ? kMaskBit : 0u;
- if (header.payload_length <=
- kMaxPayloadLengthWithoutExtendedLengthField) {
+ if (header.payload_length <= kMaxPayloadLengthWithoutExtendedLengthField) {
second_byte |= header.payload_length;
} else if (header.payload_length <= kuint16max) {
second_byte |= kPayloadLengthWithTwoByteExtendedLengthField;
@@ -138,10 +123,10 @@ int WriteWebSocketFrameHeader(const WebSocketFrameHeader& header,
if (extended_length_size == 2) {
uint16 payload_length_16 = static_cast<uint16>(header.payload_length);
WriteBigEndian(buffer + buffer_index, payload_length_16);
- buffer_index += sizeof(uint16);
+ buffer_index += sizeof(payload_length_16);
} else if (extended_length_size == 8) {
WriteBigEndian(buffer + buffer_index, header.payload_length);
- buffer_index += sizeof(uint64);
+ buffer_index += sizeof(header.payload_length);
}
// Writes "masking key" field, if needed.
@@ -191,20 +176,18 @@ void MaskWebSocketFramePayload(const WebSocketMaskingKey& masking_key,
// If the buffer is too small for the vectorised version to be useful, revert
// to the byte-at-a-time implementation early.
if (data_size <= static_cast<int>(kPackedMaskKeySize * 2)) {
- MaskWebSocketFramePayloadByBytes(masking_key,
- frame_offset % kMaskingKeyLength,
- data, end);
+ MaskWebSocketFramePayloadByBytes(
+ masking_key, frame_offset % kMaskingKeyLength, data, end);
return;
}
const size_t data_modulus =
reinterpret_cast<size_t>(data) % kPackedMaskKeySize;
- char* const aligned_begin = data_modulus == 0 ? data :
- (data + kPackedMaskKeySize - data_modulus);
+ char* const aligned_begin =
+ data_modulus == 0 ? data : (data + kPackedMaskKeySize - data_modulus);
// Guaranteed by the above check for small data_size.
DCHECK(aligned_begin < end);
- MaskWebSocketFramePayloadByBytes(masking_key,
- frame_offset % kMaskingKeyLength,
- data, aligned_begin);
+ MaskWebSocketFramePayloadByBytes(
+ masking_key, frame_offset % kMaskingKeyLength, data, aligned_begin);
const size_t end_modulus = reinterpret_cast<size_t>(end) % kPackedMaskKeySize;
char* const aligned_end = end - end_modulus;
// Guaranteed by the above check for small data_size.
@@ -213,21 +196,21 @@ void MaskWebSocketFramePayload(const WebSocketMaskingKey& masking_key,
// for our alignment. The "trick" here is that 0 XORed with the mask will
// give the value of the mask for the appropriate byte.
char realigned_mask[kMaskingKeyLength] = { 0 };
- MaskWebSocketFramePayloadByBytes(masking_key,
- (frame_offset + aligned_begin - data)
- % kMaskingKeyLength,
- realigned_mask,
- realigned_mask + kMaskingKeyLength);
+ MaskWebSocketFramePayloadByBytes(
+ masking_key,
+ (frame_offset + aligned_begin - data) % kMaskingKeyLength,
+ realigned_mask,
+ realigned_mask + kMaskingKeyLength);
for (size_t i = 0; i < kPackedMaskKeySize; i += kMaskingKeyLength) {
// memcpy() is allegedly blessed by the C++ standard for type-punning.
memcpy(reinterpret_cast<char*>(&packed_mask_key) + i,
- realigned_mask, kMaskingKeyLength);
+ realigned_mask,
+ kMaskingKeyLength);
}
// The main loop.
- for (char* merged = aligned_begin;
- merged != aligned_end;
+ for (char* merged = aligned_begin; merged != aligned_end;
merged += kPackedMaskKeySize) {
// This is not quite standard-compliant C++. However, the standard-compliant
// equivalent (using memcpy()) compiles to slower code using g++. In
@@ -237,10 +220,11 @@ void MaskWebSocketFramePayload(const WebSocketMaskingKey& masking_key,
*reinterpret_cast<PackedMaskType*>(merged) ^= packed_mask_key;
}
- MaskWebSocketFramePayloadByBytes(masking_key,
- (frame_offset + (aligned_end - data))
- % kMaskingKeyLength,
- aligned_end, end);
+ MaskWebSocketFramePayloadByBytes(
+ masking_key,
+ (frame_offset + (aligned_end - data)) % kMaskingKeyLength,
+ aligned_end,
+ end);
}
} // namespace net
« no previous file with comments | « net/websockets/websocket_frame.h ('k') | net/websockets/websocket_frame_parser.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698