// services/network/public/mojom/network_service.mojom-test-utils.h is auto generated by mojom_bindings_generator.py, do not edit

// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef SERVICES_NETWORK_PUBLIC_MOJOM_NETWORK_SERVICE_MOJOM_TEST_UTILS_H_
#define SERVICES_NETWORK_PUBLIC_MOJOM_NETWORK_SERVICE_MOJOM_TEST_UTILS_H_

#include "services/network/public/mojom/network_service.mojom.h"


namespace network::mojom {


class  NetworkServiceInterceptorForTesting : public NetworkService {
  virtual NetworkService* GetForwardingInterface() = 0;
  void SetParams(NetworkServiceParamsPtr params) override;
  void StartNetLog(::base::File file, uint64_t max_total_size, ::net::NetLogCaptureMode capture_mode, ::net::NetLogFileFormat file_format, ::base::DictValue constants, std::optional<::base::TimeDelta> duration) override;
  void AttachNetLogProxy(::mojo::PendingRemote<::network::mojom::NetLogProxySource> proxy_source, ::mojo::PendingReceiver<::network::mojom::NetLogProxySink> proxy_sink) override;
  void SetSSLKeyLogFile(::base::File file) override;
  void CreateNetworkContext(::mojo::PendingReceiver<::network::mojom::NetworkContext> context, ::network::mojom::NetworkContextParamsPtr params) override;
  void ConfigureStubHostResolver(::net::InsecureDnsMode insecure_dns_mode, bool happy_eyeballs_v3_enabled, ::net::SecureDnsMode secure_dns_mode, const ::net::DnsOverHttpsConfig& dns_over_https_config, bool additional_dns_types_enabled, const std::vector<::net::IPEndPoint>& fallback_doh_nameservers) override;
  void DisableQuic() override;
  void SetUpHttpAuth(HttpAuthStaticParamsPtr http_auth_static_params) override;
  void ConfigureHttpAuthPrefs(HttpAuthDynamicParamsPtr http_auth_dynamic_params) override;
  void SetRawHeadersAccess(::network::RendererProcessId process_id, const std::vector<::url::Origin>& origins) override;
  void SetMaxConnectionsPerProxyChain(std::optional<uint32_t> max_connections_normal, std::optional<uint32_t> max_connections_websocket, bool allow_size_randomization) override;
  void GetNetworkChangeManager(::mojo::PendingReceiver<::network::mojom::NetworkChangeManager> network_change_manager) override;
  void GetNetworkQualityEstimatorManager(::mojo::PendingReceiver<::network::mojom::NetworkQualityEstimatorManager> receiver) override;
  void GetDnsConfigChangeManager(::mojo::PendingReceiver<::network::mojom::DnsConfigChangeManager> receiver) override;
  void GetNetworkList(uint32_t policy, GetNetworkListCallback callback) override;
  void OnTrustStoreChanged() override;
  void OnClientCertStoreChanged() override;
  void OnPeerToPeerConnectionsCountChange(uint32_t count) override;
  void OnApplicationStateChange(::base::android::ApplicationState state) override;
  void SetTrustTokenKeyCommitments(const std::string& raw_commitments, SetTrustTokenKeyCommitmentsCallback callback) override;
  void ClearSCTAuditingCache() override;
  void ConfigureSCTAuditing(SCTAuditingConfigurationPtr configuration) override;
  void UpdateCtLogList(std::vector<::network::mojom::CTLogInfoPtr> log_list, UpdateCtLogListCallback callback) override;
  void UpdateCtKnownPopularSCTs(const std::vector<std::vector<uint8_t>>& sct_hashes, UpdateCtKnownPopularSCTsCallback callback) override;
  void SetCtEnforcementEnabled(bool enabled, SetCtEnforcementEnabledCallback callback) override;
  void UpdateKeyPinsList(::network::mojom::PinListPtr pin_list, ::base::Time update_time) override;
  void DumpWithoutCrashing(::base::Time dump_request_time) override;
  void BindTestInterfaceForTesting(::mojo::PendingReceiver<::network::mojom::NetworkServiceTest> receiver) override;
  void SetFirstPartySets(::net::GlobalFirstPartySets sets) override;
  void SetExplicitlyAllowedPorts(const std::vector<uint16_t>& ports) override;
  void ParseHeaders(const ::GURL& url, const ::scoped_refptr<::net::HttpResponseHeaders>& headers, ParseHeadersCallback callback) override;
  void EnableDataUseUpdates(bool enable) override;
  void SetIPv6ReachabilityOverride(bool reachability_override) override;
  void SetNetworkAnnotationMonitor(::mojo::PendingRemote<::network::mojom::NetworkAnnotationMonitor> remote) override;
  void InterceptUrlLoaderForBodyDecoding(const std::vector<::net::SourceStreamType>& content_encoding_types, ::mojo::ScopedDataPipeConsumerHandle source_body, ::mojo::ScopedDataPipeProducerHandle dest_body, ::mojo::PendingRemote<::network::mojom::URLLoader> source_url_loader, ::mojo::PendingReceiver<::network::mojom::URLLoaderClient> source_url_loader_client, ::mojo::PendingReceiver<::network::mojom::URLLoader> dest_url_loader, ::mojo::PendingRemote<::network::mojom::URLLoaderClient> dest_url_loader_client) override;
  void DecodeContentEncoding(const std::vector<::net::SourceStreamType>& content_encoding_types, ::mojo::ScopedDataPipeConsumerHandle source_body, ::mojo::ScopedDataPipeProducerHandle dest_body, DecodeContentEncodingCallback callback) override;
  void SetTLS13EarlyDataEnabled(bool enabled) override;
  void AddDurableMessageCollector(::mojo::PendingReceiver<DurableMessageCollector> receiver) override;
  void BindNetworkContextCreator(::mojo::PendingReceiver<NetworkContextCreator> receiver) override;
};
class  NetworkServiceAsyncWaiter {
 public:
  explicit NetworkServiceAsyncWaiter(NetworkService* proxy);

  NetworkServiceAsyncWaiter(const NetworkServiceAsyncWaiter&) = delete;
  NetworkServiceAsyncWaiter& operator=(const NetworkServiceAsyncWaiter&) = delete;

  ~NetworkServiceAsyncWaiter();
  void GetNetworkList(
      uint32_t policy, std::optional<std::vector<::net::NetworkInterface>>* out_networks);
  std::optional<std::vector<::net::NetworkInterface>> GetNetworkList(uint32_t policy);
  void SetTrustTokenKeyCommitments(
      const std::string& raw_commitments);
  
  void UpdateCtLogList(
      std::vector<::network::mojom::CTLogInfoPtr> log_list);
  
  void UpdateCtKnownPopularSCTs(
      const std::vector<std::vector<uint8_t>>& sct_hashes);
  
  void SetCtEnforcementEnabled(
      bool enabled);
  
  void ParseHeaders(
      const ::GURL& url, const ::scoped_refptr<::net::HttpResponseHeaders>& headers, ::network::mojom::ParsedHeadersPtr* out_parsed_headers);
  ::network::mojom::ParsedHeadersPtr ParseHeaders(const ::GURL& url, const ::scoped_refptr<::net::HttpResponseHeaders>& headers);
  void DecodeContentEncoding(
      const std::vector<::net::SourceStreamType>& content_encoding_types, ::mojo::ScopedDataPipeConsumerHandle source_body, ::mojo::ScopedDataPipeProducerHandle dest_body, int32_t* out_error_code);
  int32_t DecodeContentEncoding(const std::vector<::net::SourceStreamType>& content_encoding_types, ::mojo::ScopedDataPipeConsumerHandle source_body, ::mojo::ScopedDataPipeProducerHandle dest_body);

 private:
  NetworkService* const proxy_;
};


class  NetworkContextCreatorInterceptorForTesting : public NetworkContextCreator {
  virtual NetworkContextCreator* GetForwardingInterface() = 0;
  void CreateNetworkContext(::mojo::PendingReceiver<::network::mojom::NetworkContext> context, ::network::mojom::NetworkContextParamsPtr params) override;
};
class  NetworkContextCreatorAsyncWaiter {
 public:
  explicit NetworkContextCreatorAsyncWaiter(NetworkContextCreator* proxy);

  NetworkContextCreatorAsyncWaiter(const NetworkContextCreatorAsyncWaiter&) = delete;
  NetworkContextCreatorAsyncWaiter& operator=(const NetworkContextCreatorAsyncWaiter&) = delete;

  ~NetworkContextCreatorAsyncWaiter();

 private:
  NetworkContextCreator* const proxy_;
};


class  DurableMessageCollectorInterceptorForTesting : public DurableMessageCollector {
  virtual DurableMessageCollector* GetForwardingInterface() = 0;
  void Configure(NetworkDurableMessageConfigPtr config, ConfigureCallback callback) override;
  void EnableForProfile(const ::base::UnguessableToken& throttling_profile_id, EnableForProfileCallback callback) override;
  void DisableForProfile(const ::base::UnguessableToken& throttling_profile_id, DisableForProfileCallback callback) override;
  void Retrieve(const std::string& devtools_request_id, RetrieveCallback callback) override;
};
class  DurableMessageCollectorAsyncWaiter {
 public:
  explicit DurableMessageCollectorAsyncWaiter(DurableMessageCollector* proxy);

  DurableMessageCollectorAsyncWaiter(const DurableMessageCollectorAsyncWaiter&) = delete;
  DurableMessageCollectorAsyncWaiter& operator=(const DurableMessageCollectorAsyncWaiter&) = delete;

  ~DurableMessageCollectorAsyncWaiter();
  void Configure(
      NetworkDurableMessageConfigPtr config);
  
  void EnableForProfile(
      const ::base::UnguessableToken& throttling_profile_id);
  
  void DisableForProfile(
      const ::base::UnguessableToken& throttling_profile_id);
  
  void Retrieve(
      const std::string& devtools_request_id, std::optional<::mojo_base::BigBuffer>* out_message);
  std::optional<::mojo_base::BigBuffer> Retrieve(const std::string& devtools_request_id);

 private:
  DurableMessageCollector* const proxy_;
};




}  // network::mojom

#endif  // SERVICES_NETWORK_PUBLIC_MOJOM_NETWORK_SERVICE_MOJOM_TEST_UTILS_H_