Chromium Code Reviews| Index: net/proxy/proxy_resolver_v8_tracing.cc |
| diff --git a/net/proxy/proxy_resolver_v8_tracing.cc b/net/proxy/proxy_resolver_v8_tracing.cc |
| index c498f749bb6e8163a2dab165a7cf88c9dea0ddee..43875f63ad683da66cde03e1f7573ed9f0495daa 100644 |
| --- a/net/proxy/proxy_resolver_v8_tracing.cc |
| +++ b/net/proxy/proxy_resolver_v8_tracing.cc |
| @@ -707,6 +707,10 @@ void ProxyResolverV8Tracing::Job::DoDnsOperation() { |
| } else { |
| DCHECK(dns_request); |
| pending_dns_ = dns_request; |
| + if (!parent_->on_load_state_changed_.is_null()) { |
| + parent_->on_load_state_changed_.Run( |
| + this, LOAD_STATE_RESOLVING_HOST_IN_PROXY_SCRIPT); |
| + } |
| // OnDnsOperationComplete() will be called by host resolver on completion. |
| } |
| @@ -732,6 +736,12 @@ void ProxyResolverV8Tracing::Job::OnDnsOperationComplete(int result) { |
| pending_dns_addresses_); |
| pending_dns_ = NULL; |
| + if (!pending_dns_completed_synchronously_ && !cancelled_.IsSet() && |
| + !parent_->on_load_state_changed_.is_null()) { |
|
eroman
2015/03/06 05:13:02
nit: can you move this check to be the first?
Sam McNally
2015/03/06 09:33:02
Done.
|
| + parent_->on_load_state_changed_.Run(this, |
| + LOAD_STATE_RESOLVING_PROXY_FOR_URL); |
| + } |
| + |
| if (blocking_dns_) { |
| event_.Signal(); |
| return; |
| @@ -934,11 +944,23 @@ ProxyResolverV8Tracing::ProxyResolverV8Tracing( |
| HostResolver* host_resolver, |
| ProxyResolverErrorObserver* error_observer, |
| NetLog* net_log) |
| + : ProxyResolverV8Tracing(host_resolver, |
| + error_observer, |
| + net_log, |
| + LoadStateChangedCallback<RequestHandle>()) { |
| +} |
| + |
| +ProxyResolverV8Tracing::ProxyResolverV8Tracing( |
| + HostResolver* host_resolver, |
| + ProxyResolverErrorObserver* error_observer, |
| + NetLog* net_log, |
| + const LoadStateChangedCallback<RequestHandle>& on_load_state_changed) |
| : ProxyResolver(true /*expects_pac_bytes*/), |
| host_resolver_(host_resolver), |
| error_observer_(error_observer), |
| net_log_(net_log), |
| - num_outstanding_callbacks_(0) { |
| + num_outstanding_callbacks_(0), |
| + on_load_state_changed_(on_load_state_changed) { |
| DCHECK(host_resolver); |
| // Start up the thread. |
| thread_.reset(new base::Thread("Proxy resolver")); |