Index: net/proxy/proxy_resolver_mojo.cc |
diff --git a/net/proxy/proxy_resolver_mojo.cc b/net/proxy/proxy_resolver_mojo.cc |
index 6e12a43d317d21629e435673100ad4a1887e81be..5432acfdfc8ec4e47e34ebabd7b74c796154dce7 100644 |
--- a/net/proxy/proxy_resolver_mojo.cc |
+++ b/net/proxy/proxy_resolver_mojo.cc |
@@ -111,12 +111,13 @@ void ProxyResolverMojo::Job::LoadStateChanged(int32_t load_state) { |
} |
ProxyResolverMojo::ProxyResolverMojo( |
- MojoProxyResolverFactory* mojo_proxy_resolver_factory, |
- HostResolver* host_resolver) |
+ interfaces::ProxyResolverPtr mojo_proxy_resolver, |
+ scoped_ptr<base::ScopedClosureRunner> runner) |
: ProxyResolver(true /* |expects_pac_bytes| */), |
- mojo_proxy_resolver_factory_(mojo_proxy_resolver_factory), |
- host_resolver_(host_resolver), |
+ mojo_proxy_resolver_ptr_(mojo_proxy_resolver.Pass()), |
+ runner_(runner.Pass()), |
weak_factory_(this) { |
+ mojo_proxy_resolver_ptr_.set_error_handler(this); |
} |
ProxyResolverMojo::~ProxyResolverMojo() { |
@@ -148,7 +149,7 @@ int ProxyResolverMojo::SetPacScript( |
pac_script, callback)); |
if (!mojo_proxy_resolver_ptr_) |
- SetUpServices(); |
+ return ERR_PAC_SCRIPT_TERMINATED; |
mojo_proxy_resolver_ptr_->SetPacScript( |
mojo::String::From(pac_script->utf16()), |
@@ -172,21 +173,6 @@ void ProxyResolverMojo::OnSetPacScriptDone( |
callback_copy.Run(result); |
} |
-void ProxyResolverMojo::SetUpServices() { |
- DCHECK(thread_checker_.CalledOnValidThread()); |
- // A Mojo service implementation must outlive its binding. |
- mojo_host_resolver_binding_.reset(); |
- |
- interfaces::HostResolverPtr mojo_host_resolver_ptr; |
- mojo_host_resolver_.reset(new MojoHostResolverImpl(host_resolver_)); |
- mojo_host_resolver_binding_.reset(new mojo::Binding<interfaces::HostResolver>( |
- mojo_host_resolver_.get(), mojo::GetProxy(&mojo_host_resolver_ptr))); |
- mojo_proxy_resolver_ptr_.reset(); |
- mojo_proxy_resolver_factory_->Create( |
- mojo::GetProxy(&mojo_proxy_resolver_ptr_), mojo_host_resolver_ptr.Pass()); |
- mojo_proxy_resolver_ptr_.set_error_handler(this); |
-} |
- |
void ProxyResolverMojo::AbortPendingRequests() { |
DCHECK(thread_checker_.CalledOnValidThread()); |
// |this| could be deleted as a result of one of these callbacks so use |
@@ -236,14 +222,8 @@ int ProxyResolverMojo::GetProxyForURL(const GURL& url, |
const BoundNetLog& net_log) { |
DCHECK(thread_checker_.CalledOnValidThread()); |
- // If the Mojo service is not connected, fail. The Mojo service is connected |
- // when the script is set, which must be done after construction and after a |
- // previous request returns ERR_PAC_SCRIPT_TERMINATED due to the Mojo proxy |
- // resolver process crashing. |
- if (!mojo_proxy_resolver_ptr_) { |
- DVLOG(1) << "ProxyResolverMojo::GetProxyForURL: Mojo not connected"; |
+ if (!mojo_proxy_resolver_ptr_) |
return ERR_PAC_SCRIPT_TERMINATED; |
- } |
Job* job = new Job(this, url, results, callback); |
bool inserted = pending_jobs_.insert(job).second; |