| Index: net/proxy/mojo_proxy_resolver_factory_impl.cc
|
| diff --git a/net/proxy/mojo_proxy_resolver_factory_impl.cc b/net/proxy/mojo_proxy_resolver_factory_impl.cc
|
| index 15cdfa7fb11ebd6df361c42808366d9540606469..4a95aa727a7afa588a293bce1d6d8d0d4b785942 100644
|
| --- a/net/proxy/mojo_proxy_resolver_factory_impl.cc
|
| +++ b/net/proxy/mojo_proxy_resolver_factory_impl.cc
|
| @@ -10,7 +10,7 @@
|
| #include "net/base/net_errors.h"
|
| #include "net/dns/host_resolver_mojo.h"
|
| #include "net/proxy/mojo_proxy_resolver_impl.h"
|
| -#include "net/proxy/proxy_resolver_error_observer.h"
|
| +#include "net/proxy/proxy_resolver_error_observer_mojo.h"
|
| #include "net/proxy/proxy_resolver_factory.h"
|
| #include "net/proxy/proxy_resolver_v8.h"
|
| #include "net/proxy/proxy_resolver_v8_tracing.h"
|
| @@ -19,15 +19,18 @@
|
| namespace net {
|
| namespace {
|
|
|
| -scoped_ptr<ProxyResolverErrorObserver> ReturnNullErrorObserver() {
|
| - return nullptr;
|
| +scoped_ptr<ProxyResolverErrorObserver> ReturnErrorObserver(
|
| + scoped_ptr<ProxyResolverErrorObserver> error_observer) {
|
| + return error_observer;
|
| }
|
|
|
| scoped_ptr<ProxyResolverFactory> CreateDefaultProxyResolver(
|
| HostResolver* host_resolver,
|
| + scoped_ptr<ProxyResolverErrorObserver> error_observer,
|
| const ProxyResolver::LoadStateChangedCallback& callback) {
|
| return make_scoped_ptr(new ProxyResolverFactoryV8Tracing(
|
| - host_resolver, nullptr, callback, base::Bind(&ReturnNullErrorObserver)));
|
| + host_resolver, nullptr, callback,
|
| + base::Bind(&ReturnErrorObserver, base::Passed(&error_observer))));
|
| }
|
|
|
| class LoadStateChangeForwarder
|
| @@ -107,6 +110,7 @@ class MojoProxyResolverFactoryImpl::Job : public mojo::ErrorHandler {
|
| const MojoProxyResolverFactoryImpl::Factory& proxy_resolver_factory,
|
| mojo::InterfaceRequest<interfaces::ProxyResolver> request,
|
| interfaces::HostResolverPtr host_resolver,
|
| + interfaces::ProxyResolverErrorObserverPtr error_observer,
|
| interfaces::ProxyResolverFactoryRequestClientPtr client);
|
| ~Job() override;
|
|
|
| @@ -134,6 +138,7 @@ MojoProxyResolverFactoryImpl::Job::Job(
|
| const MojoProxyResolverFactoryImpl::Factory& proxy_resolver_factory,
|
| mojo::InterfaceRequest<interfaces::ProxyResolver> request,
|
| interfaces::HostResolverPtr host_resolver,
|
| + interfaces::ProxyResolverErrorObserverPtr error_observer,
|
| interfaces::ProxyResolverFactoryRequestClientPtr client)
|
| : parent_(factory),
|
| host_resolver_(new HostResolverMojo(
|
| @@ -144,6 +149,7 @@ MojoProxyResolverFactoryImpl::Job::Job(
|
| proxy_request_(request.Pass()),
|
| factory_(proxy_resolver_factory.Run(
|
| host_resolver_.get(),
|
| + ProxyResolverErrorObserverMojo::Create(error_observer.Pass()),
|
| base::Bind(&LoadStateChangeForwarder::OnLoadStateChanged,
|
| load_state_change_forwarder_))),
|
| client_ptr_(client.Pass()) {
|
| @@ -195,13 +201,14 @@ void MojoProxyResolverFactoryImpl::CreateResolver(
|
| const mojo::String& pac_script,
|
| mojo::InterfaceRequest<interfaces::ProxyResolver> request,
|
| interfaces::HostResolverPtr host_resolver,
|
| + interfaces::ProxyResolverErrorObserverPtr error_observer,
|
| interfaces::ProxyResolverFactoryRequestClientPtr client) {
|
| // The Job will call RemoveJob on |this| when either the create request
|
| // finishes or |request| or |client| encounters a connection error.
|
| jobs_.insert(new Job(
|
| this, ProxyResolverScriptData::FromUTF8(pac_script.To<std::string>()),
|
| proxy_resolver_impl_factory_, request.Pass(), host_resolver.Pass(),
|
| - client.Pass()));
|
| + error_observer.Pass(), client.Pass()));
|
| }
|
|
|
| void MojoProxyResolverFactoryImpl::RemoveJob(Job* job) {
|
|
|