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

Unified Diff: webkit/tools/test_shell/simple_socket_stream_bridge.cc

Issue 6474012: Create a path to deliver SocketStream errors to the renderer. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add unit test and test_shell code Created 9 years, 10 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 side-by-side diff with in-line comments
Download patch
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 */
« webkit/glue/websocketstreamhandle_impl.cc ('K') | « webkit/glue/websocketstreamhandle_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698