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

Side by Side Diff: mojo/services/network/web_socket_impl.cc

Issue 1399343002: Roll Mojo to b88737ed62969ce3203085748f0d53ff4f09ba5b. (Closed) Base URL: https://github.com/domokit/monet.git@master
Patch Set: Created 5 years, 2 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "mojo/services/network/web_socket_impl.h" 5 #include "mojo/services/network/web_socket_impl.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "mojo/common/handle_watcher.h" 9 #include "mojo/common/handle_watcher.h"
10 #include "mojo/services/network/network_context.h" 10 #include "mojo/services/network/network_context.h"
11 #include "mojo/services/network/public/cpp/web_socket_read_queue.h" 11 #include "mojo/services/network/public/cpp/web_socket_read_queue.h"
12 #include "mojo/services/network/public/cpp/web_socket_write_queue.h" 12 #include "mojo/services/network/public/cpp/web_socket_write_queue.h"
13 #include "net/websockets/websocket_channel.h" 13 #include "net/websockets/websocket_channel.h"
14 #include "net/websockets/websocket_errors.h" 14 #include "net/websockets/websocket_errors.h"
15 #include "net/websockets/websocket_event_interface.h" 15 #include "net/websockets/websocket_event_interface.h"
16 #include "net/websockets/websocket_frame.h" // for WebSocketFrameHeader::OpCode 16 #include "net/websockets/websocket_frame.h" // for WebSocketFrameHeader::OpCode
17 #include "net/websockets/websocket_handshake_request_info.h" 17 #include "net/websockets/websocket_handshake_request_info.h"
18 #include "net/websockets/websocket_handshake_response_info.h" 18 #include "net/websockets/websocket_handshake_response_info.h"
19 #include "url/origin.h" 19 #include "url/origin.h"
20 20
21 namespace mojo { 21 namespace mojo {
22 22
23 template <> 23 template <>
24 struct TypeConverter<net::WebSocketFrameHeader::OpCode, 24 struct TypeConverter<net::WebSocketFrameHeader::OpCode,
25 WebSocket::MessageType> { 25 WebSocket::MessageType> {
26 static net::WebSocketFrameHeader::OpCode Convert( 26 static net::WebSocketFrameHeader::OpCode Convert(
27 WebSocket::MessageType type) { 27 WebSocket::MessageType type) {
28 DCHECK(type == WebSocket::MESSAGE_TYPE_CONTINUATION || 28 DCHECK(type == WebSocket::MessageType::CONTINUATION ||
29 type == WebSocket::MESSAGE_TYPE_TEXT || 29 type == WebSocket::MessageType::TEXT ||
30 type == WebSocket::MESSAGE_TYPE_BINARY); 30 type == WebSocket::MessageType::BINARY);
31 typedef net::WebSocketFrameHeader::OpCode OpCode; 31 typedef net::WebSocketFrameHeader::OpCode OpCode;
32 // These compile asserts verify that the same underlying values are used for 32 // These compile asserts verify that the same underlying values are used for
33 // both types, so we can simply cast between them. 33 // both types, so we can simply cast between them.
34 COMPILE_ASSERT(static_cast<OpCode>(WebSocket::MESSAGE_TYPE_CONTINUATION) == 34 COMPILE_ASSERT(static_cast<OpCode>(WebSocket::MessageType::CONTINUATION) ==
35 net::WebSocketFrameHeader::kOpCodeContinuation, 35 net::WebSocketFrameHeader::kOpCodeContinuation,
36 enum_values_must_match_for_opcode_continuation); 36 enum_values_must_match_for_opcode_continuation);
37 COMPILE_ASSERT(static_cast<OpCode>(WebSocket::MESSAGE_TYPE_TEXT) == 37 COMPILE_ASSERT(static_cast<OpCode>(WebSocket::MessageType::TEXT) ==
38 net::WebSocketFrameHeader::kOpCodeText, 38 net::WebSocketFrameHeader::kOpCodeText,
39 enum_values_must_match_for_opcode_text); 39 enum_values_must_match_for_opcode_text);
40 COMPILE_ASSERT(static_cast<OpCode>(WebSocket::MESSAGE_TYPE_BINARY) == 40 COMPILE_ASSERT(static_cast<OpCode>(WebSocket::MessageType::BINARY) ==
41 net::WebSocketFrameHeader::kOpCodeBinary, 41 net::WebSocketFrameHeader::kOpCodeBinary,
42 enum_values_must_match_for_opcode_binary); 42 enum_values_must_match_for_opcode_binary);
43 return static_cast<OpCode>(type); 43 return static_cast<OpCode>(type);
44 } 44 }
45 }; 45 };
46 46
47 template <> 47 template <>
48 struct TypeConverter<WebSocket::MessageType, 48 struct TypeConverter<WebSocket::MessageType,
49 net::WebSocketFrameHeader::OpCode> { 49 net::WebSocketFrameHeader::OpCode> {
50 static WebSocket::MessageType Convert( 50 static WebSocket::MessageType Convert(
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 uint32_t num_bytes, 227 uint32_t num_bytes,
228 const char* data) { 228 const char* data) {
229 std::vector<char> buffer(num_bytes); 229 std::vector<char> buffer(num_bytes);
230 memcpy(&buffer[0], data, num_bytes); 230 memcpy(&buffer[0], data, num_bytes);
231 DCHECK(channel_); 231 DCHECK(channel_);
232 channel_->SendFrame( 232 channel_->SendFrame(
233 fin, ConvertTo<net::WebSocketFrameHeader::OpCode>(type), buffer); 233 fin, ConvertTo<net::WebSocketFrameHeader::OpCode>(type), buffer);
234 } 234 }
235 235
236 } // namespace mojo 236 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698