| 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,
|
| + WebKit::WebString::fromUTF8(error_description),
|
| + url_);
|
| + client_->didFail(handle_, error);
|
| + }
|
| +}
|
| +
|
| // WebSocketStreamHandleImpl ------------------------------------------------
|
|
|
| WebSocketStreamHandleImpl::WebSocketStreamHandleImpl()
|
|
|