Index: webkit/tools/test_shell/simple_socket_stream_bridge.cc |
diff --git a/webkit/tools/test_shell/simple_socket_stream_bridge.cc b/webkit/tools/test_shell/simple_socket_stream_bridge.cc |
index 4fc4cdb0468fc6c2eedd6aaec8da47251f053c79..6a1b1c266d51917c3521f1faad74ceccb67f301a 100644 |
--- a/webkit/tools/test_shell/simple_socket_stream_bridge.cc |
+++ b/webkit/tools/test_shell/simple_socket_stream_bridge.cc |
@@ -46,6 +46,7 @@ class WebSocketStreamHandleBridgeImpl |
virtual void OnReceivedData(net::SocketStream* req, |
const char* data, int len); |
virtual void OnClose(net::SocketStream* req); |
+ virtual void OnError(const net::SocketStream* req, int error); |
private: |
virtual ~WebSocketStreamHandleBridgeImpl(); |
@@ -60,6 +61,7 @@ class WebSocketStreamHandleBridgeImpl |
void DoOnSentData(int amount_sent); |
void DoOnReceivedData(std::vector<char>* data); |
void DoOnClose(); |
+ void DoOnError(int error); |
int socket_id_; |
MessageLoop* message_loop_; |
@@ -154,6 +156,15 @@ void WebSocketStreamHandleBridgeImpl::OnClose(net::SocketStream* socket) { |
NewRunnableMethod(this, &WebSocketStreamHandleBridgeImpl::DoOnClose)); |
} |
+void WebSocketStreamHandleBridgeImpl::OnError(const net::SocketStream* socket, |
+ int error) { |
+ ++num_pending_tasks_; |
+ message_loop_->PostTask( |
+ FROM_HERE, |
+ NewRunnableMethod(this, &WebSocketStreamHandleBridgeImpl::DoOnError, |
+ error)); |
+} |
+ |
void WebSocketStreamHandleBridgeImpl::DoConnect(const GURL& url) { |
DCHECK(MessageLoop::current() == g_io_thread); |
socket_ = net::SocketStreamJob::CreateSocketStreamJob(url, this); |
@@ -215,6 +226,13 @@ void WebSocketStreamHandleBridgeImpl::DoOnClose() { |
Release(); |
} |
+void WebSocketStreamHandleBridgeImpl::DoOnError(int error) { |
+ DCHECK(MessageLoop::current() == message_loop_); |
+ --num_pending_tasks_; |
+ if (delegate_) |
+ delegate_->DidFail(handle_, error); |
+} |
+ |
} // namespace |
/* static */ |