| 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..60f099e8de7e196a322c5f525e9faad85dce5711 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 (!parent_->on_load_state_changed_.is_null() &&
|
| + !pending_dns_completed_synchronously_ && !cancelled_.IsSet()) {
|
| + 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()) {
|
| +}
|
| +
|
| +ProxyResolverV8Tracing::ProxyResolverV8Tracing(
|
| + HostResolver* host_resolver,
|
| + ProxyResolverErrorObserver* error_observer,
|
| + NetLog* net_log,
|
| + const LoadStateChangedCallback& 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"));
|
|
|