mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-24 22:36:09 +03:00
76 lines
2.1 KiB
Plaintext
76 lines
2.1 KiB
Plaintext
|
// 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.
|
||
|
|
||
|
// Put Mojo definitions into their own namespace to avoid collisions with C++
|
||
|
// definitions.
|
||
|
// TODO(amistry): Resolve the conflict between these two sets of definitions.
|
||
|
module proxy_resolver.mojom;
|
||
|
|
||
|
import "net/interfaces/address_family.mojom";
|
||
|
import "net/interfaces/host_resolver_service.mojom";
|
||
|
import "url/mojom/url.mojom";
|
||
|
|
||
|
const string kProxyResolverServiceName = "proxy_resolver";
|
||
|
|
||
|
// Mirror of net::ProxyServer::Scheme.
|
||
|
enum ProxyScheme {
|
||
|
INVALID,
|
||
|
DIRECT,
|
||
|
HTTP,
|
||
|
SOCKS4,
|
||
|
SOCKS5,
|
||
|
HTTPS,
|
||
|
QUIC,
|
||
|
};
|
||
|
|
||
|
// Mirror of net::ProxyServer.
|
||
|
struct ProxyServer {
|
||
|
ProxyScheme scheme;
|
||
|
|
||
|
// |host| and |port| are only valid if |scheme| is not INVALID or DIRECT.
|
||
|
string host;
|
||
|
uint16 port;
|
||
|
};
|
||
|
|
||
|
struct ProxyInfo {
|
||
|
array<ProxyServer> proxy_servers;
|
||
|
};
|
||
|
|
||
|
interface ProxyResolver {
|
||
|
// Use a ProxyResolverRequestClient instead of returning a result so we can
|
||
|
// cancel in-flight requests by destroying the client.
|
||
|
GetProxyForUrl(url.mojom.Url url, ProxyResolverRequestClient client);
|
||
|
};
|
||
|
|
||
|
interface ProxyResolverRequestClient {
|
||
|
ReportResult(int32 error, ProxyInfo proxy_info);
|
||
|
|
||
|
Alert(string error);
|
||
|
OnError(int32 line_number, string error);
|
||
|
|
||
|
ResolveDns(net.interfaces.HostResolverRequestInfo request_info,
|
||
|
net.interfaces.HostResolverRequestClient client);
|
||
|
};
|
||
|
|
||
|
// Creates a ProxyResolver that uses the provided PAC script. The ProxyResolver
|
||
|
// will remain valid even after the ProxyResolverFactory has been destroyed.
|
||
|
//
|
||
|
// Destroying |client| before its ReportResult method is invoked may cancel
|
||
|
// creation of the ProxyResolverFactory.
|
||
|
interface ProxyResolverFactory {
|
||
|
CreateResolver(string pac_script,
|
||
|
ProxyResolver& resolver,
|
||
|
ProxyResolverFactoryRequestClient client);
|
||
|
};
|
||
|
|
||
|
interface ProxyResolverFactoryRequestClient {
|
||
|
ReportResult(int32 error);
|
||
|
|
||
|
Alert(string error);
|
||
|
OnError(int32 line_number, string error);
|
||
|
|
||
|
ResolveDns(net.interfaces.HostResolverRequestInfo request_info,
|
||
|
net.interfaces.HostResolverRequestClient client);
|
||
|
};
|