Chromium Code Reviews| Index: net/url_request/url_request_http_job.cc |
| diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc |
| index 8531dd32ad350be963fbfa40c329545c2086ce12..5c3e990f1fd0be1ea8da1c12bdb23fbc7f76dfc0 100644 |
| --- a/net/url_request/url_request_http_job.cc |
| +++ b/net/url_request/url_request_http_job.cc |
| @@ -9,6 +9,7 @@ |
| #include "base/bind_helpers.h" |
| #include "base/command_line.h" |
| #include "base/compiler_specific.h" |
| +#include "base/debug/alias.h" |
| #include "base/file_version_info.h" |
| #include "base/message_loop/message_loop.h" |
| #include "base/metrics/field_trial.h" |
| @@ -207,11 +208,17 @@ URLRequestHttpJob::URLRequestHttpJob( |
| base::Unretained(this))), |
| awaiting_callback_(false), |
| http_user_agent_settings_(http_user_agent_settings), |
| + transaction_state_(TRANSACTION_WAS_NOT_INITIALIZED), |
| weak_factory_(this) { |
| URLRequestThrottlerManager* manager = request->context()->throttler_manager(); |
| if (manager) |
| throttling_entry_ = manager->RegisterRequestUrl(request->url()); |
| + // TODO(battre) Remove this overriding once crbug.com/289715 has been |
| + // resolved. |
| + on_headers_received_callback_ = base::Bind( |
| + &OnHeadersReceivedCallbackForDebugging, weak_factory_.GetWeakPtr()); |
| + |
| ResetTimer(); |
| } |
| @@ -407,6 +414,7 @@ void URLRequestHttpJob::DestroyTransaction() { |
| DoneWithRequest(ABORTED); |
| transaction_.reset(); |
| + transaction_state_ = TRANSACTION_WAS_DESTROYED; |
| response_info_ = NULL; |
| receive_headers_end_ = base::TimeTicks(); |
| } |
| @@ -468,6 +476,9 @@ void URLRequestHttpJob::StartTransactionInternal() { |
| rv = request_->context()->http_transaction_factory()->CreateTransaction( |
| priority_, &transaction_); |
| + if (rv == OK) { |
| + transaction_state_ = TRANSACTION_WAS_INITIALIZED; |
| + } |
|
mmenke
2015/01/09 16:54:51
nit: No braces when if and body are both one line
battre
2015/01/09 18:02:30
Done.
|
| if (rv == OK && request_info_.url.SchemeIsWSOrWSS()) { |
| base::SupportsUserData::Data* data = request_->GetUserData( |
| @@ -933,6 +944,18 @@ void URLRequestHttpJob::OnStartCompleted(int result) { |
| } |
| } |
| +// TODO(battre) Use URLRequestHttpJob::OnHeadersReceivedCallback again, once |
| +// crbug.com/289715 has been resolved. |
| +void OnHeadersReceivedCallbackForDebugging( |
|
mmenke
2015/01/09 16:54:51
Definition order should match declaration order (W
battre
2015/01/09 18:02:30
Done.
|
| + base::WeakPtr<net::URLRequestHttpJob> job, |
| + int result) { |
| + CHECK(job.get()); |
|
mmenke
2015/01/09 16:54:51
Does this work, or does base::Bind cancel the call
battre
2015/01/09 18:02:30
I verified that this:
class AAA {
public:
AAA()
|
| + net::URLRequestHttpJob::TransactionState state = job->transaction_state_; |
| + base::debug::Alias(&state); |
| + CHECK(job->transaction_.get()); |
| + job->OnHeadersReceivedCallback(result); |
| +} |
| + |
| void URLRequestHttpJob::OnHeadersReceivedCallback(int result) { |
| awaiting_callback_ = false; |