summaryrefslogtreecommitdiffstats
path: root/net/socket_stream
diff options
context:
space:
mode:
authortyoshino@chromium.org <tyoshino@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-02 07:38:20 +0000
committertyoshino@chromium.org <tyoshino@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-02 07:38:20 +0000
commit4a7b13f1c548525185009511c0e0dd12f82e0560 (patch)
treedb31bb445fc54c0ce1d0afc27671da5e4665bb87 /net/socket_stream
parentd4058c6fe34dc0399e3d928151298be0811ba902 (diff)
downloadchromium_src-4a7b13f1c548525185009511c0e0dd12f82e0560.zip
chromium_src-4a7b13f1c548525185009511c0e0dd12f82e0560.tar.gz
chromium_src-4a7b13f1c548525185009511c0e0dd12f82e0560.tar.bz2
Websocket should fire 'error' event if no server available
Implement OnError virtual function, when network is down, OnError can be invoked. Send error code to render process from browser process through IPC. This patch depends on Blink side patch which can be found from https://codereview.chromium.org/14071008/ BUG=128057 TEST= Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=196728 R=avi@chromium.org, jln@chromium.org, kinuko@chromium.org, tyoshino@chromium.org, yutak@chromium.org Review URL: https://codereview.chromium.org/10668018 Patch from Li Yin <li.yin@intel.com>. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@197854 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/socket_stream')
-rw-r--r--net/socket_stream/socket_stream.cc3
-rw-r--r--net/socket_stream/socket_stream_unittest.cc12
2 files changed, 6 insertions, 9 deletions
diff --git a/net/socket_stream/socket_stream.cc b/net/socket_stream/socket_stream.cc
index f610f62..8e5fa70 100644
--- a/net/socket_stream/socket_stream.cc
+++ b/net/socket_stream/socket_stream.cc
@@ -358,7 +358,8 @@ void SocketStream::Finish(int result) {
Delegate* delegate = delegate_;
delegate_ = NULL;
if (delegate) {
- delegate->OnError(this, result);
+ if (result != ERR_CONNECTION_CLOSED)
+ delegate->OnError(this, result);
if (result != ERR_PROTOCOL_SWITCHED)
delegate->OnClose(this);
}
diff --git a/net/socket_stream/socket_stream_unittest.cc b/net/socket_stream/socket_stream_unittest.cc
index e98e0df..b0734fc 100644
--- a/net/socket_stream/socket_stream_unittest.cc
+++ b/net/socket_stream/socket_stream_unittest.cc
@@ -356,7 +356,7 @@ TEST_F(SocketStreamTest, CloseFlushPendingWrite) {
test_callback.WaitForResult();
const std::vector<SocketStreamEvent>& events = delegate->GetSeenEvents();
- ASSERT_EQ(8U, events.size());
+ ASSERT_EQ(7U, events.size());
EXPECT_EQ(SocketStreamEvent::EVENT_START_OPEN_CONNECTION,
events[0].event_type);
@@ -365,9 +365,7 @@ TEST_F(SocketStreamTest, CloseFlushPendingWrite) {
EXPECT_EQ(SocketStreamEvent::EVENT_RECEIVED_DATA, events[3].event_type);
EXPECT_EQ(SocketStreamEvent::EVENT_SENT_DATA, events[4].event_type);
EXPECT_EQ(SocketStreamEvent::EVENT_SENT_DATA, events[5].event_type);
- EXPECT_EQ(SocketStreamEvent::EVENT_ERROR, events[6].event_type);
- EXPECT_EQ(ERR_CONNECTION_CLOSED, events[6].error_code);
- EXPECT_EQ(SocketStreamEvent::EVENT_CLOSE, events[7].event_type);
+ EXPECT_EQ(SocketStreamEvent::EVENT_CLOSE, events[6].event_type);
}
TEST_F(SocketStreamTest, ExceedMaxPendingSendAllowed) {
@@ -645,7 +643,7 @@ TEST_F(SocketStreamTest, IOPending) {
EXPECT_EQ(OK, test_callback.WaitForResult());
const std::vector<SocketStreamEvent>& events = delegate->GetSeenEvents();
- ASSERT_EQ(8U, events.size());
+ ASSERT_EQ(7U, events.size());
EXPECT_EQ(SocketStreamEvent::EVENT_START_OPEN_CONNECTION,
events[0].event_type);
@@ -654,9 +652,7 @@ TEST_F(SocketStreamTest, IOPending) {
EXPECT_EQ(SocketStreamEvent::EVENT_RECEIVED_DATA, events[3].event_type);
EXPECT_EQ(SocketStreamEvent::EVENT_SENT_DATA, events[4].event_type);
EXPECT_EQ(SocketStreamEvent::EVENT_SENT_DATA, events[5].event_type);
- EXPECT_EQ(SocketStreamEvent::EVENT_ERROR, events[6].event_type);
- EXPECT_EQ(ERR_CONNECTION_CLOSED, events[6].error_code);
- EXPECT_EQ(SocketStreamEvent::EVENT_CLOSE, events[7].event_type);
+ EXPECT_EQ(SocketStreamEvent::EVENT_CLOSE, events[6].event_type);
}
TEST_F(SocketStreamTest, SwitchToSpdy) {