#ifndef CONTENT_BROWSER_PRELOADING_PROXY_LOOKUP_CLIENT_IMPL_H_
#define CONTENT_BROWSER_PRELOADING_PROXY_LOOKUP_CLIENT_IMPL_H_
#include <optional>
#include "base/functional/callback_forward.h"
#include "content/common/content_export.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "services/network/public/mojom/proxy_lookup_client.mojom.h"
class GURL;
namespace network::mojom {
class NetworkContext;
}
namespace content {
class CONTENT_EXPORT ProxyLookupClientImpl
: public network::mojom::ProxyLookupClient {
public:
using ProxyLookupCallback = base::OnceCallback<void(bool has_proxy)>;
ProxyLookupClientImpl(const GURL& url,
ProxyLookupCallback callback,
network::mojom::NetworkContext* network_context);
ProxyLookupClientImpl(
const GURL& url,
const net::NetworkAnonymizationKey network_anonymization_key,
ProxyLookupCallback callback,
network::mojom::NetworkContext* network_context);
~ProxyLookupClientImpl() override;
ProxyLookupClientImpl(const ProxyLookupClientImpl&) = delete;
ProxyLookupClientImpl& operator=(const ProxyLookupClientImpl&) = delete;
void OnProxyLookupComplete(
int32_t net_error,
const std::optional<net::ProxyInfo>& proxy_info) override;
private:
mojo::Receiver<network::mojom::ProxyLookupClient> receiver_{this};
ProxyLookupCallback callback_;
};
}
#endif