summaryrefslogtreecommitdiffstats
path: root/net/url_request
diff options
context:
space:
mode:
Diffstat (limited to 'net/url_request')
-rw-r--r--net/url_request/url_request.cc3
-rw-r--r--net/url_request/url_request.h23
-rw-r--r--net/url_request/url_request_http_job.cc1
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 =