summaryrefslogtreecommitdiffstats
path: root/net/url_request/url_request_ftp_job.cc
diff options
context:
space:
mode:
authorakalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-22 20:17:46 +0000
committerakalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-22 20:17:46 +0000
commit5033ab8cdfdfd67f92195f6b9d7a71e35ffa0090 (patch)
treedf91bd6e3b25a948557026a559833531922df6e3 /net/url_request/url_request_ftp_job.cc
parentf43fba7ce6713432a8301aee47e9a7030ddca082 (diff)
downloadchromium_src-5033ab8cdfdfd67f92195f6b9d7a71e35ffa0090.zip
chromium_src-5033ab8cdfdfd67f92195f6b9d7a71e35ffa0090.tar.gz
chromium_src-5033ab8cdfdfd67f92195f6b9d7a71e35ffa0090.tar.bz2
[Net] Propagate priority changes from URLRequest to HttpTransaction
This is in preparation for propagating priority changes from ResourceScheduler all the way to HostResolver and ClientSocketPool. Add some NetLog events and parameters for priority. BUG=166689 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=189829 Review URL: https://codereview.chromium.org/12701011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@189894 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/url_request/url_request_ftp_job.cc')
-rw-r--r--net/url_request/url_request_ftp_job.cc79
1 files changed, 43 insertions, 36 deletions
diff --git a/net/url_request/url_request_ftp_job.cc b/net/url_request/url_request_ftp_job.cc
index ebb540d..cc3e3f8 100644
--- a/net/url_request/url_request_ftp_job.cc
+++ b/net/url_request/url_request_ftp_job.cc
@@ -28,6 +28,7 @@ URLRequestFtpJob::URLRequestFtpJob(
FtpTransactionFactory* ftp_transaction_factory,
FtpAuthCache* ftp_auth_cache)
: URLRequestJob(request, network_delegate),
+ priority_(DEFAULT_PRIORITY),
pac_request_(NULL),
response_info_(NULL),
read_in_progress_(false),
@@ -38,6 +39,11 @@ URLRequestFtpJob::URLRequestFtpJob(
DCHECK(ftp_auth_cache);
}
+URLRequestFtpJob::~URLRequestFtpJob() {
+ if (pac_request_)
+ request_->context()->proxy_service()->CancelPacRequest(pac_request_);
+}
+
// static
URLRequestJob* URLRequestFtpJob::Factory(URLRequest* request,
NetworkDelegate* network_delegate,
@@ -95,9 +101,42 @@ HostPortPair URLRequestFtpJob::GetSocketAddress() const {
}
}
-URLRequestFtpJob::~URLRequestFtpJob() {
- if (pac_request_)
- request_->context()->proxy_service()->CancelPacRequest(pac_request_);
+void URLRequestFtpJob::SetPriority(RequestPriority priority) {
+ priority_ = priority;
+ if (http_transaction_)
+ http_transaction_->SetPriority(priority);
+}
+
+void URLRequestFtpJob::Start() {
+ DCHECK(!pac_request_);
+ DCHECK(!ftp_transaction_);
+ DCHECK(!http_transaction_);
+
+ int rv = OK;
+ if (request_->load_flags() & LOAD_BYPASS_PROXY) {
+ proxy_info_.UseDirect();
+ } else {
+ rv = request_->context()->proxy_service()->ResolveProxy(
+ request_->url(),
+ &proxy_info_,
+ base::Bind(&URLRequestFtpJob::OnResolveProxyComplete,
+ base::Unretained(this)),
+ &pac_request_,
+ request_->net_log());
+
+ if (rv == ERR_IO_PENDING)
+ return;
+ }
+ OnResolveProxyComplete(rv);
+}
+
+void URLRequestFtpJob::Kill() {
+ if (ftp_transaction_)
+ ftp_transaction_.reset();
+ if (http_transaction_)
+ http_transaction_.reset();
+ URLRequestJob::Kill();
+ weak_factory_.InvalidateWeakPtrs();
}
void URLRequestFtpJob::OnResolveProxyComplete(int result) {
@@ -168,7 +207,7 @@ void URLRequestFtpJob::StartHttpTransaction() {
http_request_info_.request_id = request_->identifier();
int rv = request_->context()->http_transaction_factory()->CreateTransaction(
- request_->priority(), &http_transaction_, NULL);
+ priority_, &http_transaction_, NULL);
if (rv == OK) {
rv = http_transaction_->Start(
&http_request_info_,
@@ -260,38 +299,6 @@ void URLRequestFtpJob::RestartTransactionWithAuth() {
OnStartCompletedAsync(rv);
}
-void URLRequestFtpJob::Start() {
- DCHECK(!pac_request_);
- DCHECK(!ftp_transaction_);
- DCHECK(!http_transaction_);
-
- int rv = OK;
- if (request_->load_flags() & LOAD_BYPASS_PROXY) {
- proxy_info_.UseDirect();
- } else {
- rv = request_->context()->proxy_service()->ResolveProxy(
- request_->url(),
- &proxy_info_,
- base::Bind(&URLRequestFtpJob::OnResolveProxyComplete,
- base::Unretained(this)),
- &pac_request_,
- request_->net_log());
-
- if (rv == ERR_IO_PENDING)
- return;
- }
- OnResolveProxyComplete(rv);
-}
-
-void URLRequestFtpJob::Kill() {
- if (ftp_transaction_)
- ftp_transaction_.reset();
- if (http_transaction_)
- http_transaction_.reset();
- URLRequestJob::Kill();
- weak_factory_.InvalidateWeakPtrs();
-}
-
LoadState URLRequestFtpJob::GetLoadState() const {
if (proxy_info_.is_direct()) {
return ftp_transaction_ ?