diff options
author | satish@chromium.org <satish@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-04 17:53:22 +0000 |
---|---|---|
committer | satish@chromium.org <satish@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-04 17:53:22 +0000 |
commit | 0c9bf87fe0b87849105fc7a2ea16280e48ee9089 (patch) | |
tree | 8858b7c1f6c1071b2a0f93a92c72f08dcb0ad96d /net/url_request | |
parent | 27030d8d5d54002e1baaf19fefd909ebfb82de40 (diff) | |
download | chromium_src-0c9bf87fe0b87849105fc7a2ea16280e48ee9089.zip chromium_src-0c9bf87fe0b87849105fc7a2ea16280e48ee9089.tar.gz chromium_src-0c9bf87fe0b87849105fc7a2ea16280e48ee9089.tar.bz2 |
Add chunked uploads support to SPDY
As part of this, I had to move the chunked encoding part from UploadData::Element::SetChunk
to HttpStreamParser::DoSendBody as SPDY doesn't have this encoded format and UploadData
needs to serve both.
BUG=none
TEST=net_unittests (2 new tests added)
Committed and rolled back: http://src.chromium.org/viewvc/chrome?view=rev&revision=76892
Review URL: http://codereview.chromium.org/6292013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@76930 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/url_request')
-rw-r--r-- | net/url_request/url_request.cc | 12 | ||||
-rw-r--r-- | net/url_request/url_request.h | 7 | ||||
-rw-r--r-- | net/url_request/url_request_unittest.cc | 13 |
3 files changed, 13 insertions, 19 deletions
diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc index e25bac6..5af99ea 100644 --- a/net/url_request/url_request.cc +++ b/net/url_request/url_request.cc @@ -184,17 +184,13 @@ void URLRequest::EnableChunkedUpload() { } } -void URLRequest::AppendChunkToUpload(const char* bytes, int bytes_len) { +void URLRequest::AppendChunkToUpload(const char* bytes, + int bytes_len, + bool is_last_chunk) { DCHECK(upload_); DCHECK(upload_->is_chunked()); DCHECK_GT(bytes_len, 0); - upload_->AppendChunk(bytes, bytes_len); -} - -void URLRequest::MarkEndOfChunks() { - DCHECK(upload_); - DCHECK(upload_->is_chunked()); - upload_->AppendChunk(NULL, 0); + upload_->AppendChunk(bytes, bytes_len, is_last_chunk); } void URLRequest::set_upload(net::UploadData* upload) { diff --git a/net/url_request/url_request.h b/net/url_request/url_request.h index a2ad24b..849a03b 100644 --- a/net/url_request/url_request.h +++ b/net/url_request/url_request.h @@ -330,10 +330,9 @@ class URLRequest : public base::NonThreadSafe { // call MarkEndOfChunks() to indicate the end of upload data. // // This method may be called only after calling EnableChunkedUpload(). - void AppendChunkToUpload(const char* bytes, int bytes_len); - - // Indicates the end of a chunked transfer encoded request body. - void MarkEndOfChunks(); + void AppendChunkToUpload(const char* bytes, + int bytes_len, + bool is_last_chunk); // Set the upload data directly. void set_upload(net::UploadData* upload); diff --git a/net/url_request/url_request_unittest.cc b/net/url_request/url_request_unittest.cc index 5e03f9b..d0b8f58 100644 --- a/net/url_request/url_request_unittest.cc +++ b/net/url_request/url_request_unittest.cc @@ -178,13 +178,12 @@ class URLRequestTestHTTP : public URLRequestTest { } void AddChunksToUpload(TestURLRequest* r) { - r->AppendChunkToUpload("a", 1); - r->AppendChunkToUpload("bcd", 3); - r->AppendChunkToUpload("this is a longer chunk than before.", 35); - r->AppendChunkToUpload("\r\n\r\n", 4); - r->AppendChunkToUpload("0", 1); - r->AppendChunkToUpload("2323", 4); - r->MarkEndOfChunks(); + r->AppendChunkToUpload("a", 1, false); + r->AppendChunkToUpload("bcd", 3, false); + r->AppendChunkToUpload("this is a longer chunk than before.", 35, false); + r->AppendChunkToUpload("\r\n\r\n", 4, false); + r->AppendChunkToUpload("0", 1, false); + r->AppendChunkToUpload("2323", 4, true); } void VerifyReceivedDataMatchesChunks(TestURLRequest* r, TestDelegate* d) { |