Index: net/proxy/proxy_resolver_mojo.cc |
diff --git a/net/proxy/proxy_resolver_mojo.cc b/net/proxy/proxy_resolver_mojo.cc |
index f3907715edec6bb5024b7b75e9a473b88c8e2d55..d7ccfd300c75628ee109f248a50800cab8b5597f 100644 |
--- a/net/proxy/proxy_resolver_mojo.cc |
+++ b/net/proxy/proxy_resolver_mojo.cc |
@@ -30,6 +30,9 @@ class ProxyResolverMojo::Job : public interfaces::ProxyResolverRequestClient, |
// Cancels the job and prevents the callback from being run. |
void Cancel(); |
+ // Returns the LoadState of this job. |
+ LoadState load_state() { return load_state_; } |
+ |
private: |
// Overridden from mojo::ErrorHandler: |
void OnConnectionError() override; |
@@ -38,11 +41,13 @@ class ProxyResolverMojo::Job : public interfaces::ProxyResolverRequestClient, |
void ReportResult( |
int32_t error, |
mojo::Array<interfaces::ProxyServerPtr> proxy_servers) override; |
+ void LoadStateChanged(int32_t load_state) override; |
ProxyResolverMojo* resolver_; |
const GURL url_; |
ProxyInfo* results_; |
net::CompletionCallback callback_; |
+ LoadState load_state_ = LOAD_STATE_RESOLVING_PROXY_FOR_URL; |
base::ThreadChecker thread_checker_; |
mojo::Binding<interfaces::ProxyResolverRequestClient> binding_; |
@@ -99,6 +104,10 @@ void ProxyResolverMojo::Job::ReportResult( |
resolver_->RemoveJob(this); |
} |
+void ProxyResolverMojo::Job::LoadStateChanged(int32_t load_state) { |
+ load_state_ = static_cast<LoadState>(load_state); |
+} |
+ |
ProxyResolverMojo::ProxyResolverMojo( |
MojoProxyResolverFactory* mojo_proxy_resolver_factory, |
HostResolver* host_resolver) |
@@ -232,8 +241,9 @@ void ProxyResolverMojo::CancelRequest(RequestHandle request) { |
} |
LoadState ProxyResolverMojo::GetLoadState(RequestHandle request) const { |
- // TODO(amistry): Implement real LoadState. |
- return LOAD_STATE_RESOLVING_PROXY_FOR_URL; |
+ Job* job = static_cast<Job*>(request); |
+ CHECK_EQ(1u, pending_jobs_.count(job)); |
+ return job->load_state(); |
} |
} // namespace net |