| Index: chrome/browser/automation/url_request_automation_job.cc
|
| diff --git a/chrome/browser/automation/url_request_automation_job.cc b/chrome/browser/automation/url_request_automation_job.cc
|
| index 44b7b51ebf20c4add8157dda43d83a698fd789bc..09713760cdde2c0e2eb06f63a8da6d969a01f65b 100644
|
| --- a/chrome/browser/automation/url_request_automation_job.cc
|
| +++ b/chrome/browser/automation/url_request_automation_job.cc
|
| @@ -16,6 +16,9 @@
|
| #include "net/base/host_port_pair.h"
|
| #include "net/base/io_buffer.h"
|
| #include "net/base/net_errors.h"
|
| +#include "net/base/upload_bytes_element_reader.h"
|
| +#include "net/base/upload_data_stream.h"
|
| +#include "net/base/upload_file_element_reader.h"
|
| #include "net/cookies/cookie_monster.h"
|
| #include "net/http/http_request_headers.h"
|
| #include "net/http/http_response_headers.h"
|
| @@ -463,13 +466,39 @@ void URLRequestAutomationJob::StartAsync() {
|
| resource_type = info->GetResourceType();
|
| }
|
|
|
| + // Construct UploadData from UploadDataStream.
|
| + const net::UploadDataStream* upload_data_stream = request_->get_upload();
|
| + scoped_refptr<net::UploadData> upload_data;
|
| + if (upload_data_stream) {
|
| + upload_data = new net::UploadData();
|
| + const ScopedVector<net::UploadElementReader>& element_readers =
|
| + upload_data_stream->element_readers();
|
| + for (size_t i = 0; i < element_readers.size(); ++i) {
|
| + const net::UploadElementReader* reader = element_readers[i];
|
| + if (reader->AsBytesReader()) {
|
| + const net::UploadBytesElementReader* bytes_reader =
|
| + reader->AsBytesReader();
|
| + upload_data->AppendBytes(bytes_reader->bytes(), bytes_reader->length());
|
| + } else if (reader->AsFileReader()) {
|
| + const net::UploadFileElementReader* file_reader =
|
| + reader->AsFileReader();
|
| + upload_data->AppendFileRange(file_reader->path(),
|
| + file_reader->range_offset(),
|
| + file_reader->range_length(),
|
| + file_reader->expected_modification_time());
|
| + } else {
|
| + NOTIMPLEMENTED();
|
| + }
|
| + }
|
| + }
|
| +
|
| // Ask automation to start this request.
|
| AutomationURLRequest automation_request;
|
| automation_request.url = request_->url().spec();
|
| automation_request.method = request_->method();
|
| automation_request.referrer = referrer.spec();
|
| automation_request.extra_request_headers = new_request_headers.ToString();
|
| - automation_request.upload_data = request_->get_upload_mutable();
|
| + automation_request.upload_data = upload_data;
|
| automation_request.resource_type = resource_type;
|
| automation_request.load_flags = request_->load_flags();
|
|
|
|
|