summaryrefslogtreecommitdiffstats
path: root/net/spdy
diff options
context:
space:
mode:
authorwillchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-11 23:43:44 +0000
committerwillchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-11 23:43:44 +0000
commit3a8d685876ce9ea697f5ae206308c42592031b44 (patch)
tree050170d70e6aaadedc3e5994f7f1d4d2c1ee5a27 /net/spdy
parent01d4730859afc1d338da87331c44d68f91bfd7a2 (diff)
downloadchromium_src-3a8d685876ce9ea697f5ae206308c42592031b44.zip
chromium_src-3a8d685876ce9ea697f5ae206308c42592031b44.tar.gz
chromium_src-3a8d685876ce9ea697f5ae206308c42592031b44.tar.bz2
Don't drain response bodies for SpdyHttpStreams.
This should fix the specific instance of crbug.com/75657, although I can't reproduce the bug, so it's possible it may instead push the bug later down the pipeline rather than completely fixing it. I believe it should completely fix it though. This is a partial reland of r77399, which was reverted in order to faciliate this partial reland so I can merge a smaller change into branch 696. BUG=75657 TEST=none Review URL: http://codereview.chromium.org/6680009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77893 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/spdy')
-rw-r--r--net/spdy/spdy_http_stream.cc4
-rw-r--r--net/spdy/spdy_http_stream.h1
-rw-r--r--net/spdy/spdy_network_transaction_unittest.cc44
3 files changed, 28 insertions, 21 deletions
diff --git a/net/spdy/spdy_http_stream.cc b/net/spdy/spdy_http_stream.cc
index 51a2efd..130a818 100644
--- a/net/spdy/spdy_http_stream.cc
+++ b/net/spdy/spdy_http_stream.cc
@@ -463,4 +463,8 @@ void SpdyHttpStream::GetSSLCertRequestInfo(
stream_->GetSSLCertRequestInfo(cert_request_info);
}
+bool SpdyHttpStream::IsSpdyHttpStream() const {
+ return true;
+}
+
} // namespace net
diff --git a/net/spdy/spdy_http_stream.h b/net/spdy/spdy_http_stream.h
index bdae342..4c00e0f 100644
--- a/net/spdy/spdy_http_stream.h
+++ b/net/spdy/spdy_http_stream.h
@@ -65,6 +65,7 @@ class SpdyHttpStream : public SpdyStream::Delegate, public HttpStream {
virtual void SetConnectionReused();
virtual void GetSSLInfo(SSLInfo* ssl_info);
virtual void GetSSLCertRequestInfo(SSLCertRequestInfo* cert_request_info);
+ virtual bool IsSpdyHttpStream() const;
// SpdyStream::Delegate methods:
virtual bool OnSendHeadersComplete(int status);
diff --git a/net/spdy/spdy_network_transaction_unittest.cc b/net/spdy/spdy_network_transaction_unittest.cc
index 94ef61d..acfb7ea 100644
--- a/net/spdy/spdy_network_transaction_unittest.cc
+++ b/net/spdy/spdy_network_transaction_unittest.cc
@@ -2530,20 +2530,6 @@ TEST_P(SpdyNetworkTransactionTest, RedirectServerPush) {
"version",
"HTTP/1.1"
};
- const char* const kStandardGetHeaders2[] = {
- "host",
- "www.foo.com",
- "method",
- "GET",
- "scheme",
- "http",
- "url",
- "/index.php",
- "user-agent",
- "",
- "version",
- "HTTP/1.1"
- };
// Setup writes/reads to www.google.com
scoped_ptr<spdy::SpdyFrame> req(
@@ -2552,12 +2538,6 @@ TEST_P(SpdyNetworkTransactionTest, RedirectServerPush) {
arraysize(kExtraHeaders) / 2,
kStandardGetHeaders,
arraysize(kStandardGetHeaders) / 2));
- scoped_ptr<spdy::SpdyFrame> req2(
- ConstructSpdyPacket(kSynStartHeader,
- kExtraHeaders,
- arraysize(kExtraHeaders) / 2,
- kStandardGetHeaders2,
- arraysize(kStandardGetHeaders2) / 2));
scoped_ptr<spdy::SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1));
scoped_ptr<spdy::SpdyFrame> rep(
ConstructSpdyPush(NULL,
@@ -2568,18 +2548,40 @@ TEST_P(SpdyNetworkTransactionTest, RedirectServerPush) {
"301 Moved Permanently",
"http://www.foo.com/index.php"));
scoped_ptr<spdy::SpdyFrame> body(ConstructSpdyBodyFrame(1, true));
+ scoped_ptr<spdy::SpdyFrame> rst(ConstructSpdyRstStream(2, spdy::CANCEL));
MockWrite writes[] = {
CreateMockWrite(*req, 1),
+ CreateMockWrite(*rst, 6),
};
MockRead reads[] = {
CreateMockRead(*resp, 2),
CreateMockRead(*rep, 3),
CreateMockRead(*body, 4),
MockRead(true, ERR_IO_PENDING, 5), // Force a pause
- MockRead(true, 0, 0, 6) // EOF
+ MockRead(true, 0, 0, 7) // EOF
};
// Setup writes/reads to www.foo.com
+ const char* const kStandardGetHeaders2[] = {
+ "host",
+ "www.foo.com",
+ "method",
+ "GET",
+ "scheme",
+ "http",
+ "url",
+ "/index.php",
+ "user-agent",
+ "",
+ "version",
+ "HTTP/1.1"
+ };
+ scoped_ptr<spdy::SpdyFrame> req2(
+ ConstructSpdyPacket(kSynStartHeader,
+ kExtraHeaders,
+ arraysize(kExtraHeaders) / 2,
+ kStandardGetHeaders2,
+ arraysize(kStandardGetHeaders2) / 2));
scoped_ptr<spdy::SpdyFrame> resp2(ConstructSpdyGetSynReply(NULL, 0, 1));
scoped_ptr<spdy::SpdyFrame> body2(ConstructSpdyBodyFrame(1, true));
MockWrite writes2[] = {