Index: chrome/browser/net/utility_process_mojo_proxy_resolver_factory.h |
diff --git a/chrome/browser/net/utility_process_mojo_proxy_resolver_factory.h b/chrome/browser/net/utility_process_mojo_proxy_resolver_factory.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..61481a935e375b981decd8c5f8b33cbaf4eb3ce5 |
--- /dev/null |
+++ b/chrome/browser/net/utility_process_mojo_proxy_resolver_factory.h |
@@ -0,0 +1,49 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef CHROME_BROWSER_NET_UTILITY_PROCESS_MOJO_PROXY_RESOLVER_FACTORY_H_ |
+#define CHROME_BROWSER_NET_UTILITY_PROCESS_MOJO_PROXY_RESOLVER_FACTORY_H_ |
+ |
+#include "base/macros.h" |
+#include "net/proxy/mojo_proxy_resolver_factory.h" |
+ |
+template <typename Type> |
+struct DefaultSingletonTraits; |
+ |
+namespace content { |
+class UtilityProcessHost; |
Sam McNally
2015/03/12 06:26:23
Remove.
Anand Mistry (off Chromium)
2015/03/12 23:01:11
Done.
|
+} |
+ |
+// A factory used to create connections to Mojo proxy resolver services run in a |
+// utility process. All Mojo proxy resolver services will be run in the same |
+// utility process. Utility process crashes are detected and the utility |
+// process is automatically restarted. |
+class UtilityProcessMojoProxyResolverFactory |
+ : public net::MojoProxyResolverFactory, |
+ public mojo::ErrorHandler { |
+ public: |
+ static UtilityProcessMojoProxyResolverFactory* GetInstance(); |
+ |
+ // Overridden from net::MojoProxyResolverFactory: |
+ void Create(mojo::InterfaceRequest<net::interfaces::ProxyResolver> req, |
+ net::interfaces::HostResolverPtr host_resolver) override; |
+ |
+ private: |
+ friend struct DefaultSingletonTraits<UtilityProcessMojoProxyResolverFactory>; |
+ UtilityProcessMojoProxyResolverFactory(); |
+ ~UtilityProcessMojoProxyResolverFactory() override; |
+ |
+ // Overridden from mojo::ErrorHandler: |
+ void OnConnectionError() override; |
+ |
+ // Creates a new utility process and connects to its Mojo proxy resolver |
+ // factory. |
+ void CreateProcessAndConnect(); |
+ |
+ net::interfaces::ProxyResolverFactoryPtr resolver_factory_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(UtilityProcessMojoProxyResolverFactory); |
+}; |
+ |
+#endif // CHROME_BROWSER_NET_UTILITY_PROCESS_MOJO_PROXY_RESOLVER_FACTORY_H_ |