Index: webkit/glue/websocketstreamhandle_impl.cc |
diff --git a/webkit/glue/websocketstreamhandle_impl.cc b/webkit/glue/websocketstreamhandle_impl.cc |
index d1c7ba070f80c95584070282eaefc48f216610ab..62f62a5403a0b06179b2670ca81a07d31387525e 100644 |
--- a/webkit/glue/websocketstreamhandle_impl.cc |
+++ b/webkit/glue/websocketstreamhandle_impl.cc |
@@ -12,9 +12,11 @@ |
#include "base/logging.h" |
#include "base/ref_counted.h" |
#include "base/scoped_ptr.h" |
+#include "net/base/net_errors.h" |
#include "third_party/WebKit/Source/WebKit/chromium/public/WebData.h" |
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebURL.h" |
+#include "third_party/WebKit/Source/WebKit/chromium/public/WebSocketStreamError.h" |
#include "third_party/WebKit/Source/WebKit/chromium/public/WebSocketStreamHandleClient.h" |
+#include "third_party/WebKit/Source/WebKit/chromium/public/WebURL.h" |
#include "webkit/glue/websocketstreamhandle_bridge.h" |
#include "webkit/glue/websocketstreamhandle_delegate.h" |
@@ -47,6 +49,7 @@ class WebSocketStreamHandleImpl::Context |
virtual void DidReceiveData( |
WebKit::WebSocketStreamHandle*, const char*, int); |
virtual void DidClose(WebKit::WebSocketStreamHandle*); |
+ virtual void DidFail(WebKit::WebSocketStreamHandle*, int); |
private: |
friend class base::RefCounted<Context>; |
@@ -58,6 +61,7 @@ class WebSocketStreamHandleImpl::Context |
WebSocketStreamHandleImpl* handle_; |
WebKit::WebSocketStreamHandleClient* client_; |
+ WebKit::WebURL url_; |
// |bridge_| is alive from Connect to DidClose, so Context must be alive |
// in the time period. |
scoped_refptr<WebSocketStreamHandleBridge> bridge_; |
@@ -76,6 +80,7 @@ void WebSocketStreamHandleImpl::Context::Connect(const WebKit::WebURL& url) { |
DCHECK(!bridge_); |
bridge_ = WebSocketStreamHandleBridge::Create(handle_, this); |
AddRef(); // Will be released by DidClose(). |
+ url_ = url; |
bridge_->Connect(url); |
} |
@@ -136,6 +141,19 @@ void WebSocketStreamHandleImpl::Context::DidClose( |
Release(); |
} |
+void WebSocketStreamHandleImpl::Context::DidFail( |
+ WebKit::WebSocketStreamHandle* web_handle, |
+ int error_code) { |
+ if (client_) { |
+ const char* error_description = net::ErrorToString(error_code); |
+ WebKit::WebSocketStreamError error( |
+ error_code, |
ukai
2011/05/10 08:10:39
when error_code is translated in WebKit's code?
we
Yuta Kitamura
2011/05/10 09:01:22
In WebKit, SocketStreamError's errorCode is consid
ukai
2011/05/10 10:00:29
Hmm. then I think we should refrain from using err
|
+ WebKit::WebString::fromUTF8(error_description), |
+ url_); |
+ client_->didFail(handle_, error); |
+ } |
+} |
+ |
// WebSocketStreamHandleImpl ------------------------------------------------ |
WebSocketStreamHandleImpl::WebSocketStreamHandleImpl() |