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

Side by Side Diff: content/browser/renderer_host/websocket_host.cc

Issue 34753008: Notify WebSocket connection failure, chromium side (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 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 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 #include "content/browser/renderer_host/websocket_host.h" 5 #include "content/browser/renderer_host/websocket_host.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/strings/string_util.h" 8 #include "base/strings/string_util.h"
9 #include "content/browser/renderer_host/websocket_dispatcher_host.h" 9 #include "content/browser/renderer_host/websocket_dispatcher_host.h"
10 #include "content/common/websocket_messages.h" 10 #include "content/common/websocket_messages.h"
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 // WebSocket extensions through to the renderer to make it visible to 62 // WebSocket extensions through to the renderer to make it visible to
63 // Javascript. 63 // Javascript.
64 virtual void OnAddChannelResponse( 64 virtual void OnAddChannelResponse(
65 bool fail, 65 bool fail,
66 const std::string& selected_subprotocol) OVERRIDE; 66 const std::string& selected_subprotocol) OVERRIDE;
67 virtual void OnDataFrame(bool fin, 67 virtual void OnDataFrame(bool fin,
68 WebSocketMessageType type, 68 WebSocketMessageType type,
69 const std::vector<char>& data) OVERRIDE; 69 const std::vector<char>& data) OVERRIDE;
70 virtual void OnClosingHandshake() OVERRIDE; 70 virtual void OnClosingHandshake() OVERRIDE;
71 virtual void OnFlowControl(int64 quota) OVERRIDE; 71 virtual void OnFlowControl(int64 quota) OVERRIDE;
72 virtual void OnDropChannel(uint16 code, 72 virtual void OnDropChannel(bool fail,
73 uint16 code,
73 const std::string& reason) OVERRIDE; 74 const std::string& reason) OVERRIDE;
74 75
75 private: 76 private:
76 WebSocketDispatcherHost* const dispatcher_; 77 WebSocketDispatcherHost* const dispatcher_;
77 const int routing_id_; 78 const int routing_id_;
78 79
79 DISALLOW_COPY_AND_ASSIGN(WebSocketEventHandler); 80 DISALLOW_COPY_AND_ASSIGN(WebSocketEventHandler);
80 }; 81 };
81 82
82 WebSocketEventHandler::WebSocketEventHandler( 83 WebSocketEventHandler::WebSocketEventHandler(
(...skipping 23 matching lines...) Expand all
106 void WebSocketEventHandler::OnClosingHandshake() { 107 void WebSocketEventHandler::OnClosingHandshake() {
107 dispatcher_->SendClosing(routing_id_); 108 dispatcher_->SendClosing(routing_id_);
108 // |this| may have been deleted here. 109 // |this| may have been deleted here.
109 } 110 }
110 111
111 void WebSocketEventHandler::OnFlowControl(int64 quota) { 112 void WebSocketEventHandler::OnFlowControl(int64 quota) {
112 dispatcher_->SendFlowControl(routing_id_, quota); 113 dispatcher_->SendFlowControl(routing_id_, quota);
113 // |this| may have been deleted here. 114 // |this| may have been deleted here.
114 } 115 }
115 116
116 void WebSocketEventHandler::OnDropChannel(uint16 code, 117 void WebSocketEventHandler::OnDropChannel(bool fail,
118 uint16 code,
117 const std::string& reason) { 119 const std::string& reason) {
118 dispatcher_->DoDropChannel(routing_id_, code, reason); 120 dispatcher_->DoDropChannel(routing_id_, fail, code, reason);
119 // |this| has been deleted here. 121 // |this| has been deleted here.
120 } 122 }
121 123
122 } // namespace 124 } // namespace
123 125
124 WebSocketHost::WebSocketHost(int routing_id, 126 WebSocketHost::WebSocketHost(int routing_id,
125 WebSocketDispatcherHost* dispatcher, 127 WebSocketDispatcherHost* dispatcher,
126 net::URLRequestContext* url_request_context) { 128 net::URLRequestContext* url_request_context) {
127 DVLOG(1) << "WebSocketHost: created routing_id= " << routing_id; 129 DVLOG(1) << "WebSocketHost: created routing_id= " << routing_id;
128 scoped_ptr<net::WebSocketEventInterface> event_interface( 130 scoped_ptr<net::WebSocketEventInterface> event_interface(
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 channel_->SendFrame(fin, MessageTypeToOpCode(type), data); 170 channel_->SendFrame(fin, MessageTypeToOpCode(type), data);
169 } 171 }
170 172
171 void WebSocketHost::OnFlowControl(int64 quota) { 173 void WebSocketHost::OnFlowControl(int64 quota) {
172 DVLOG(3) << "WebSocketHost::OnFlowControl" 174 DVLOG(3) << "WebSocketHost::OnFlowControl"
173 << " routing_id= " << routing_id_ << " quota= " << quota; 175 << " routing_id= " << routing_id_ << " quota= " << quota;
174 176
175 channel_->SendFlowControl(quota); 177 channel_->SendFlowControl(quota);
176 } 178 }
177 179
178 void WebSocketHost::OnDropChannel(uint16 code, const std::string& reason) { 180 void WebSocketHost::OnDropChannel(bool fail,
181 uint16 code,
182 const std::string& reason) {
179 DVLOG(3) << "WebSocketDispatcherHost::OnDropChannel" 183 DVLOG(3) << "WebSocketDispatcherHost::OnDropChannel"
180 << " routing_id= " << routing_id_ << " code= " << code 184 << " routing_id= " << routing_id_ << " fail = " << fail
181 << " reason= " << reason; 185 << " code= " << code << " reason= " << reason;
182 186
187 // TODO(yhirano): Use |fail| appropriately.
Adam Rice 2013/10/23 03:18:06 We should just delete the WebSocketChannel if |fai
yhirano 2013/10/23 05:42:23 Will do in a future CL.
183 channel_->StartClosingHandshake(code, reason); 188 channel_->StartClosingHandshake(code, reason);
184 } 189 }
185 190
186 191
187 } // namespace content 192 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698