Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4354)

Unified Diff: chrome/browser/net/chrome_mojo_proxy_resolver_factory.h

Issue 2930743002: Use a MojoProxyResolverFactory on Android. (Closed)
Patch Set: Oops Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/BUILD.gn ('k') | chrome/browser/net/chrome_mojo_proxy_resolver_factory.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/net/chrome_mojo_proxy_resolver_factory.h
diff --git a/chrome/browser/net/utility_process_mojo_proxy_resolver_factory.h b/chrome/browser/net/chrome_mojo_proxy_resolver_factory.h
similarity index 54%
rename from chrome/browser/net/utility_process_mojo_proxy_resolver_factory.h
rename to chrome/browser/net/chrome_mojo_proxy_resolver_factory.h
index b39362372e789d3cfacb9ffa7d774ff7071934ca..610b146c27487f82c063a99028516b78a93aa58a 100644
--- a/chrome/browser/net/utility_process_mojo_proxy_resolver_factory.h
+++ b/chrome/browser/net/chrome_mojo_proxy_resolver_factory.h
@@ -2,8 +2,8 @@
// 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_
+#ifndef CHROME_BROWSER_NET_CHROME_MOJO_PROXY_RESOLVER_FACTORY_H_
+#define CHROME_BROWSER_NET_CHROME_MOJO_PROXY_RESOLVER_FACTORY_H_
#include <stddef.h>
@@ -13,22 +13,24 @@
#include "base/timer/timer.h"
#include "net/proxy/mojo_proxy_resolver_factory.h"
+#if !defined(OS_ANDROID)
namespace content {
class UtilityProcessHost;
}
+#endif
+
namespace base {
template <typename Type>
struct DefaultSingletonTraits;
} // namespace base
-// 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 {
+// A factory used to create connections to Mojo proxy resolver services. On
+// Android, the proxy resolvers will run in the browser process, and on other
+// platforms, they'll all be run in the same utility process. Utility process
+// crashes are detected and the utility process is automatically restarted.
+class ChromeMojoProxyResolverFactory : public net::MojoProxyResolverFactory {
public:
- static UtilityProcessMojoProxyResolverFactory* GetInstance();
+ static ChromeMojoProxyResolverFactory* GetInstance();
// Overridden from net::MojoProxyResolverFactory:
std::unique_ptr<base::ScopedClosureRunner> CreateResolver(
@@ -37,13 +39,17 @@ class UtilityProcessMojoProxyResolverFactory
net::interfaces::ProxyResolverFactoryRequestClientPtr client) override;
private:
- friend struct base::DefaultSingletonTraits<
- UtilityProcessMojoProxyResolverFactory>;
- UtilityProcessMojoProxyResolverFactory();
- ~UtilityProcessMojoProxyResolverFactory() override;
+ friend struct base::DefaultSingletonTraits<ChromeMojoProxyResolverFactory>;
+ ChromeMojoProxyResolverFactory();
+ ~ChromeMojoProxyResolverFactory() override;
+
+ // Creates the proxy resolver factory. On desktop, creates a new utility
+ // process before creating it out of process. On Android, creates it on the
+ // current thread.
+ void CreateFactory();
- // Error handler callback for |resolver_factory_|.
- void OnConnectionError();
+ // Destroys |resolver_factory_|.
+ void DestroyFactory();
// Invoked each time a proxy resolver is destroyed.
void OnResolverDestroyed();
@@ -52,20 +58,19 @@ class UtilityProcessMojoProxyResolverFactory
// destroyed.
void OnIdleTimeout();
- // Creates a new utility process and connects to its Mojo proxy resolver
- // factory.
- void CreateProcessAndConnect();
-
net::interfaces::ProxyResolverFactoryPtr resolver_factory_;
+#if !defined(OS_ANDROID)
base::WeakPtr<content::UtilityProcessHost> weak_utility_process_host_;
+#endif
+
size_t num_proxy_resolvers_ = 0;
base::OneShotTimer idle_timer_;
base::ThreadChecker thread_checker_;
- DISALLOW_COPY_AND_ASSIGN(UtilityProcessMojoProxyResolverFactory);
+ DISALLOW_COPY_AND_ASSIGN(ChromeMojoProxyResolverFactory);
};
-#endif // CHROME_BROWSER_NET_UTILITY_PROCESS_MOJO_PROXY_RESOLVER_FACTORY_H_
+#endif // CHROME_BROWSER_NET_CHROME_MOJO_PROXY_RESOLVER_FACTORY_H_
« no previous file with comments | « chrome/browser/BUILD.gn ('k') | chrome/browser/net/chrome_mojo_proxy_resolver_factory.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698