Index: net/url_request/url_request.cc |
diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc |
index 26a9da247bafa28df8affbaca15144b914aecb38..de882838b84a4eed3bbef9ec7d229379150e478b 100644 |
--- a/net/url_request/url_request.cc |
+++ b/net/url_request/url_request.cc |
@@ -102,6 +102,7 @@ URLRequest::URLRequest(const GURL& url, Delegate* delegate) |
delegate_(delegate), |
is_pending_(false), |
enable_profiling_(false), |
+ chunked_transfer_upload_(false), |
redirect_limit_(kMaxRedirects), |
final_upload_progress_(0), |
priority_(net::LOWEST) { |
@@ -160,6 +161,17 @@ void URLRequest::AppendFileRangeToUpload( |
expected_modification_time); |
} |
+void URLRequest::AppendChunkToUpload(const char* bytes, int bytes_len) { |
+ DCHECK(bytes_len > 0); |
+ DCHECK(upload_); |
+ upload_->AppendChunk(bytes, bytes_len); |
+} |
+ |
+void URLRequest::MarkEndOfChunks() { |
+ DCHECK(upload_); |
+ upload_->AppendChunk(NULL, 0); |
+} |
+ |
void URLRequest::set_upload(net::UploadData* upload) { |
upload_ = upload; |
} |
@@ -316,6 +328,12 @@ GURL URLRequest::GetSanitizedReferrer() const { |
} |
void URLRequest::Start() { |
+ if (chunked_transfer_upload_) { |
+ DCHECK(!upload_); |
+ upload_ = new UploadData(); |
+ upload_->set_is_chunked(true); |
+ } |
+ |
StartJob(URLRequestJobManager::GetInstance()->CreateJob(this)); |
} |