diff options
author | amistry <amistry@chromium.org> | 2015-03-11 22:24:01 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-03-12 05:24:32 +0000 |
commit | 6e1ed1ba34bf761fc17c111287b8828f2f409f6c (patch) | |
tree | 1d273e249747dc0125d084942a52ed1c25a1d3f5 /net/proxy/in_process_mojo_proxy_resolver_factory.cc | |
parent | 86aa57796c183cf2782c972025ed33c403ac067b (diff) | |
download | chromium_src-6e1ed1ba34bf761fc17c111287b8828f2f409f6c.zip chromium_src-6e1ed1ba34bf761fc17c111287b8828f2f409f6c.tar.gz chromium_src-6e1ed1ba34bf761fc17c111287b8828f2f409f6c.tar.bz2 |
Create an in-process v8 proxy resolver using Mojo.
This in-process mode will only be used for testing and debugging, and is
intentionally not exposed via about:flags.
BUG=11746
Review URL: https://codereview.chromium.org/910343003
Cr-Commit-Position: refs/heads/master@{#320236}
Diffstat (limited to 'net/proxy/in_process_mojo_proxy_resolver_factory.cc')
-rw-r--r-- | net/proxy/in_process_mojo_proxy_resolver_factory.cc | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/net/proxy/in_process_mojo_proxy_resolver_factory.cc b/net/proxy/in_process_mojo_proxy_resolver_factory.cc new file mode 100644 index 0000000..da5f113 --- /dev/null +++ b/net/proxy/in_process_mojo_proxy_resolver_factory.cc @@ -0,0 +1,34 @@ +// 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. + +#include "net/proxy/in_process_mojo_proxy_resolver_factory.h" + +#include "base/memory/singleton.h" +#include "net/proxy/mojo_proxy_resolver_factory_impl.h" + +namespace net { + +// static +InProcessMojoProxyResolverFactory* +InProcessMojoProxyResolverFactory::GetInstance() { + return Singleton<InProcessMojoProxyResolverFactory>::get(); +} + +InProcessMojoProxyResolverFactory::InProcessMojoProxyResolverFactory() { + // Implementation lifetime is strongly bound to the life of the connection via + // |factory_|. When |factory_| is destroyed, the Mojo connection is terminated + // which causes this object to be destroyed. + new MojoProxyResolverFactoryImpl(mojo::GetProxy(&factory_)); +} + +InProcessMojoProxyResolverFactory::~InProcessMojoProxyResolverFactory() = + default; + +void InProcessMojoProxyResolverFactory::Create( + mojo::InterfaceRequest<interfaces::ProxyResolver> req, + interfaces::HostResolverPtr host_resolver) { + factory_->CreateResolver(req.Pass(), host_resolver.Pass()); +} + +} // namespace net |