Index: content/common/socket_stream_dispatcher.cc |
diff --git a/content/common/socket_stream_dispatcher.cc b/content/common/socket_stream_dispatcher.cc |
index f573329d5d92ae9dfab6c197c57bc731b6bc9ab4..bbe711f8ebf6c3a483155c195fba8f9811c2fe83 100644 |
--- a/content/common/socket_stream_dispatcher.cc |
+++ b/content/common/socket_stream_dispatcher.cc |
@@ -5,7 +5,6 @@ |
#include "content/common/socket_stream_dispatcher.h" |
#include <vector> |
- |
#include "base/bind.h" |
#include "base/id_map.h" |
#include "base/lazy_instance.h" |
@@ -46,6 +45,7 @@ class IPCWebSocketStreamHandleBridge |
void OnSentData(int amount_sent); |
void OnReceivedData(const std::vector<char>& data); |
void OnClosed(); |
+ void OnFailed(int error_code); |
private: |
virtual ~IPCWebSocketStreamHandleBridge(); |
@@ -139,6 +139,13 @@ void IPCWebSocketStreamHandleBridge::OnClosed() { |
Release(); |
} |
+void IPCWebSocketStreamHandleBridge::OnFailed(int error_code) { |
+ DVLOG(1) << "IPCWebSocketStreamHandleBridge::OnFailed"; |
+ if (delegate_) { |
+ delegate_->DidFail(handle_, error_code); |
+ } |
+} |
+ |
void IPCWebSocketStreamHandleBridge::DoConnect(const GURL& url) { |
DCHECK(child_thread_); |
DCHECK_EQ(socket_id_, content::kNoSocketId); |
@@ -187,6 +194,7 @@ bool SocketStreamDispatcher::OnMessageReceived(const IPC::Message& msg) { |
IPC_MESSAGE_HANDLER(SocketStreamMsg_SentData, OnSentData) |
IPC_MESSAGE_HANDLER(SocketStreamMsg_ReceivedData, OnReceivedData) |
IPC_MESSAGE_HANDLER(SocketStreamMsg_Closed, OnClosed) |
+ IPC_MESSAGE_HANDLER(SocketStreamMsg_Failed, OnFailed) |
IPC_MESSAGE_UNHANDLED(handled = false) |
IPC_END_MESSAGE_MAP() |
return handled; |
@@ -231,3 +239,12 @@ void SocketStreamDispatcher::OnClosed(int socket_id) { |
else |
DLOG(ERROR) << "No SocketStreamHandleBridge for socket_id=" << socket_id; |
} |
+ |
+void SocketStreamDispatcher::OnFailed(int socket_id, int error_code) { |
+ IPCWebSocketStreamHandleBridge* bridge = |
+ IPCWebSocketStreamHandleBridge::FromSocketId(socket_id); |
+ if (bridge) |
+ bridge->OnFailed(error_code); |
+ else |
+ DLOG(ERROR) << "No SocketStreamHandleBridge for socket_id=" << socket_id; |
+} |