net: Change argument of URLRequest::set_upload from UploadData to UploadDataStream

Users of URLRequest are now responsible to create UploadDataStream.
UploadOwnedBytesElementReader is moved from upload_data_stream.cc to upload_bytes_element_reader.h.

BUG=156574
TEST=net_unittests and git try
[email protected] for cloud_print/service/service_state.cc

Review URL: https://chromiumcodereview.appspot.com/11439008

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@173318 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/content/browser/download/download_manager_impl.cc b/content/browser/download/download_manager_impl.cc
index c6eb7d56..92e117a 100644
--- a/content/browser/download/download_manager_impl.cc
+++ b/content/browser/download/download_manager_impl.cc
@@ -40,7 +40,8 @@
 #include "content/public/browser/resource_context.h"
 #include "content/public/browser/web_contents_delegate.h"
 #include "net/base/load_flags.h"
-#include "net/base/upload_data.h"
+#include "net/base/upload_bytes_element_reader.h"
+#include "net/base/upload_data_stream.h"
 #include "net/url_request/url_request_context.h"
 #include "webkit/glue/webkit_glue.h"
 
@@ -61,10 +62,11 @@
   request->set_load_flags(request->load_flags() | params->load_flags());
   request->set_method(params->method());
   if (!params->post_body().empty()) {
-    scoped_refptr<net::UploadData> upload_data(new net::UploadData());
-    upload_data->AppendBytes(params->post_body().data(),
-                             params->post_body().size());
-    request->set_upload(upload_data);
+    const std::string& body = params->post_body();
+    scoped_ptr<net::UploadElementReader> reader(
+        net::UploadOwnedBytesElementReader::CreateWithString(body));
+    request->set_upload(make_scoped_ptr(
+        net::UploadDataStream::CreateWithReader(reader.Pass(), 0)));
   }
   if (params->post_id() >= 0) {
     // The POST in this case does not have an actual body, and only works
@@ -73,9 +75,9 @@
     // plan on how to display the UI for that.
     DCHECK(params->prefer_cache());
     DCHECK(params->method() == "POST");
-    scoped_refptr<net::UploadData> upload_data = new net::UploadData();
-    upload_data->set_identifier(params->post_id());
-    request->set_upload(upload_data);
+    ScopedVector<net::UploadElementReader> element_readers;
+    request->set_upload(make_scoped_ptr(
+        new net::UploadDataStream(&element_readers, params->post_id())));
   }
   for (DownloadUrlParameters::RequestHeadersType::const_iterator iter
            = params->request_headers_begin();