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 |