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

Side by Side Diff: content/common/websocket_messages.h

Issue 1664743002: [OBSOLETE][DO NOT SUBMIT][DO NOT COMMIT]] Browser-side implementation of WebSocket Blob receive. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@websocket_blob_send_sender
Patch Set: Now actually works. Created 4 years, 10 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
« no previous file with comments | « content/common/websocket.h ('k') | content/content_browser.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 // Multiply-included message file, hence no include guard. 5 // Multiply-included message file, hence no include guard.
6 6
7 // This file defines the IPCs for the browser-side implementation of 7 // This file defines the IPCs for the browser-side implementation of
8 // WebSockets. 8 // WebSockets.
9 // 9 //
10 // This IPC interface was originally desined based on the WebSocket 10 // This IPC interface was originally desined based on the WebSocket
(...skipping 28 matching lines...) Expand all
39 #include "url/gurl.h" 39 #include "url/gurl.h"
40 #include "url/origin.h" 40 #include "url/origin.h"
41 41
42 #undef IPC_MESSAGE_EXPORT 42 #undef IPC_MESSAGE_EXPORT
43 #define IPC_MESSAGE_EXPORT CONTENT_EXPORT 43 #define IPC_MESSAGE_EXPORT CONTENT_EXPORT
44 #define IPC_MESSAGE_START WebSocketMsgStart 44 #define IPC_MESSAGE_START WebSocketMsgStart
45 45
46 IPC_ENUM_TRAITS_MAX_VALUE(content::WebSocketMessageType, 46 IPC_ENUM_TRAITS_MAX_VALUE(content::WebSocketMessageType,
47 content::WEB_SOCKET_MESSAGE_TYPE_LAST) 47 content::WEB_SOCKET_MESSAGE_TYPE_LAST)
48 48
49 IPC_ENUM_TRAITS_MAX_VALUE(content::WebSocketBinaryType,
50 content::WebSocketBinaryType::LAST)
51
49 IPC_STRUCT_TRAITS_BEGIN(content::WebSocketHandshakeRequest) 52 IPC_STRUCT_TRAITS_BEGIN(content::WebSocketHandshakeRequest)
50 IPC_STRUCT_TRAITS_MEMBER(url) 53 IPC_STRUCT_TRAITS_MEMBER(url)
51 IPC_STRUCT_TRAITS_MEMBER(headers) 54 IPC_STRUCT_TRAITS_MEMBER(headers)
52 IPC_STRUCT_TRAITS_MEMBER(headers_text) 55 IPC_STRUCT_TRAITS_MEMBER(headers_text)
53 IPC_STRUCT_TRAITS_MEMBER(request_time) 56 IPC_STRUCT_TRAITS_MEMBER(request_time)
54 IPC_STRUCT_TRAITS_END() 57 IPC_STRUCT_TRAITS_END()
55 58
56 IPC_STRUCT_TRAITS_BEGIN(content::WebSocketHandshakeResponse) 59 IPC_STRUCT_TRAITS_BEGIN(content::WebSocketHandshakeResponse)
57 IPC_STRUCT_TRAITS_MEMBER(url) 60 IPC_STRUCT_TRAITS_MEMBER(url)
58 IPC_STRUCT_TRAITS_MEMBER(status_code) 61 IPC_STRUCT_TRAITS_MEMBER(status_code)
(...skipping 24 matching lines...) Expand all
83 // quota. See the design doc at 86 // quota. See the design doc at
84 // https://docs.google.com/document/d/1CDiXB9pBumhFVVfmIn1CRI6v6byxyqWu2urEE9xp7 14/edit 87 // https://docs.google.com/document/d/1CDiXB9pBumhFVVfmIn1CRI6v6byxyqWu2urEE9xp7 14/edit
85 // SendFrame or SendBlob IPCs must not be sent by the renderer until the 88 // SendFrame or SendBlob IPCs must not be sent by the renderer until the
86 // BlobSendComplete message has been received from the browser. The renderer 89 // BlobSendComplete message has been received from the browser. The renderer
87 // should retain a reference to the Blob until either a BlobSendComplete or 90 // should retain a reference to the Blob until either a BlobSendComplete or
88 // NotifyFailure IPC is received. 91 // NotifyFailure IPC is received.
89 IPC_MESSAGE_ROUTED2(WebSocketHostMsg_SendBlob, 92 IPC_MESSAGE_ROUTED2(WebSocketHostMsg_SendBlob,
90 std::string /* uuid */, 93 std::string /* uuid */,
91 uint64_t /* expected_size */) 94 uint64_t /* expected_size */)
92 95
96 // Indicate that the type for receiving Binary messages has changed. The
97 // default type is WebSocketBinaryType::BLOB. In this mode the browser will
98 // build Blobs from received messages and transmit them to the renderer with a
99 // WebSocketMsg_BlobReceived IPC. The type can be changed to
100 // WebSocketBinaryType::ARRAY_BUFFER, in which case Binary messages will be sent
101 // to the renderer with WebSocketMsg_SendFrame IPCs in the same way as for Text
102 // messages. Changes to the type only take effect at the start of the next
103 // Binary message, so the render process has to be prepared to deal with a
104 // message of the "wrong" type.
105 IPC_MESSAGE_ROUTED1(WebSocketHostMsg_BinaryTypeChanged,
106 content::WebSocketBinaryType /* new_type */);
107
108 // After taking a reference to a Blob received via a WebSocketMsg_BlobReceived
109 // IPC, the renderer should send this IPC to indicate that the browser no longer
110 // needs to hold a reference to the Blob. There is no need to indicate which
111 // Blob; they are confirmed in strict FIFO order.
112 IPC_MESSAGE_ROUTED0(WebSocketHostMsg_BlobConfirmed);
113
93 // WebSocket messages sent from the browser to the renderer. 114 // WebSocket messages sent from the browser to the renderer.
94 115
95 // Respond to an AddChannelRequest. |selected_protocol| is the sub-protocol the 116 // Respond to an AddChannelRequest. |selected_protocol| is the sub-protocol the
96 // server selected, or empty if no sub-protocol was selected. |extensions| is 117 // server selected, or empty if no sub-protocol was selected. |extensions| is
97 // the list of extensions negotiated for the connection. 118 // the list of extensions negotiated for the connection.
98 IPC_MESSAGE_ROUTED2(WebSocketMsg_AddChannelResponse, 119 IPC_MESSAGE_ROUTED2(WebSocketMsg_AddChannelResponse,
99 std::string /* selected_protocol */, 120 std::string /* selected_protocol */,
100 std::string /* extensions */) 121 std::string /* extensions */)
101 122
102 // Notify the renderer that the browser has started an opening handshake. 123 // Notify the renderer that the browser has started an opening handshake.
(...skipping 23 matching lines...) Expand all
126 // TODO(yhirano): Find the way to pass |message| directly to the inspector 147 // TODO(yhirano): Find the way to pass |message| directly to the inspector
127 // process. 148 // process.
128 IPC_MESSAGE_ROUTED1(WebSocketMsg_NotifyFailure, 149 IPC_MESSAGE_ROUTED1(WebSocketMsg_NotifyFailure,
129 std::string /* message */) 150 std::string /* message */)
130 151
131 // Indicates tbat the current Blob has finished sending. The renderer can 152 // Indicates tbat the current Blob has finished sending. The renderer can
132 // release its reference on the Blob, and may now use SendFrame or SendBlob to 153 // release its reference on the Blob, and may now use SendFrame or SendBlob to
133 // send more messages. 154 // send more messages.
134 IPC_MESSAGE_ROUTED0(WebSocketMsg_BlobSendComplete); 155 IPC_MESSAGE_ROUTED0(WebSocketMsg_BlobSendComplete);
135 156
157 // Indicates that a complete binary message has been received and stored in a
158 // Blob. The Blob does not count against the flow control quota supplied by the
159 // render process.
160 IPC_MESSAGE_ROUTED2(WebSocketMsg_BlobReceived,
161 std::string /* uuid */,
162 uint64_t /* size */);
163
136 // WebSocket messages that can be sent in either direction. 164 // WebSocket messages that can be sent in either direction.
137 165
138 // Send a non-control frame to the channel. 166 // Send a non-control frame to the channel.
139 // - If the sender is the renderer, it will be sent to the remote server. 167 // - If the sender is the renderer, it will be sent to the remote server.
140 // - If the sender is the browser, it comes from the remote server. 168 // - If the sender is the browser, it comes from the remote server.
141 // 169 //
142 // - |fin| indicates that this frame is the last in the current message. 170 // - |fin| indicates that this frame is the last in the current message.
143 // - |type| is the type of the message. On the first frame of a message, it 171 // - |type| is the type of the message. On the first frame of a message, it
144 // must be set to either WEB_SOCKET_MESSAGE_TYPE_TEXT or 172 // must be set to either WEB_SOCKET_MESSAGE_TYPE_TEXT or
145 // WEB_SOCKET_MESSAGE_TYPE_BINARY. On subsequent frames, it must be set to 173 // WEB_SOCKET_MESSAGE_TYPE_BINARY. On subsequent frames, it must be set to
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 // a closing handshake and the renderer cannot accept any new messages on this 214 // a closing handshake and the renderer cannot accept any new messages on this
187 // connection. 215 // connection.
188 IPC_MESSAGE_ROUTED3(WebSocketMsg_DropChannel, 216 IPC_MESSAGE_ROUTED3(WebSocketMsg_DropChannel,
189 bool /* was_clean */, 217 bool /* was_clean */,
190 unsigned short /* code */, 218 unsigned short /* code */,
191 std::string /* reason */) 219 std::string /* reason */)
192 220
193 // Notify the renderer that a closing handshake has been initiated by the 221 // Notify the renderer that a closing handshake has been initiated by the
194 // server, so that it can set the Javascript readyState to CLOSING. 222 // server, so that it can set the Javascript readyState to CLOSING.
195 IPC_MESSAGE_ROUTED0(WebSocketMsg_NotifyClosing) 223 IPC_MESSAGE_ROUTED0(WebSocketMsg_NotifyClosing)
OLDNEW
« no previous file with comments | « content/common/websocket.h ('k') | content/content_browser.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698