| 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 05c9e74d7b811b6038ab28b3085285eea6e3ce31..f4577a231a5e6400121b27c7b149bdc4807f1b90 100644
|
| --- a/webkit/tools/test_shell/simple_socket_stream_bridge.cc
|
| +++ b/webkit/tools/test_shell/simple_socket_stream_bridge.cc
|
| @@ -48,6 +48,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_code);
|
|
|
| private:
|
| virtual ~WebSocketStreamHandleBridgeImpl();
|
| @@ -62,6 +63,7 @@ class WebSocketStreamHandleBridgeImpl
|
| void DoOnSentData(int amount_sent);
|
| void DoOnReceivedData(std::vector<char>* data);
|
| void DoOnClose();
|
| + void DoOnError(int error_code);
|
|
|
| int socket_id_;
|
| MessageLoop* message_loop_;
|
| @@ -154,6 +156,15 @@ void WebSocketStreamHandleBridgeImpl::OnClose(net::SocketStream* socket) {
|
| base::Bind(&WebSocketStreamHandleBridgeImpl::DoOnClose, this));
|
| }
|
|
|
| +void WebSocketStreamHandleBridgeImpl::OnError(
|
| + const net::SocketStream* socket, int error_code) {
|
| + base::subtle::NoBarrier_AtomicIncrement(&num_pending_tasks_, 1);
|
| + message_loop_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&WebSocketStreamHandleBridgeImpl::DoOnError, this,
|
| + error_code));
|
| +}
|
| +
|
| void WebSocketStreamHandleBridgeImpl::DoConnect(const GURL& url) {
|
| DCHECK(MessageLoop::current() == g_io_thread);
|
| socket_ = net::SocketStreamJob::CreateSocketStreamJob(
|
| @@ -217,6 +228,13 @@ void WebSocketStreamHandleBridgeImpl::DoOnClose() {
|
| Release();
|
| }
|
|
|
| +void WebSocketStreamHandleBridgeImpl::DoOnError(int error_code) {
|
| + DCHECK(MessageLoop::current() == message_loop_);
|
| + base::subtle::NoBarrier_AtomicIncrement(&num_pending_tasks_, -1);
|
| + if (delegate_)
|
| + delegate_->DidFail(handle_, error_code);
|
| +}
|
| +
|
| } // namespace
|
|
|
| /* static */
|
|
|