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

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

Issue 51683002: [Net] Assert that URLRequests with LOAD_IGNORE_LIMITS have MAXIMUM_PRIORITY (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 1 month 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
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 "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 net_log_(BoundNetLog::Make(context->net_log(), 209 net_log_(BoundNetLog::Make(context->net_log(),
210 NetLog::SOURCE_URL_REQUEST)), 210 NetLog::SOURCE_URL_REQUEST)),
211 url_chain_(1, url), 211 url_chain_(1, url),
212 method_("GET"), 212 method_("GET"),
213 referrer_policy_(CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE), 213 referrer_policy_(CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE),
214 load_flags_(LOAD_NORMAL), 214 load_flags_(LOAD_NORMAL),
215 delegate_(delegate), 215 delegate_(delegate),
216 is_pending_(false), 216 is_pending_(false),
217 is_redirecting_(false), 217 is_redirecting_(false),
218 redirect_limit_(kMaxRedirects), 218 redirect_limit_(kMaxRedirects),
219 priority_(DEFAULT_PRIORITY), 219 base_priority_(DEFAULT_PRIORITY),
220 identifier_(GenerateURLRequestIdentifier()), 220 identifier_(GenerateURLRequestIdentifier()),
221 calling_delegate_(false), 221 calling_delegate_(false),
222 delegate_info_usage_(DELEGATE_INFO_DEBUG_ONLY), 222 delegate_info_usage_(DELEGATE_INFO_DEBUG_ONLY),
223 before_request_callback_(base::Bind(&URLRequest::BeforeRequestComplete, 223 before_request_callback_(base::Bind(&URLRequest::BeforeRequestComplete,
224 base::Unretained(this))), 224 base::Unretained(this))),
225 has_notified_completion_(false), 225 has_notified_completion_(false),
226 received_response_content_length_(0), 226 received_response_content_length_(0),
227 creation_time_(base::TimeTicks::Now()) { 227 creation_time_(base::TimeTicks::Now()) {
228 SIMPLE_STATS_COUNTER("URLRequestCount"); 228 SIMPLE_STATS_COUNTER("URLRequestCount");
229 229
(...skipping 16 matching lines...) Expand all
246 net_log_(BoundNetLog::Make(context->net_log(), 246 net_log_(BoundNetLog::Make(context->net_log(),
247 NetLog::SOURCE_URL_REQUEST)), 247 NetLog::SOURCE_URL_REQUEST)),
248 url_chain_(1, url), 248 url_chain_(1, url),
249 method_("GET"), 249 method_("GET"),
250 referrer_policy_(CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE), 250 referrer_policy_(CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE),
251 load_flags_(LOAD_NORMAL), 251 load_flags_(LOAD_NORMAL),
252 delegate_(delegate), 252 delegate_(delegate),
253 is_pending_(false), 253 is_pending_(false),
254 is_redirecting_(false), 254 is_redirecting_(false),
255 redirect_limit_(kMaxRedirects), 255 redirect_limit_(kMaxRedirects),
256 priority_(DEFAULT_PRIORITY), 256 base_priority_(DEFAULT_PRIORITY),
257 identifier_(GenerateURLRequestIdentifier()), 257 identifier_(GenerateURLRequestIdentifier()),
258 calling_delegate_(false), 258 calling_delegate_(false),
259 delegate_info_usage_(DELEGATE_INFO_DEBUG_ONLY), 259 delegate_info_usage_(DELEGATE_INFO_DEBUG_ONLY),
260 before_request_callback_(base::Bind(&URLRequest::BeforeRequestComplete, 260 before_request_callback_(base::Bind(&URLRequest::BeforeRequestComplete,
261 base::Unretained(this))), 261 base::Unretained(this))),
262 has_notified_completion_(false), 262 has_notified_completion_(false),
263 received_response_content_length_(0), 263 received_response_content_length_(0),
264 creation_time_(base::TimeTicks::Now()) { 264 creation_time_(base::TimeTicks::Now()) {
265 SIMPLE_STATS_COUNTER("URLRequestCount"); 265 SIMPLE_STATS_COUNTER("URLRequestCount");
266 266
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
528 void URLRequest::GetCharset(string* charset) { 528 void URLRequest::GetCharset(string* charset) {
529 DCHECK(job_.get()); 529 DCHECK(job_.get());
530 job_->GetCharset(charset); 530 job_->GetCharset(charset);
531 } 531 }
532 532
533 int URLRequest::GetResponseCode() const { 533 int URLRequest::GetResponseCode() const {
534 DCHECK(job_.get()); 534 DCHECK(job_.get());
535 return job_->GetResponseCode(); 535 return job_->GetResponseCode();
536 } 536 }
537 537
538 void URLRequest::SetLoadFlags(int flags) {
539 if ((load_flags_ & LOAD_IGNORE_LIMITS) != (flags & LOAD_IGNORE_LIMITS))
540 DCHECK(!job_);
541 load_flags_ = flags;
542 }
543
538 // static 544 // static
539 void URLRequest::SetDefaultCookiePolicyToBlock() { 545 void URLRequest::SetDefaultCookiePolicyToBlock() {
540 CHECK(!g_url_requests_started); 546 CHECK(!g_url_requests_started);
541 g_default_can_use_cookies = false; 547 g_default_can_use_cookies = false;
542 } 548 }
543 549
544 // static 550 // static
545 bool URLRequest::IsHandledProtocol(const std::string& scheme) { 551 bool URLRequest::IsHandledProtocol(const std::string& scheme) {
546 return URLRequestJobManager::GetInstance()->SupportsScheme(scheme); 552 return URLRequestJobManager::GetInstance()->SupportsScheme(scheme);
547 } 553 }
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
675 } 681 }
676 } 682 }
677 683
678 void URLRequest::StartJob(URLRequestJob* job) { 684 void URLRequest::StartJob(URLRequestJob* job) {
679 DCHECK(!is_pending_); 685 DCHECK(!is_pending_);
680 DCHECK(!job_.get()); 686 DCHECK(!job_.get());
681 687
682 net_log_.BeginEvent( 688 net_log_.BeginEvent(
683 NetLog::TYPE_URL_REQUEST_START_JOB, 689 NetLog::TYPE_URL_REQUEST_START_JOB,
684 base::Bind(&NetLogURLRequestStartCallback, 690 base::Bind(&NetLogURLRequestStartCallback,
685 &url(), &method_, load_flags_, priority_, 691 &url(), &method_, load_flags_, GetPriority(),
686 upload_data_stream_ ? upload_data_stream_->identifier() : -1)); 692 upload_data_stream_ ? upload_data_stream_->identifier() : -1));
687 693
688 job_ = job; 694 job_ = job;
689 job_->SetExtraRequestHeaders(extra_request_headers_); 695 job_->SetExtraRequestHeaders(extra_request_headers_);
690 job_->SetPriority(priority_); 696 job_->SetPriority(GetPriority());
691 697
692 if (upload_data_stream_.get()) 698 if (upload_data_stream_.get())
693 job_->SetUpload(upload_data_stream_.get()); 699 job_->SetUpload(upload_data_stream_.get());
694 700
695 is_pending_ = true; 701 is_pending_ = true;
696 is_redirecting_ = false; 702 is_redirecting_ = false;
697 703
698 response_info_.was_cached = false; 704 response_info_.was_cached = false;
699 705
700 // Don't allow errors to be sent from within Start(). 706 // Don't allow errors to be sent from within Start().
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
987 } 993 }
988 994
989 int64 URLRequest::GetExpectedContentSize() const { 995 int64 URLRequest::GetExpectedContentSize() const {
990 int64 expected_content_size = -1; 996 int64 expected_content_size = -1;
991 if (job_.get()) 997 if (job_.get())
992 expected_content_size = job_->expected_content_size(); 998 expected_content_size = job_->expected_content_size();
993 999
994 return expected_content_size; 1000 return expected_content_size;
995 } 1001 }
996 1002
1003 RequestPriority URLRequest::GetPriority() const {
1004 return (load_flags_ & LOAD_IGNORE_LIMITS) ? MAXIMUM_PRIORITY : base_priority_;
1005 }
1006
997 void URLRequest::SetPriority(RequestPriority priority) { 1007 void URLRequest::SetPriority(RequestPriority priority) {
998 DCHECK_GE(priority, MINIMUM_PRIORITY); 1008 DCHECK_GE(priority, MINIMUM_PRIORITY);
999 DCHECK_LE(priority, MAXIMUM_PRIORITY); 1009 DCHECK_LE(priority, MAXIMUM_PRIORITY);
1000 if (priority_ == priority) 1010
1011 RequestPriority old_priority = GetPriority();
1012
1013 base_priority_ = priority;
1014
1015 if (GetPriority() == old_priority)
1001 return; 1016 return;
1002 1017
1003 priority_ = priority;
1004 if (job_.get()) { 1018 if (job_.get()) {
1005 net_log_.AddEvent(NetLog::TYPE_URL_REQUEST_SET_PRIORITY, 1019 net_log_.AddEvent(NetLog::TYPE_URL_REQUEST_SET_PRIORITY,
1006 NetLog::IntegerCallback("priority", priority_)); 1020 NetLog::IntegerCallback("priority", GetPriority()));
1007 job_->SetPriority(priority_); 1021 job_->SetPriority(GetPriority());
1008 } 1022 }
1009 } 1023 }
1010 1024
1011 bool URLRequest::GetHSTSRedirect(GURL* redirect_url) const { 1025 bool URLRequest::GetHSTSRedirect(GURL* redirect_url) const {
1012 const GURL& url = this->url(); 1026 const GURL& url = this->url();
1013 if (!url.SchemeIs("http")) 1027 if (!url.SchemeIs("http"))
1014 return false; 1028 return false;
1015 TransportSecurityState::DomainState domain_state; 1029 TransportSecurityState::DomainState domain_state;
1016 if (context()->transport_security_state() && 1030 if (context()->transport_security_state() &&
1017 context()->transport_security_state()->GetDomainState( 1031 context()->transport_security_state()->GetDomainState(
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
1196 new base::debug::StackTrace(NULL, 0); 1210 new base::debug::StackTrace(NULL, 0);
1197 *stack_trace_copy = stack_trace; 1211 *stack_trace_copy = stack_trace;
1198 stack_trace_.reset(stack_trace_copy); 1212 stack_trace_.reset(stack_trace_copy);
1199 } 1213 }
1200 1214
1201 const base::debug::StackTrace* URLRequest::stack_trace() const { 1215 const base::debug::StackTrace* URLRequest::stack_trace() const {
1202 return stack_trace_.get(); 1216 return stack_trace_.get();
1203 } 1217 }
1204 1218
1205 } // namespace net 1219 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698