diff options
author | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-11 23:43:44 +0000 |
---|---|---|
committer | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-11 23:43:44 +0000 |
commit | 3a8d685876ce9ea697f5ae206308c42592031b44 (patch) | |
tree | 050170d70e6aaadedc3e5994f7f1d4d2c1ee5a27 /net/spdy | |
parent | 01d4730859afc1d338da87331c44d68f91bfd7a2 (diff) | |
download | chromium_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.cc | 4 | ||||
-rw-r--r-- | net/spdy/spdy_http_stream.h | 1 | ||||
-rw-r--r-- | net/spdy/spdy_network_transaction_unittest.cc | 44 |
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[] = { |