diff options
Diffstat (limited to 'net/url_request')
-rw-r--r-- | net/url_request/url_request.cc | 3 | ||||
-rw-r--r-- | net/url_request/url_request.h | 23 | ||||
-rw-r--r-- | net/url_request/url_request_http_job.cc | 1 |
3 files changed, 20 insertions, 7 deletions
diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc index 3de8439..335f974 100644 --- a/net/url_request/url_request.cc +++ b/net/url_request/url_request.cc @@ -47,7 +47,8 @@ URLRequest::URLRequest(const GURL& url, Delegate* delegate) user_data_(NULL), enable_profiling_(false), redirect_limit_(kMaxRedirects), - final_upload_progress_(0) { + final_upload_progress_(0), + priority_(0) { URLREQUEST_COUNT_CTOR(); SIMPLE_STATS_COUNTER("URLRequestCount"); origin_pid_ = base::GetCurrentProcId(); diff --git a/net/url_request/url_request.h b/net/url_request/url_request.h index a16080f..d45e510 100644 --- a/net/url_request/url_request.h +++ b/net/url_request/url_request.h @@ -8,6 +8,7 @@ #include <string> #include <vector> +#include "base/logging.h" #include "base/ref_counted.h" #include "googleurl/src/gurl.h" #include "net/base/load_states.h" @@ -15,16 +16,14 @@ #include "net/url_request/url_request_status.h" namespace base { - class Time; -} +class Time; +} // namespace base namespace net { - class IOBuffer; class UploadData; class X509Certificate; - -} +} // namespace net class URLRequestContext; class URLRequestJob; @@ -431,12 +430,20 @@ class URLRequest { // Returns the expected content size if available int64 GetExpectedContentSize() const; + // Returns the priority level for this request. A larger value indicates + // higher priority. Negative values are not used. + int priority() const { return priority_; } + void set_priority(int priority) { + DCHECK_GE(priority, 0); + priority_ = priority; + } + protected: // Allow the URLRequestJob class to control the is_pending() flag. void set_is_pending(bool value) { is_pending_ = value; } // Allow the URLRequestJob class to set our status too - void set_status(const URLRequestStatus &value) { status_ = value; } + void set_status(const URLRequestStatus& value) { status_ = value; } // Allow the URLRequestJob to redirect this request. Returns net::OK if // successful, otherwise an error code is returned. @@ -505,6 +512,10 @@ class URLRequest { // first transaction in a request involving redirects. uint64 final_upload_progress_; + // The priority level for this request. Objects like ClientSocketPool use + // this to determine which URLRequest to allocate sockets to first. + int priority_; + DISALLOW_COPY_AND_ASSIGN(URLRequest); }; diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc index cf380de..4180bef 100644 --- a/net/url_request/url_request_http_job.cc +++ b/net/url_request/url_request_http_job.cc @@ -111,6 +111,7 @@ void URLRequestHttpJob::Start() { request_info_.referrer = referrer; request_info_.method = request_->method(); request_info_.load_flags = request_->load_flags(); + request_info_.priority = request_->priority(); if (request_->context()) { request_info_.user_agent = |