Index: net/url_request/url_request_ftp_job.cc |
diff --git a/net/url_request/url_request_ftp_job.cc b/net/url_request/url_request_ftp_job.cc |
index ebb540d44d6b505676df9384fc104406e80edbfc..cc3e3f88714d1061303871ac10b56fc18ecbd014 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_ ? |