| 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 bdb29abf1015d984a4828d3996d2c1b2dd99fc7e..568d976212393a1e0146e80e6e23e2b3627132b8 100644
|
| --- a/net/proxy/mojo_proxy_resolver_factory_impl.cc
|
| +++ b/net/proxy/mojo_proxy_resolver_factory_impl.cc
|
| @@ -6,6 +6,7 @@
|
|
|
| #include "net/dns/host_resolver_mojo.h"
|
| #include "net/proxy/mojo_proxy_resolver_impl.h"
|
| +#include "net/proxy/proxy_resolver_error_observer_mojo.h"
|
| #include "net/proxy/proxy_resolver_v8.h"
|
| #include "net/proxy/proxy_resolver_v8_tracing.h"
|
| #include "third_party/mojo/src/mojo/public/cpp/bindings/error_handler.h"
|
| @@ -15,9 +16,10 @@ namespace {
|
|
|
| scoped_ptr<ProxyResolver> CreateDefaultProxyResolver(
|
| HostResolver* host_resolver,
|
| + scoped_ptr<ProxyResolverErrorObserver> error_observer,
|
| const ProxyResolver::LoadStateChangedCallback& callback) {
|
| - return make_scoped_ptr(
|
| - new ProxyResolverV8Tracing(host_resolver, nullptr, nullptr, callback));
|
| + return make_scoped_ptr(new ProxyResolverV8Tracing(
|
| + host_resolver, error_observer.release(), nullptr, callback));
|
| }
|
|
|
| // A class to manage the lifetime of a MojoProxyResolverImpl and a
|
| @@ -28,7 +30,8 @@ class MojoProxyResolverHolder : public mojo::ErrorHandler {
|
| MojoProxyResolverHolder(
|
| const MojoProxyResolverFactoryImpl::Factory& proxy_resolver_factory,
|
| mojo::InterfaceRequest<interfaces::ProxyResolver> request,
|
| - interfaces::HostResolverPtr host_resolver);
|
| + interfaces::HostResolverPtr host_resolver,
|
| + interfaces::ProxyResolverErrorObserverPtr error_observer);
|
|
|
| private:
|
| // mojo::ErrorHandler override.
|
| @@ -47,12 +50,14 @@ class MojoProxyResolverHolder : public mojo::ErrorHandler {
|
| MojoProxyResolverHolder::MojoProxyResolverHolder(
|
| const MojoProxyResolverFactoryImpl::Factory& proxy_resolver_factory,
|
| mojo::InterfaceRequest<interfaces::ProxyResolver> request,
|
| - interfaces::HostResolverPtr host_resolver)
|
| + interfaces::HostResolverPtr host_resolver,
|
| + interfaces::ProxyResolverErrorObserverPtr error_observer)
|
| : host_resolver_(host_resolver.Pass(),
|
| base::Bind(&MojoProxyResolverHolder::OnConnectionError,
|
| base::Unretained(this))),
|
| proxy_resolver_(proxy_resolver_factory.Run(
|
| &host_resolver_,
|
| + ProxyResolverErrorObserverMojo::Create(error_observer.Pass()),
|
| base::Bind(&MojoProxyResolverHolder::LoadStateChanged,
|
| base::Unretained(this)))),
|
| binding_(&proxy_resolver_, request.Pass()) {
|
| @@ -88,12 +93,13 @@ MojoProxyResolverFactoryImpl::~MojoProxyResolverFactoryImpl() = default;
|
|
|
| void MojoProxyResolverFactoryImpl::CreateResolver(
|
| mojo::InterfaceRequest<interfaces::ProxyResolver> request,
|
| - interfaces::HostResolverPtr host_resolver) {
|
| + interfaces::HostResolverPtr host_resolver,
|
| + interfaces::ProxyResolverErrorObserverPtr error_observer) {
|
| // The MojoProxyResolverHolder will delete itself when either |request| or
|
| // |host_resolver| encounters a connection error, that is, when either the
|
| // ProxyResolver client or the HostResolver implementation is deleted.
|
| new MojoProxyResolverHolder(proxy_resolver_impl_factory_, request.Pass(),
|
| - host_resolver.Pass());
|
| + host_resolver.Pass(), error_observer.Pass());
|
| }
|
|
|
| } // namespace net
|
|
|