Index: net/proxy/proxy_resolver_v8_tracing_wrapper.h |
diff --git a/net/proxy/proxy_resolver_v8_tracing_wrapper.h b/net/proxy/proxy_resolver_v8_tracing_wrapper.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..28343d807363b7b1c925ad6d724d339641e04b6e |
--- /dev/null |
+++ b/net/proxy/proxy_resolver_v8_tracing_wrapper.h |
@@ -0,0 +1,65 @@ |
+// 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 NET_PROXY_PROXY_RESOLVER_V8_TRACING_WRAPPER_H_ |
+#define NET_PROXY_PROXY_RESOLVER_V8_TRACING_WRAPPER_H_ |
+ |
+#include "base/basictypes.h" |
+#include "base/memory/ref_counted.h" |
+#include "base/memory/scoped_ptr.h" |
+#include "net/base/net_export.h" |
+#include "net/proxy/proxy_resolver.h" |
+#include "net/proxy/proxy_resolver_factory.h" |
+#include "net/proxy/proxy_resolver_v8_tracing.h" |
+ |
+namespace net { |
+ |
+class HostResolver; |
+class NetLog; |
+class ProxyResolverErrorObserver; |
+ |
+// A wrapper for ProxyResolverV8TracingFactory that implements the |
+// ProxyResolverFactory interface. |
+class NET_EXPORT ProxyResolverFactoryV8TracingWrapper |
+ : public ProxyResolverFactory { |
+ public: |
+ // Note that |host_resolver| and |net_log| are expected to outlive |this| and |
+ // any ProxyResolver instances created using |this|. |error_observer_factory| |
+ // will be invoked once per CreateProxyResolver() call to create a |
+ // ProxyResolverErrorObserver to be used by the ProxyResolver instance |
+ // returned by that call. |
+ ProxyResolverFactoryV8TracingWrapper( |
+ HostResolver* host_resolver, |
+ NetLog* net_log, |
+ const base::Callback<scoped_ptr<ProxyResolverErrorObserver>()>& |
+ error_observer_factory); |
+ ~ProxyResolverFactoryV8TracingWrapper() override; |
+ |
+ // ProxyResolverFactory override. |
+ int CreateProxyResolver( |
+ const scoped_refptr<ProxyResolverScriptData>& pac_script, |
+ scoped_ptr<ProxyResolver>* resolver, |
+ const CompletionCallback& callback, |
+ scoped_ptr<Request>* request) override; |
+ |
+ private: |
+ void OnProxyResolverCreated( |
+ scoped_ptr<scoped_ptr<ProxyResolverV8Tracing>> v8_resolver, |
+ scoped_ptr<ProxyResolver>* resolver, |
+ const CompletionCallback& callback, |
+ scoped_ptr<ProxyResolverErrorObserver> error_observer, |
+ int error); |
+ |
+ scoped_ptr<ProxyResolverV8TracingFactory> factory_impl_; |
+ HostResolver* const host_resolver_; |
+ NetLog* const net_log_; |
+ const base::Callback<scoped_ptr<ProxyResolverErrorObserver>()> |
+ error_observer_factory_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(ProxyResolverFactoryV8TracingWrapper); |
+}; |
+ |
+} // namespace net |
+ |
+#endif // NET_PROXY_PROXY_RESOLVER_V8_TRACING_WRAPPER_H_ |