| 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;
|
|
|