| Index: net/proxy/proxy_resolver_v8.h
|
| diff --git a/net/proxy/proxy_resolver_v8.h b/net/proxy/proxy_resolver_v8.h
|
| deleted file mode 100644
|
| index 64d1983872ffced72c05877f40969cf5a6e10ec1..0000000000000000000000000000000000000000
|
| --- a/net/proxy/proxy_resolver_v8.h
|
| +++ /dev/null
|
| @@ -1,125 +0,0 @@
|
| -// Copyright (c) 2011 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_H_
|
| -#define NET_PROXY_PROXY_RESOLVER_V8_H_
|
| -
|
| -#include "base/compiler_specific.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "net/base/net_export.h"
|
| -#include "net/proxy/proxy_resolver.h"
|
| -
|
| -namespace gin {
|
| -class IsolateHolder;
|
| -} // namespace gin
|
| -
|
| -namespace v8 {
|
| -class HeapStatistics;
|
| -class Isolate;
|
| -} // namespace v8
|
| -
|
| -namespace net {
|
| -
|
| -// Implementation of ProxyResolver that uses V8 to evaluate PAC scripts.
|
| -//
|
| -// ----------------------------------------------------------------------------
|
| -// !!! Important note on threading model:
|
| -// ----------------------------------------------------------------------------
|
| -// There can be only one instance of V8 running at a time. To enforce this
|
| -// constraint, ProxyResolverV8 holds a v8::Locker during execution. Therefore
|
| -// it is OK to run multiple instances of ProxyResolverV8 on different threads,
|
| -// since only one will be running inside V8 at a time.
|
| -//
|
| -// It is important that *ALL* instances of V8 in the process be using
|
| -// v8::Locker. If not there can be race conditions between the non-locked V8
|
| -// instances and the locked V8 instances used by ProxyResolverV8 (assuming they
|
| -// run on different threads).
|
| -//
|
| -// This is the case with the V8 instance used by chromium's renderer -- it runs
|
| -// on a different thread from ProxyResolver (renderer thread vs PAC thread),
|
| -// and does not use locking since it expects to be alone.
|
| -class NET_EXPORT_PRIVATE ProxyResolverV8 : public ProxyResolver {
|
| - public:
|
| - // Interface for the javascript bindings.
|
| - class NET_EXPORT_PRIVATE JSBindings {
|
| - public:
|
| - enum ResolveDnsOperation {
|
| - DNS_RESOLVE,
|
| - DNS_RESOLVE_EX,
|
| - MY_IP_ADDRESS,
|
| - MY_IP_ADDRESS_EX,
|
| - };
|
| -
|
| - JSBindings() {}
|
| -
|
| - // Handler for "dnsResolve()", "dnsResolveEx()", "myIpAddress()",
|
| - // "myIpAddressEx()". Returns true on success and fills |*output| with the
|
| - // result. If |*terminate| is set to true, then the script execution will
|
| - // be aborted. Note that termination may not happen right away.
|
| - virtual bool ResolveDns(const std::string& host,
|
| - ResolveDnsOperation op,
|
| - std::string* output,
|
| - bool* terminate) = 0;
|
| -
|
| - // Handler for "alert(message)"
|
| - virtual void Alert(const base::string16& message) = 0;
|
| -
|
| - // Handler for when an error is encountered. |line_number| may be -1
|
| - // if a line number is not applicable to this error.
|
| - virtual void OnError(int line_number, const base::string16& error) = 0;
|
| -
|
| - protected:
|
| - virtual ~JSBindings() {}
|
| - };
|
| -
|
| - // Constructs a ProxyResolverV8.
|
| - ProxyResolverV8();
|
| -
|
| - ~ProxyResolverV8() override;
|
| -
|
| - JSBindings* js_bindings() const { return js_bindings_; }
|
| - void set_js_bindings(JSBindings* js_bindings) { js_bindings_ = js_bindings; }
|
| -
|
| - // ProxyResolver implementation:
|
| - int GetProxyForURL(const GURL& url,
|
| - ProxyInfo* results,
|
| - const net::CompletionCallback& /*callback*/,
|
| - RequestHandle* /*request*/,
|
| - const BoundNetLog& net_log) override;
|
| - void CancelRequest(RequestHandle request) override;
|
| - LoadState GetLoadState(RequestHandle request) const override;
|
| - void CancelSetPacScript() override;
|
| - int SetPacScript(const scoped_refptr<ProxyResolverScriptData>& script_data,
|
| - const net::CompletionCallback& /*callback*/) override;
|
| -
|
| - // Create an isolate to use for the proxy resolver. If the embedder invokes
|
| - // this method multiple times, it must be invoked in a thread safe manner,
|
| - // e.g. always from the same thread.
|
| - static void EnsureIsolateCreated();
|
| -
|
| - static v8::Isolate* GetDefaultIsolate();
|
| -
|
| - // Get total/ued heap memory usage of all v8 instances used by the proxy
|
| - // resolver.
|
| - static size_t GetTotalHeapSize();
|
| - static size_t GetUsedHeapSize();
|
| -
|
| - private:
|
| - static gin::IsolateHolder* g_proxy_resolver_isolate_;
|
| -
|
| - // Context holds the Javascript state for the most recently loaded PAC
|
| - // script. It corresponds with the data from the last call to
|
| - // SetPacScript().
|
| - class Context;
|
| -
|
| - scoped_ptr<Context> context_;
|
| -
|
| - JSBindings* js_bindings_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(ProxyResolverV8);
|
| -};
|
| -
|
| -} // namespace net
|
| -
|
| -#endif // NET_PROXY_PROXY_RESOLVER_V8_H_
|
|
|