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

Side by Side Diff: net/url_request/url_request.cc

Issue 2330983002: Removes get upload progress plumbing. URLRequest queries the UploadDataStream directly. (Closed)
Patch Set: Feedback incorporated. Created 4 years, 3 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
« no previous file with comments | « net/spdy/spdy_http_stream_unittest.cc ('k') | net/url_request/url_request_ftp_job.h » ('j') | no next file with comments »
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 #include "net/url_request/url_request.h" 5 #include "net/url_request/url_request.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after
349 349
350 net_log_.EndEvent(NetLogEventType::DELEGATE_INFO); 350 net_log_.EndEvent(NetLogEventType::DELEGATE_INFO);
351 blocked_by_.clear(); 351 blocked_by_.clear();
352 } 352 }
353 353
354 UploadProgress URLRequest::GetUploadProgress() const { 354 UploadProgress URLRequest::GetUploadProgress() const {
355 if (!job_.get()) { 355 if (!job_.get()) {
356 // We haven't started or the request was cancelled 356 // We haven't started or the request was cancelled
357 return UploadProgress(); 357 return UploadProgress();
358 } 358 }
359
359 if (final_upload_progress_.position()) { 360 if (final_upload_progress_.position()) {
360 // The first job completed and none of the subsequent series of 361 // The first job completed and none of the subsequent series of
361 // GETs when following redirects will upload anything, so we return the 362 // GETs when following redirects will upload anything, so we return the
362 // cached results from the initial job, the POST. 363 // cached results from the initial job, the POST.
363 return final_upload_progress_; 364 return final_upload_progress_;
364 } 365 }
365 return job_->GetUploadProgress(); 366
367 if (upload_data_stream_)
368 return upload_data_stream_->GetUploadProgress();
369
370 return UploadProgress();
366 } 371 }
367 372
368 void URLRequest::GetResponseHeaderByName(const string& name, 373 void URLRequest::GetResponseHeaderByName(const string& name,
369 string* value) const { 374 string* value) const {
370 DCHECK(value); 375 DCHECK(value);
371 if (response_info_.headers.get()) { 376 if (response_info_.headers.get()) {
372 response_info_.headers->GetNormalizedHeader(name, value); 377 response_info_.headers->GetNormalizedHeader(name, value);
373 } else { 378 } else {
374 value->clear(); 379 value->clear();
375 } 380 }
(...skipping 578 matching lines...) Expand 10 before | Expand all | Expand 10 after
954 } 959 }
955 960
956 if (!redirect_info.new_url.is_valid()) 961 if (!redirect_info.new_url.is_valid())
957 return ERR_INVALID_URL; 962 return ERR_INVALID_URL;
958 963
959 if (!job_->IsSafeRedirect(redirect_info.new_url)) { 964 if (!job_->IsSafeRedirect(redirect_info.new_url)) {
960 DVLOG(1) << "disallowing redirect: unsafe protocol"; 965 DVLOG(1) << "disallowing redirect: unsafe protocol";
961 return ERR_UNSAFE_REDIRECT; 966 return ERR_UNSAFE_REDIRECT;
962 } 967 }
963 968
964 if (!final_upload_progress_.position()) 969 if (!final_upload_progress_.position() && upload_data_stream_)
965 final_upload_progress_ = job_->GetUploadProgress(); 970 final_upload_progress_ = upload_data_stream_->GetUploadProgress();
966 PrepareToRestart(); 971 PrepareToRestart();
967 972
968 if (redirect_info.new_method != method_) { 973 if (redirect_info.new_method != method_) {
969 // TODO(davidben): This logic still needs to be replicated at the consumers. 974 // TODO(davidben): This logic still needs to be replicated at the consumers.
970 if (method_ == "POST") { 975 if (method_ == "POST") {
971 // If being switched from POST, must remove Origin header. 976 // If being switched from POST, must remove Origin header.
972 // TODO(jww): This is Origin header removal is probably layering violation 977 // TODO(jww): This is Origin header removal is probably layering violation
973 // and 978 // and
974 // should be refactored into //content. See https://crbug.com/471397. 979 // should be refactored into //content. See https://crbug.com/471397.
975 extra_request_headers_.RemoveHeader(HttpRequestHeaders::kOrigin); 980 extra_request_headers_.RemoveHeader(HttpRequestHeaders::kOrigin);
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after
1235 out->clear(); 1240 out->clear();
1236 } 1241 }
1237 1242
1238 void URLRequest::set_status(URLRequestStatus status) { 1243 void URLRequest::set_status(URLRequestStatus status) {
1239 DCHECK(status_.is_io_pending() || status_.is_success() || 1244 DCHECK(status_.is_io_pending() || status_.is_success() ||
1240 (!status.is_success() && !status.is_io_pending())); 1245 (!status.is_success() && !status.is_io_pending()));
1241 status_ = status; 1246 status_ = status;
1242 } 1247 }
1243 1248
1244 } // namespace net 1249 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/spdy_http_stream_unittest.cc ('k') | net/url_request/url_request_ftp_job.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698