Chromium Code Reviews| Index: net/url_request/url_request.cc |
| diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc |
| index ce267302ee1bd90116606062f2c7695ff537fd4d..ef53cbe194582607f4f97907679ed65a1b43c8a7 100644 |
| --- a/net/url_request/url_request.cc |
| +++ b/net/url_request/url_request.cc |
| @@ -198,6 +198,11 @@ void URLRequest::Delegate::OnSSLCertificateError(URLRequest* request, |
| request->Cancel(); |
| } |
| +void URLRequest::Delegate::OnBeforeNetworkStart(URLRequest* request, |
| + bool* defer) { |
| + *defer = false; |
|
mmenke
2014/01/07 15:26:23
"OnReceivedRedirect" assumes defer is initialized
jkarlin
2014/01/07 16:19:32
Done.
|
| +} |
| + |
| /////////////////////////////////////////////////////////////////////////////// |
| // URLRequest |
| @@ -225,7 +230,8 @@ URLRequest::URLRequest(const GURL& url, |
| base::Unretained(this))), |
| has_notified_completion_(false), |
| received_response_content_length_(0), |
| - creation_time_(base::TimeTicks::Now()) { |
| + creation_time_(base::TimeTicks::Now()), |
| + notified_before_network_start_(false) { |
| SIMPLE_STATS_COUNTER("URLRequestCount"); |
| // Sanity check out environment. |
| @@ -824,6 +830,22 @@ void URLRequest::NotifyReceivedRedirect(const GURL& location, |
| } |
| } |
| +void URLRequest::NotifyBeforeNetworkStart(bool* defer) { |
| + if (delegate_ && !notified_before_network_start_) { |
| + notified_before_network_start_ = true; |
| + OnCallToDelegate(); |
| + delegate_->OnBeforeNetworkStart(this, defer); |
| + if (!(*defer)) |
|
mmenke
2014/01/07 15:26:23
optional nit: I think !*defer is more common in n
jkarlin
2014/01/07 16:19:32
Done.
|
| + OnCallToDelegateComplete(); |
| + } |
| +} |
| + |
| +void URLRequest::ResumeNetworkStart() { |
| + DCHECK(job_); |
|
mmenke
2014/01/07 15:26:23
Maybe DCHECK(notified_network_create_stream_);?
I
jkarlin
2014/01/07 16:19:32
Done.
|
| + OnCallToDelegateComplete(); |
| + job_->ResumeNetworkStart(); |
| +} |
| + |
| void URLRequest::NotifyResponseStarted() { |
| int net_error = OK; |
| if (!status_.is_success()) |