#ifndef EXTENSIONS_BROWSER_API_DNS_DNS_API_H_
#define EXTENSIONS_BROWSER_API_DNS_DNS_API_H_
#include "extensions/browser/extension_function.h"
#include "extensions/buildflags/buildflags.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "net/base/address_list.h"
#include "net/dns/public/host_resolver_results.h"
#include "services/network/public/cpp/resolve_host_client_base.h"
#include "services/network/public/mojom/network_context.mojom.h"
static_assert(BUILDFLAG(ENABLE_EXTENSIONS_CORE));
namespace extensions {
class DnsResolveFunction : public ExtensionFunction,
public network::ResolveHostClientBase {
public:
DECLARE_EXTENSION_FUNCTION("dns.resolve", DNS_RESOLVE)
DnsResolveFunction();
protected:
~DnsResolveFunction() override;
ResponseAction Run() override;
private:
void OnComplete(
int result,
const net::ResolveErrorInfo& resolve_error_info,
const net::AddressList& resolved_addresses,
const net::HostResolverEndpointResults& alternative_endpoints) override;
mojo::Receiver<network::mojom::ResolveHostClient> receiver_{this};
};
}
#endif