Index: content/common/websocket_messages.h |
diff --git a/content/common/websocket_messages.h b/content/common/websocket_messages.h |
index 5a9304f8a700888fcfc2b5c7b72fdf566ac5341e..233aacf1af17291f30146bd9165c33e6f3cd3fb1 100644 |
--- a/content/common/websocket_messages.h |
+++ b/content/common/websocket_messages.h |
@@ -43,7 +43,7 @@ IPC_MESSAGE_ROUTED3(WebSocketHostMsg_AddChannelRequest, |
std::vector<std::string> /* requested_protocols */, |
GURL /* origin */) |
-// Web Socket messages sent from the browser to the renderer. |
+// WebSocket messages sent from the browser to the renderer. |
// Respond to an AddChannelRequest for channel |channel_id|. |channel_id| is |
// scoped to the renderer process; while it is unique per-renderer, the browser |
@@ -59,6 +59,19 @@ IPC_MESSAGE_ROUTED3(WebSocketMsg_AddChannelResponse, |
std::string /* selected_protocol */, |
std::string /* extensions */) |
+// Notify the renderer that the browser is required to fail the connection |
+// (see RFC6455 7.1.7 for details). |
+// When the renderer process receives this messages it does the following: |
+// 1. Fire an error event. |
+// 2. Show |message| to the inspector. |
+// 3. Close the channel immediately uncleanly, as if it received |
+// DropChannel(was_clean = false, code = 1006, reason = ""). |
+// |message| will be shown in the inspector and won't be passed to the script. |
+// TODO(yhirano): Find the way to pass |message| directly to the inspector |
+// process. |
+IPC_MESSAGE_ROUTED1(WebSocketMsg_NotifyFailure, |
+ std::string /* message */) |
+ |
// WebSocket messages that can be sent in either direction. |
IPC_ENUM_TRAITS(content::WebSocketMessageType) |
@@ -100,6 +113,12 @@ IPC_MESSAGE_ROUTED1(WebSocketMsg_FlowControl, |
// UTF-8 encoded string which may be useful for debugging but is not necessarily |
// human-readable, as supplied by the server in the Close or DropChannel |
// message. |
-IPC_MESSAGE_ROUTED2(WebSocketMsg_DropChannel, |
+// If |was_clean| is false on a message from the browser, then the WebSocket |
+// connection was not closed cleanly. If |was_clean| is false on a message from |
+// the renderer, then the connection should be closed immediately without a |
+// closing handshake and the renderer cannot accept any new messages on this |
+// connection. |
+IPC_MESSAGE_ROUTED3(WebSocketMsg_DropChannel, |
+ bool /* was_clean */, |
unsigned short /* code */, |
std::string /* reason */) |