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

Unified Diff: webkit/glue/websocketstreamhandle_impl.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/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()

Powered by Google App Engine
This is Rietveld 408576698