Index: content/browser/renderer_host/websocket_host.cc |
diff --git a/content/browser/renderer_host/websocket_host.cc b/content/browser/renderer_host/websocket_host.cc |
index cd8dd25a9978ad47ca6478bf5ecd1ea3c6b80852..ddbb6e0982caa0b0dd482b74b0d4b14d137cd53f 100644 |
--- a/content/browser/renderer_host/websocket_host.cc |
+++ b/content/browser/renderer_host/websocket_host.cc |
@@ -367,7 +367,6 @@ |
} else { |
AddChannel(socket_url, requested_protocols, origin, render_frame_id); |
} |
- // |this| may have been deleted here. |
} |
void WebSocketHost::AddChannel( |
@@ -387,23 +386,12 @@ |
new WebSocketEventHandler(dispatcher_, routing_id_, render_frame_id)); |
channel_.reset( |
new net::WebSocketChannel(event_interface.Pass(), url_request_context_)); |
+ channel_->SendAddChannelRequest(socket_url, requested_protocols, origin); |
if (pending_flow_control_quota_ > 0) { |
- // channel_->SendFlowControl(pending_flow_control_quota_) must be called |
- // after channel_->SendAddChannelRequest() below. |
- // We post OnFlowControl() here using |weak_ptr_factory_| instead of |
- // calling SendFlowControl directly, because |this| may have been deleted |
- // after channel_->SendAddChannelRequest(). |
- base::MessageLoop::current()->PostTask( |
- FROM_HERE, |
- base::Bind(&WebSocketHost::OnFlowControl, |
- weak_ptr_factory_.GetWeakPtr(), |
- pending_flow_control_quota_)); |
+ channel_->SendFlowControl(pending_flow_control_quota_); |
pending_flow_control_quota_ = 0; |
} |
- |
- channel_->SendAddChannelRequest(socket_url, requested_protocols, origin); |
- // |this| may have been deleted here. |
} |
void WebSocketHost::OnSendFrame(bool fin, |