Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Side by Side Diff: content/browser/renderer_host/resource_dispatcher_host_impl.cc

Issue 10834289: Split net::UploadData into two: for IPC and for upload handling (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | content/common/resource_dispatcher.cc » ('j') | webkit/glue/webupload_data.h » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // See http://dev.chromium.org/developers/design-documents/multi-process-resourc e-loading 5 // See http://dev.chromium.org/developers/design-documents/multi-process-resourc e-loading
6 6
7 #include "content/browser/renderer_host/resource_dispatcher_host_impl.h" 7 #include "content/browser/renderer_host/resource_dispatcher_host_impl.h"
8 8
9 #include <set> 9 #include <set>
10 #include <vector> 10 #include <vector>
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 #include "net/http/http_response_info.h" 76 #include "net/http/http_response_info.h"
77 #include "net/http/http_transaction_factory.h" 77 #include "net/http/http_transaction_factory.h"
78 #include "net/url_request/url_request.h" 78 #include "net/url_request/url_request.h"
79 #include "net/url_request/url_request_context.h" 79 #include "net/url_request/url_request_context.h"
80 #include "net/url_request/url_request_job_factory.h" 80 #include "net/url_request/url_request_job_factory.h"
81 #include "webkit/appcache/appcache_interceptor.h" 81 #include "webkit/appcache/appcache_interceptor.h"
82 #include "webkit/appcache/appcache_interfaces.h" 82 #include "webkit/appcache/appcache_interfaces.h"
83 #include "webkit/blob/blob_storage_controller.h" 83 #include "webkit/blob/blob_storage_controller.h"
84 #include "webkit/blob/shareable_file_reference.h" 84 #include "webkit/blob/shareable_file_reference.h"
85 #include "webkit/glue/webkit_glue.h" 85 #include "webkit/glue/webkit_glue.h"
86 #include "webkit/glue/webupload_data.h"
86 87
87 using base::Time; 88 using base::Time;
88 using base::TimeDelta; 89 using base::TimeDelta;
89 using base::TimeTicks; 90 using base::TimeTicks;
90 using webkit_blob::ShareableFileReference; 91 using webkit_blob::ShareableFileReference;
91 92
92 // ---------------------------------------------------------------------------- 93 // ----------------------------------------------------------------------------
93 94
94 namespace content { 95 namespace content {
95 96
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 166
166 // Check if the renderer is permitted to request the requested URL. 167 // Check if the renderer is permitted to request the requested URL.
167 if (!policy->CanRequestURL(child_id, request_data.url)) { 168 if (!policy->CanRequestURL(child_id, request_data.url)) {
168 VLOG(1) << "Denied unauthorized request for " 169 VLOG(1) << "Denied unauthorized request for "
169 << request_data.url.possibly_invalid_spec(); 170 << request_data.url.possibly_invalid_spec();
170 return false; 171 return false;
171 } 172 }
172 173
173 // Check if the renderer is permitted to upload the requested files. 174 // Check if the renderer is permitted to upload the requested files.
174 if (request_data.upload_data) { 175 if (request_data.upload_data) {
175 const std::vector<net::UploadData::Element>* uploads = 176 const std::vector<WebUploadData::Element>* uploads =
176 request_data.upload_data->elements(); 177 request_data.upload_data->elements();
177 std::vector<net::UploadData::Element>::const_iterator iter; 178 std::vector<WebUploadData::Element>::const_iterator iter;
178 for (iter = uploads->begin(); iter != uploads->end(); ++iter) { 179 for (iter = uploads->begin(); iter != uploads->end(); ++iter) {
179 if (iter->type() == net::UploadData::TYPE_FILE && 180 if (iter->type() == WebUploadData::TYPE_FILE &&
180 !policy->CanReadFile(child_id, iter->file_path())) { 181 !policy->CanReadFile(child_id, iter->file_path())) {
181 NOTREACHED() << "Denied unauthorized upload of " 182 NOTREACHED() << "Denied unauthorized upload of "
182 << iter->file_path().value(); 183 << iter->file_path().value();
183 return false; 184 return false;
184 } 185 }
185 } 186 }
186 } 187 }
187 188
188 return true; 189 return true;
189 } 190 }
(...skipping 767 matching lines...) Expand 10 before | Expand all | Expand 10 after
957 // TODO(darin): Do we really need all of these URLRequest setters in the 958 // TODO(darin): Do we really need all of these URLRequest setters in the
958 // transferred navigation case? 959 // transferred navigation case?
959 960
960 request->set_load_flags(load_flags); 961 request->set_load_flags(load_flags);
961 962
962 request->set_priority(DetermineRequestPriority(request_data.resource_type)); 963 request->set_priority(DetermineRequestPriority(request_data.resource_type));
963 964
964 // Set upload data. 965 // Set upload data.
965 uint64 upload_size = 0; 966 uint64 upload_size = 0;
966 if (request_data.upload_data) { 967 if (request_data.upload_data) {
967 request->set_upload(request_data.upload_data); 968 scoped_refptr<net::UploadData> upload = new net::UploadData;
969 request_data.upload_data->PopulateUploadData(upload.get());
970 request->set_upload(upload);
968 // This results in performing file IO. crbug.com/112607. 971 // This results in performing file IO. crbug.com/112607.
969 base::ThreadRestrictions::ScopedAllowIO allow_io; 972 base::ThreadRestrictions::ScopedAllowIO allow_io;
970 upload_size = request_data.upload_data->GetContentLengthSync(); 973 upload_size = upload->GetContentLengthSync();
971 } 974 }
972 975
973 bool allow_download = request_data.allow_download && 976 bool allow_download = request_data.allow_download &&
974 ResourceType::IsFrame(request_data.resource_type); 977 ResourceType::IsFrame(request_data.resource_type);
975 978
976 // Make extra info and read footer (contains request ID). 979 // Make extra info and read footer (contains request ID).
977 ResourceRequestInfoImpl* extra_info = 980 ResourceRequestInfoImpl* extra_info =
978 new ResourceRequestInfoImpl( 981 new ResourceRequestInfoImpl(
979 process_type, 982 process_type,
980 child_id, 983 child_id,
(...skipping 749 matching lines...) Expand 10 before | Expand all | Expand 10 after
1730 1733
1731 return i->second.get(); 1734 return i->second.get();
1732 } 1735 }
1733 1736
1734 ResourceLoader* ResourceDispatcherHostImpl::GetLoader(int child_id, 1737 ResourceLoader* ResourceDispatcherHostImpl::GetLoader(int child_id,
1735 int request_id) const { 1738 int request_id) const {
1736 return GetLoader(GlobalRequestID(child_id, request_id)); 1739 return GetLoader(GlobalRequestID(child_id, request_id));
1737 } 1740 }
1738 1741
1739 } // namespace content 1742 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | content/common/resource_dispatcher.cc » ('j') | webkit/glue/webupload_data.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698