| Index: content/browser/renderer_host/resource_dispatcher_host_impl.cc
|
| diff --git a/content/browser/renderer_host/resource_dispatcher_host_impl.cc b/content/browser/renderer_host/resource_dispatcher_host_impl.cc
|
| index c816bd63af26cae2840d65be93c6eb2f0c27a272..8ab6d621b13b2423c7e88c766b714652f82f7115 100644
|
| --- a/content/browser/renderer_host/resource_dispatcher_host_impl.cc
|
| +++ b/content/browser/renderer_host/resource_dispatcher_host_impl.cc
|
| @@ -40,10 +40,10 @@
|
| #include "content/browser/renderer_host/render_view_host_delegate.h"
|
| #include "content/browser/renderer_host/render_view_host_impl.h"
|
| #include "content/browser/renderer_host/resource_message_filter.h"
|
| -#include "content/browser/renderer_host/transfer_navigation_resource_throttle.h"
|
| #include "content/browser/renderer_host/resource_request_info_impl.h"
|
| #include "content/browser/renderer_host/sync_resource_handler.h"
|
| #include "content/browser/renderer_host/throttling_resource_handler.h"
|
| +#include "content/browser/renderer_host/transfer_navigation_resource_throttle.h"
|
| #include "content/browser/resource_context_impl.h"
|
| #include "content/browser/worker_host/worker_service_impl.h"
|
| #include "content/common/resource_messages.h"
|
| @@ -82,12 +82,14 @@
|
| #include "webkit/appcache/appcache_interfaces.h"
|
| #include "webkit/blob/blob_storage_controller.h"
|
| #include "webkit/blob/shareable_file_reference.h"
|
| +#include "webkit/glue/resource_request_body.h"
|
| #include "webkit/glue/webkit_glue.h"
|
|
|
| using base::Time;
|
| using base::TimeDelta;
|
| using base::TimeTicks;
|
| using webkit_blob::ShareableFileReference;
|
| +using webkit_glue::ResourceRequestBody;
|
|
|
| // ----------------------------------------------------------------------------
|
|
|
| @@ -171,12 +173,12 @@ bool ShouldServiceRequest(ProcessType process_type,
|
| }
|
|
|
| // Check if the renderer is permitted to upload the requested files.
|
| - if (request_data.upload_data) {
|
| - const std::vector<net::UploadElement>* uploads =
|
| - request_data.upload_data->elements();
|
| - std::vector<net::UploadElement>::const_iterator iter;
|
| + if (request_data.request_body) {
|
| + const std::vector<ResourceRequestBody::Element>* uploads =
|
| + request_data.request_body->elements();
|
| + std::vector<ResourceRequestBody::Element>::const_iterator iter;
|
| for (iter = uploads->begin(); iter != uploads->end(); ++iter) {
|
| - if (iter->type() == net::UploadElement::TYPE_FILE &&
|
| + if (iter->type() == ResourceRequestBody::TYPE_FILE &&
|
| !policy->CanReadFile(child_id, iter->file_path())) {
|
| NOTREACHED() << "Denied unauthorized upload of "
|
| << iter->file_path().value();
|
| @@ -898,12 +900,6 @@ void ResourceDispatcherHostImpl::BeginRequest(
|
| // http://crbug.com/90971
|
| CHECK(ContainsKey(active_resource_contexts_, resource_context));
|
|
|
| - // Might need to resolve the blob references in the upload data.
|
| - if (request_data.upload_data) {
|
| - GetBlobStorageControllerForResourceContext(resource_context)->
|
| - ResolveBlobReferencesInUploadData(request_data.upload_data.get());
|
| - }
|
| -
|
| if (is_shutdown_ ||
|
| !ShouldServiceRequest(process_type, child_id, request_data)) {
|
| AbortRequestBeforeItStarts(filter_, sync_result, route_id, request_id);
|
| @@ -961,13 +957,15 @@ void ResourceDispatcherHostImpl::BeginRequest(
|
|
|
| request->set_priority(DetermineRequestPriority(request_data.resource_type));
|
|
|
| - // Set upload data.
|
| + // Resolve elements from request_body and prepare upload data.
|
| uint64 upload_size = 0;
|
| - if (request_data.upload_data) {
|
| - request->set_upload(request_data.upload_data);
|
| + if (request_data.request_body) {
|
| + request->set_upload(
|
| + request_data.request_body->ResolveElementsAndCreateUploadData(
|
| + GetBlobStorageControllerForResourceContext(resource_context)));
|
| // This results in performing file IO. crbug.com/112607.
|
| base::ThreadRestrictions::ScopedAllowIO allow_io;
|
| - upload_size = request_data.upload_data->GetContentLengthSync();
|
| + upload_size = request->get_upload_mutable()->GetContentLengthSync();
|
| }
|
|
|
| bool allow_download = request_data.allow_download &&
|
|
|