// services/network/public/mojom/network_context.mojom-shared-internal.h is auto generated by mojom_bindings_generator.py, do not edit

// Copyright 2016 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_CONTEXT_MOJOM_SHARED_INTERNAL_H_
#define SERVICES_NETWORK_PUBLIC_MOJOM_NETWORK_CONTEXT_MOJOM_SHARED_INTERNAL_H_
#include "mojo/public/cpp/bindings/lib/array_internal.h"
#include "mojo/public/cpp/bindings/lib/bindings_internal.h"
#include "mojo/public/cpp/bindings/lib/map_data_internal.h"
#include "mojo/public/cpp/bindings/lib/validation_errors.h"
#include "mojo/public/cpp/bindings/lib/message_fragment.h"
#include "components/content_settings/core/common/content_settings.mojom-shared-internal.h"
#include "components/unexportable_keys/mojom/unexportable_key_service.mojom-shared-internal.h"
#include "components/variations/variations.mojom-shared-internal.h"
#include "mojo/public/mojom/base/big_buffer.mojom-shared-internal.h"
#include "mojo/public/mojom/base/byte_size.mojom-shared-internal.h"
#include "mojo/public/mojom/base/file_path.mojom-shared-internal.h"
#include "mojo/public/mojom/base/time.mojom-shared-internal.h"
#include "mojo/public/mojom/base/unguessable_token.mojom-shared-internal.h"
#include "mojo/public/mojom/base/values.mojom-shared-internal.h"
#include "sandbox/policy/mojom/context.mojom-shared-internal.h"
#include "services/network/public/mojom/address_list.mojom-shared-internal.h"
#include "services/network/public/mojom/auth.mojom-shared-internal.h"
#include "services/network/public/mojom/cache_encryption_provider.mojom-shared-internal.h"
#include "services/network/public/mojom/cert_verifier_service.mojom-shared-internal.h"
#include "services/network/public/mojom/cert_verify_result.mojom-shared-internal.h"
#include "services/network/public/mojom/clear_data_filter.mojom-shared-internal.h"
#include "services/network/public/mojom/client_security_state.mojom-shared-internal.h"
#include "services/network/public/mojom/connection_allowlist.mojom-shared-internal.h"
#include "services/network/public/mojom/connection_change_observer_client.mojom-shared-internal.h"
#include "services/network/public/mojom/cookie_access_observer.mojom-shared-internal.h"
#include "services/network/public/mojom/cookie_encryption_provider.mojom-shared-internal.h"
#include "services/network/public/mojom/cookie_manager.mojom-shared-internal.h"
#include "services/network/public/mojom/cookie_setting_overrides.mojom-shared-internal.h"
#include "services/network/public/mojom/cors_origin_pattern.mojom-shared-internal.h"
#include "services/network/public/mojom/cross_origin_embedder_policy.mojom-shared-internal.h"
#include "services/network/public/mojom/ct_policy.mojom-shared-internal.h"
#include "services/network/public/mojom/default_credentials.mojom-shared-internal.h"
#include "services/network/public/mojom/device_bound_sessions.mojom-shared-internal.h"
#include "services/network/public/mojom/devtools_observer.mojom-shared-internal.h"
#include "services/network/public/mojom/document_isolation_policy.mojom-shared-internal.h"
#include "services/network/public/mojom/fetch_api.mojom-shared-internal.h"
#include "services/network/public/mojom/first_party_sets_access_delegate.mojom-shared-internal.h"
#include "services/network/public/mojom/hash_value.mojom-shared-internal.h"
#include "services/network/public/mojom/host_resolver.mojom-shared-internal.h"
#include "services/network/public/mojom/http_cache_backend_file_operations.mojom-shared-internal.h"
#include "services/network/public/mojom/http_request_headers.mojom-shared-internal.h"
#include "services/network/public/mojom/http_response_headers.mojom-shared-internal.h"
#include "services/network/public/mojom/ip_address.mojom-shared-internal.h"
#include "services/network/public/mojom/ip_address_space.mojom-shared-internal.h"
#include "services/network/public/mojom/ip_endpoint.mojom-shared-internal.h"
#include "services/network/public/mojom/isolation_info.mojom-shared-internal.h"
#include "services/network/public/mojom/mdns_responder.mojom-shared-internal.h"
#include "services/network/public/mojom/mutable_network_traffic_annotation_tag.mojom-shared-internal.h"
#include "services/network/public/mojom/net_log.mojom-shared-internal.h"
#include "services/network/public/mojom/network_anonymization_key.mojom-shared-internal.h"
#include "services/network/public/mojom/network_context_client.mojom-shared-internal.h"
#include "services/network/public/mojom/network_isolation_key.mojom-shared-internal.h"
#include "services/network/public/mojom/network_param.mojom-shared-internal.h"
#include "services/network/public/mojom/oblivious_http_request.mojom-shared-internal.h"
#include "services/network/public/mojom/originating_process_id.mojom-shared-internal.h"
#include "services/network/public/mojom/parsed_headers.mojom-shared-internal.h"
#include "services/network/public/mojom/proxy_config.mojom-shared-internal.h"
#include "services/network/public/mojom/proxy_config_with_annotation.mojom-shared-internal.h"
#include "services/network/public/mojom/proxy_lookup_client.mojom-shared-internal.h"
#include "services/network/public/mojom/proxy_resolving_socket.mojom-shared-internal.h"
#include "services/network/public/mojom/reporting_service.mojom-shared-internal.h"
#include "services/network/public/mojom/restricted_cookie_manager.mojom-shared-internal.h"
#include "services/network/public/mojom/restricted_udp_socket.mojom-shared-internal.h"
#include "services/network/public/mojom/schemeful_site.mojom-shared-internal.h"
#include "services/network/public/mojom/shared_dictionary_access_observer.mojom-shared-internal.h"
#include "services/network/public/mojom/shared_dictionary_isolation_key.mojom-shared-internal.h"
#include "services/network/public/mojom/shared_dictionary_usage_info.mojom-shared-internal.h"
#include "services/network/public/mojom/site_for_cookies.mojom-shared-internal.h"
#include "services/network/public/mojom/socket_broker.mojom-shared-internal.h"
#include "services/network/public/mojom/socket_factory.mojom-shared-internal.h"
#include "services/network/public/mojom/ssl_config.mojom-shared-internal.h"
#include "services/network/public/mojom/ssl_info.mojom-shared-internal.h"
#include "services/network/public/mojom/storage_access_api.mojom-shared-internal.h"
#include "services/network/public/mojom/tcp_socket.mojom-shared-internal.h"
#include "services/network/public/mojom/transferable_directory.mojom-shared-internal.h"
#include "services/network/public/mojom/trust_token_access_observer.mojom-shared-internal.h"
#include "services/network/public/mojom/trust_tokens.mojom-shared-internal.h"
#include "services/network/public/mojom/udp_socket.mojom-shared-internal.h"
#include "services/network/public/mojom/url_loader.mojom-shared-internal.h"
#include "services/network/public/mojom/url_loader_factory.mojom-shared-internal.h"
#include "services/network/public/mojom/url_loader_network_service_observer.mojom-shared-internal.h"
#include "services/network/public/mojom/url_request.mojom-shared-internal.h"
#include "services/network/public/mojom/url_response_head.mojom-shared-internal.h"
#include "services/network/public/mojom/web_transport.mojom-shared-internal.h"
#include "services/network/public/mojom/websocket.mojom-shared-internal.h"
#include "services/network/public/mojom/x509_certificate.mojom-shared-internal.h"
#include "services/proxy_resolver/public/mojom/proxy_resolver.mojom-shared-internal.h"
#include "url/mojom/origin.mojom-shared-internal.h"
#include "url/mojom/scheme_host_port.mojom-shared-internal.h"
#include "url/mojom/url.mojom-shared-internal.h"
#include "services/network/public/mojom/p2p.mojom-shared-internal.h"
#include "services/network/public/mojom/p2p_trusted.mojom-shared-internal.h"
#include "mojo/public/cpp/bindings/lib/native_enum_data.h"
#include "mojo/public/interfaces/bindings/native_struct.mojom-shared-internal.h"



namespace mojo {
namespace internal {
class ValidationContext;
}
}


namespace network::mojom {
namespace internal {
class CustomProxyConfig_Data;
class CertVerifierServiceRemoteParams_Data;
class HttpAuthStaticNetworkContextParams_Data;
class NetworkContextFilePaths_Data;
class NetworkContextParams_Data;
class NetworkConditions_Data;
class MatchedNetworkConditions_Data;
class SharedDictionaryInfo_Data;
class SignedExchangeReport_Data;
class URLLoaderFactoryOverride_Data;
class URLLoaderFactoryParams_Data;
class IdAndAllowlistedPatterns_Data;

struct TrustTokenOperationPolicyVerdict_Data {
 public:
  static bool constexpr kIsExtensible = false;

  static bool IsKnownValue(int32_t value) {
    switch (value) {
      case 0:
      case 1:
        return true;
    }
    return false;
  }

  static bool Validate(int32_t value,
                       mojo::internal::ValidationContext* validation_context) {
    if (kIsExtensible || IsKnownValue(value))
      return true;

    ReportValidationError(validation_context,
                          mojo::internal::VALIDATION_ERROR_UNKNOWN_ENUM_VALUE);
    return false;
  }
};

struct SCTAuditingMode_Data {
 public:
  static bool constexpr kIsExtensible = false;

  static bool IsKnownValue(int32_t value) {
    switch (value) {
      case 0:
      case 1:
      case 2:
        return true;
    }
    return false;
  }

  static bool Validate(int32_t value,
                       mojo::internal::ValidationContext* validation_context) {
    if (kIsExtensible || IsKnownValue(value))
      return true;

    ReportValidationError(validation_context,
                          mojo::internal::VALIDATION_ERROR_UNKNOWN_ENUM_VALUE);
    return false;
  }
};

struct NetworkContext_DomainReliabilityClearMode_Data {
 public:
  static bool constexpr kIsExtensible = false;

  static bool IsKnownValue(int32_t value) {
    switch (value) {
      case 0:
      case 1:
        return true;
    }
    return false;
  }

  static bool Validate(int32_t value,
                       mojo::internal::ValidationContext* validation_context) {
    if (kIsExtensible || IsKnownValue(value))
      return true;

    ReportValidationError(validation_context,
                          mojo::internal::VALIDATION_ERROR_UNKNOWN_ENUM_VALUE);
    return false;
  }
};

#pragma pack(push, 1)
class  CustomProxyConfig_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<::network::mojom::internal::ProxyRules_Data> rules;
  uint8_t should_override_existing_config : 1;
  uint8_t allow_non_idempotent_methods : 1;
  uint8_t pad2_[7];
  mojo::internal::Pointer<::network::mojom::internal::HttpRequestHeaders_Data> connect_tunnel_headers;

 private:
  friend class mojo::internal::MessageFragment<CustomProxyConfig_Data>;

  CustomProxyConfig_Data();
  ~CustomProxyConfig_Data() = delete;
};
static_assert(sizeof(CustomProxyConfig_Data) == 32,
              "Bad sizeof(CustomProxyConfig_Data)");
// Used by CustomProxyConfig::WrapAsMessage to lazily serialize the struct.
template <typename UserType, typename DataView>
struct CustomProxyConfig_UnserializedMessageContext
    : public mojo::internal::UnserializedMessageContext {
 public:
  static const mojo::internal::UnserializedMessageContext::Tag kMessageTag;

  CustomProxyConfig_UnserializedMessageContext(
    uint32_t message_name,
    uint32_t message_flags,
    UserType input)
      : mojo::internal::UnserializedMessageContext(&kMessageTag, message_name, message_flags)
      , user_data_(std::move(input)) {}
  ~CustomProxyConfig_UnserializedMessageContext() override = default;

  UserType TakeData() {
    return std::move(user_data_);
  }

 private:
  // mojo::internal::UnserializedMessageContext:
  void Serialize(mojo::Message& message) override {
    mojo::internal::MessageFragment<CustomProxyConfig_Data> fragment(message);
    mojo::internal::Serialize<DataView>(user_data_, fragment);
  }

  UserType user_data_;
};

template <typename UserType, typename DataView>
const mojo::internal::UnserializedMessageContext::Tag
    CustomProxyConfig_UnserializedMessageContext<UserType, DataView>::kMessageTag = {};
class  CertVerifierServiceRemoteParams_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;
  mojo::internal::Interface_Data cert_verifier_service;
  mojo::internal::Handle_Data cert_verifier_service_client_receiver;
  uint8_t padfinal_[4];

 private:
  friend class mojo::internal::MessageFragment<CertVerifierServiceRemoteParams_Data>;

  CertVerifierServiceRemoteParams_Data();
  ~CertVerifierServiceRemoteParams_Data() = delete;
};
static_assert(sizeof(CertVerifierServiceRemoteParams_Data) == 24,
              "Bad sizeof(CertVerifierServiceRemoteParams_Data)");
// Used by CertVerifierServiceRemoteParams::WrapAsMessage to lazily serialize the struct.
template <typename UserType, typename DataView>
struct CertVerifierServiceRemoteParams_UnserializedMessageContext
    : public mojo::internal::UnserializedMessageContext {
 public:
  static const mojo::internal::UnserializedMessageContext::Tag kMessageTag;

  CertVerifierServiceRemoteParams_UnserializedMessageContext(
    uint32_t message_name,
    uint32_t message_flags,
    UserType input)
      : mojo::internal::UnserializedMessageContext(&kMessageTag, message_name, message_flags)
      , user_data_(std::move(input)) {}
  ~CertVerifierServiceRemoteParams_UnserializedMessageContext() override = default;

  UserType TakeData() {
    return std::move(user_data_);
  }

 private:
  // mojo::internal::UnserializedMessageContext:
  void Serialize(mojo::Message& message) override {
    mojo::internal::MessageFragment<CertVerifierServiceRemoteParams_Data> fragment(message);
    mojo::internal::Serialize<DataView>(user_data_, fragment);
  }

  UserType user_data_;
};

template <typename UserType, typename DataView>
const mojo::internal::UnserializedMessageContext::Tag
    CertVerifierServiceRemoteParams_UnserializedMessageContext<UserType, DataView>::kMessageTag = {};
class  HttpAuthStaticNetworkContextParams_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;
  int32_t allow_default_credentials;
  uint8_t padfinal_[4];

 private:
  friend class mojo::internal::MessageFragment<HttpAuthStaticNetworkContextParams_Data>;

  HttpAuthStaticNetworkContextParams_Data();
  ~HttpAuthStaticNetworkContextParams_Data() = delete;
};
static_assert(sizeof(HttpAuthStaticNetworkContextParams_Data) == 16,
              "Bad sizeof(HttpAuthStaticNetworkContextParams_Data)");
// Used by HttpAuthStaticNetworkContextParams::WrapAsMessage to lazily serialize the struct.
template <typename UserType, typename DataView>
struct HttpAuthStaticNetworkContextParams_UnserializedMessageContext
    : public mojo::internal::UnserializedMessageContext {
 public:
  static const mojo::internal::UnserializedMessageContext::Tag kMessageTag;

  HttpAuthStaticNetworkContextParams_UnserializedMessageContext(
    uint32_t message_name,
    uint32_t message_flags,
    UserType input)
      : mojo::internal::UnserializedMessageContext(&kMessageTag, message_name, message_flags)
      , user_data_(std::move(input)) {}
  ~HttpAuthStaticNetworkContextParams_UnserializedMessageContext() override = default;

  UserType TakeData() {
    return std::move(user_data_);
  }

 private:
  // mojo::internal::UnserializedMessageContext:
  void Serialize(mojo::Message& message) override {
    mojo::internal::MessageFragment<HttpAuthStaticNetworkContextParams_Data> fragment(message);
    mojo::internal::Serialize<DataView>(user_data_, fragment);
  }

  UserType user_data_;
};

template <typename UserType, typename DataView>
const mojo::internal::UnserializedMessageContext::Tag
    HttpAuthStaticNetworkContextParams_UnserializedMessageContext<UserType, DataView>::kMessageTag = {};
class  NetworkContextFilePaths_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;
  ::network::mojom::internal::TransferableDirectory_Data shared_dictionary_directory;
  ::network::mojom::internal::TransferableDirectory_Data http_cache_directory;
  ::network::mojom::internal::TransferableDirectory_Data no_vary_search_directory;
  ::network::mojom::internal::TransferableDirectory_Data logical_invalidation_directory;
  ::network::mojom::internal::TransferableDirectory_Data data_directory;
  mojo::internal::Pointer<::mojo_base::mojom::internal::FilePath_Data> unsandboxed_data_path;
  mojo::internal::Pointer<::mojo_base::mojom::internal::FilePath_Data> cookie_database_name;
  mojo::internal::Pointer<::mojo_base::mojom::internal::FilePath_Data> device_bound_sessions_database_name;
  mojo::internal::Pointer<::mojo_base::mojom::internal::FilePath_Data> trust_token_database_name;
  mojo::internal::Pointer<::mojo_base::mojom::internal::FilePath_Data> http_server_properties_file_name;
  mojo::internal::Pointer<::mojo_base::mojom::internal::FilePath_Data> transport_security_persister_file_name;
  mojo::internal::Pointer<::mojo_base::mojom::internal::FilePath_Data> reporting_and_nel_store_database_name;
  mojo::internal::Pointer<::mojo_base::mojom::internal::FilePath_Data> sct_auditing_pending_reports_file_name;
  uint8_t trigger_migration : 1;
  uint8_t padfinal_[7];

 private:
  friend class mojo::internal::MessageFragment<NetworkContextFilePaths_Data>;

  NetworkContextFilePaths_Data();
  ~NetworkContextFilePaths_Data() = delete;
};
static_assert(sizeof(NetworkContextFilePaths_Data) == 160,
              "Bad sizeof(NetworkContextFilePaths_Data)");
// Used by NetworkContextFilePaths::WrapAsMessage to lazily serialize the struct.
template <typename UserType, typename DataView>
struct NetworkContextFilePaths_UnserializedMessageContext
    : public mojo::internal::UnserializedMessageContext {
 public:
  static const mojo::internal::UnserializedMessageContext::Tag kMessageTag;

  NetworkContextFilePaths_UnserializedMessageContext(
    uint32_t message_name,
    uint32_t message_flags,
    UserType input)
      : mojo::internal::UnserializedMessageContext(&kMessageTag, message_name, message_flags)
      , user_data_(std::move(input)) {}
  ~NetworkContextFilePaths_UnserializedMessageContext() override = default;

  UserType TakeData() {
    return std::move(user_data_);
  }

 private:
  // mojo::internal::UnserializedMessageContext:
  void Serialize(mojo::Message& message) override {
    mojo::internal::MessageFragment<NetworkContextFilePaths_Data> fragment(message);
    mojo::internal::Serialize<DataView>(user_data_, fragment);
  }

  UserType user_data_;
};

template <typename UserType, typename DataView>
const mojo::internal::UnserializedMessageContext::Tag
    NetworkContextFilePaths_UnserializedMessageContext<UserType, DataView>::kMessageTag = {};
class  NetworkContextParams_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<mojo::internal::String_Data> user_agent;
  mojo::internal::Pointer<mojo::internal::String_Data> accept_language;
  uint8_t enable_brotli : 1;
  uint8_t enable_zstd : 1;
  uint8_t enable_referrers : 1;
  uint8_t validate_referrer_policy_on_initial_request : 1;
  uint8_t enable_encrypted_cookies : 1;
  uint8_t restore_old_session_cookies : 1;
  uint8_t persist_session_cookies : 1;
  uint8_t http_cache_enabled : 1;
  uint8_t check_clear_text_permitted : 1;
  uint8_t pac_quick_check_enabled : 1;
  uint8_t enable_certificate_reporting : 1;
  uint8_t enforce_chrome_ct_policy : 1;
  uint8_t enable_domain_reliability : 1;
  uint8_t discard_domain_reliablity_uploads : 1;
  uint8_t skip_reporting_send_permission_check : 1;
  uint8_t reset_http_cache_backend : 1;
  uint8_t split_auth_cache_by_network_anonymization_key : 1;
  uint8_t require_network_anonymization_key : 1;
  uint8_t block_trust_tokens : 1;
  uint8_t shared_dictionary_enabled : 1;
  uint8_t acam_preflight_spec_conformant : 1;
  uint8_t device_bound_sessions_enabled : 1;
  uint8_t stale_dns_enabled : 1;
  uint8_t quic_idle_connection_timeout_seconds_$flag : 1;
  uint8_t enable_encrypted_http_cache : 1;
  uint8_t use_platform_ech_policy : 1;
  mojo::internal::Interface_Data proxy_resolver_factory;
  int32_t http_cache_max_size;
  mojo::internal::Interface_Data http_cache_file_operations_factory;
  mojo::internal::Interface_Data encryption_provider;
  mojo::internal::Pointer<::network::mojom::internal::SSLConfig_Data> initial_ssl_config;
  mojo::internal::Handle_Data ssl_config_client_receiver;
  mojo::internal::Handle_Data proxy_config_client_receiver;
  mojo::internal::Pointer<::network::mojom::internal::ProxyConfigWithAnnotation_Data> initial_proxy_config;
  mojo::internal::Pointer<internal::CustomProxyConfig_Data> initial_custom_proxy_config;
  mojo::internal::Handle_Data custom_proxy_config_client_receiver;
  mojo::internal::Interface_Data custom_proxy_connection_observer_remote;
  mojo::internal::Interface_Data proxy_config_poller_client;
  mojo::internal::Interface_Data proxy_error_client;
  int32_t sct_auditing_mode;
  mojo::internal::Pointer<::network::mojom::internal::CTPolicy_Data> ct_policy;
  mojo::internal::Pointer<internal::CertVerifierServiceRemoteParams_Data> cert_verifier_params;
  mojo::internal::Pointer<::network::mojom::internal::CookieManagerParams_Data> cookie_manager_params;
  mojo::internal::Handle_Data cookie_manager;
  mojo::internal::Handle_Data cookie_store_ready_callback;
  mojo::internal::Pointer<mojo::internal::String_Data> domain_reliability_upload_reporter;
  mojo::internal::Pointer<::mojo_base::mojom::internal::TimeDelta_Data> reporting_delivery_interval;
  mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<::network::mojom::internal::CorsOriginAccessPatterns_Data>>> cors_origin_access_list;
  mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<mojo::internal::String_Data>>> cors_exempt_header_list;
  mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<mojo::internal::String_Data>>> hsts_policy_bypass_list;
  mojo::internal::Pointer<internal::HttpAuthStaticNetworkContextParams_Data> http_auth_static_network_context_params;
  mojo::internal::Pointer<internal::NetworkContextFilePaths_Data> file_paths;
  mojo::internal::Pointer<::mojo_base::mojom::internal::ByteSize_Data> shared_dictionary_cache_max_size;
  mojo::internal::Pointer<::network::mojom::internal::FirstPartySetsAccessDelegateParams_Data> first_party_sets_access_delegate_params;
  mojo::internal::Handle_Data first_party_sets_access_delegate_receiver;
  mojo::internal::Interface_Data cookie_encryption_provider;
  uint8_t pad57_[4];
  mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<::network::mojom::internal::SchemefulSite_Data>>> device_bound_sessions_restricted_sites;
  int64_t bound_network;
  int64_t quic_idle_connection_timeout_seconds_$value;
  mojo::internal::Interface_Data bound_sessions_unexportable_key_service;
  mojo::internal::Pointer<::variations::mojom::internal::VariationsHeaders_Data> initial_variations_headers;
  mojo::internal::Interface_Data device_bound_sessions_network_observer;

 private:
  friend class mojo::internal::MessageFragment<NetworkContextParams_Data>;

  NetworkContextParams_Data();
  ~NetworkContextParams_Data() = delete;
};
static_assert(sizeof(NetworkContextParams_Data) == 288,
              "Bad sizeof(NetworkContextParams_Data)");
// Used by NetworkContextParams::WrapAsMessage to lazily serialize the struct.
template <typename UserType, typename DataView>
struct NetworkContextParams_UnserializedMessageContext
    : public mojo::internal::UnserializedMessageContext {
 public:
  static const mojo::internal::UnserializedMessageContext::Tag kMessageTag;

  NetworkContextParams_UnserializedMessageContext(
    uint32_t message_name,
    uint32_t message_flags,
    UserType input)
      : mojo::internal::UnserializedMessageContext(&kMessageTag, message_name, message_flags)
      , user_data_(std::move(input)) {}
  ~NetworkContextParams_UnserializedMessageContext() override = default;

  UserType TakeData() {
    return std::move(user_data_);
  }

 private:
  // mojo::internal::UnserializedMessageContext:
  void Serialize(mojo::Message& message) override {
    mojo::internal::MessageFragment<NetworkContextParams_Data> fragment(message);
    mojo::internal::Serialize<DataView>(user_data_, fragment);
  }

  UserType user_data_;
};

template <typename UserType, typename DataView>
const mojo::internal::UnserializedMessageContext::Tag
    NetworkContextParams_UnserializedMessageContext<UserType, DataView>::kMessageTag = {};
class  NetworkConditions_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;
  uint8_t offline : 1;
  uint8_t packet_reordering : 1;
  uint8_t pad1_[3];
  int32_t packet_queue_length;
  mojo::internal::Pointer<::mojo_base::mojom::internal::TimeDelta_Data> latency;
  double download_throughput;
  double upload_throughput;
  double packet_loss;
  mojo::internal::Pointer<::mojo_base::mojom::internal::UnguessableToken_Data> rule_id;

 private:
  friend class mojo::internal::MessageFragment<NetworkConditions_Data>;

  NetworkConditions_Data();
  ~NetworkConditions_Data() = delete;
};
static_assert(sizeof(NetworkConditions_Data) == 56,
              "Bad sizeof(NetworkConditions_Data)");
// Used by NetworkConditions::WrapAsMessage to lazily serialize the struct.
template <typename UserType, typename DataView>
struct NetworkConditions_UnserializedMessageContext
    : public mojo::internal::UnserializedMessageContext {
 public:
  static const mojo::internal::UnserializedMessageContext::Tag kMessageTag;

  NetworkConditions_UnserializedMessageContext(
    uint32_t message_name,
    uint32_t message_flags,
    UserType input)
      : mojo::internal::UnserializedMessageContext(&kMessageTag, message_name, message_flags)
      , user_data_(std::move(input)) {}
  ~NetworkConditions_UnserializedMessageContext() override = default;

  UserType TakeData() {
    return std::move(user_data_);
  }

 private:
  // mojo::internal::UnserializedMessageContext:
  void Serialize(mojo::Message& message) override {
    mojo::internal::MessageFragment<NetworkConditions_Data> fragment(message);
    mojo::internal::Serialize<DataView>(user_data_, fragment);
  }

  UserType user_data_;
};

template <typename UserType, typename DataView>
const mojo::internal::UnserializedMessageContext::Tag
    NetworkConditions_UnserializedMessageContext<UserType, DataView>::kMessageTag = {};
class  MatchedNetworkConditions_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<mojo::internal::String_Data> pattern;
  mojo::internal::Pointer<internal::NetworkConditions_Data> conditions;

 private:
  friend class mojo::internal::MessageFragment<MatchedNetworkConditions_Data>;

  MatchedNetworkConditions_Data();
  ~MatchedNetworkConditions_Data() = delete;
};
static_assert(sizeof(MatchedNetworkConditions_Data) == 24,
              "Bad sizeof(MatchedNetworkConditions_Data)");
// Used by MatchedNetworkConditions::WrapAsMessage to lazily serialize the struct.
template <typename UserType, typename DataView>
struct MatchedNetworkConditions_UnserializedMessageContext
    : public mojo::internal::UnserializedMessageContext {
 public:
  static const mojo::internal::UnserializedMessageContext::Tag kMessageTag;

  MatchedNetworkConditions_UnserializedMessageContext(
    uint32_t message_name,
    uint32_t message_flags,
    UserType input)
      : mojo::internal::UnserializedMessageContext(&kMessageTag, message_name, message_flags)
      , user_data_(std::move(input)) {}
  ~MatchedNetworkConditions_UnserializedMessageContext() override = default;

  UserType TakeData() {
    return std::move(user_data_);
  }

 private:
  // mojo::internal::UnserializedMessageContext:
  void Serialize(mojo::Message& message) override {
    mojo::internal::MessageFragment<MatchedNetworkConditions_Data> fragment(message);
    mojo::internal::Serialize<DataView>(user_data_, fragment);
  }

  UserType user_data_;
};

template <typename UserType, typename DataView>
const mojo::internal::UnserializedMessageContext::Tag
    MatchedNetworkConditions_UnserializedMessageContext<UserType, DataView>::kMessageTag = {};
class  SharedDictionaryInfo_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<mojo::internal::String_Data> match;
  mojo::internal::Pointer<mojo::internal::Array_Data<int32_t>> match_dest;
  mojo::internal::Pointer<mojo::internal::String_Data> id;
  mojo::internal::Pointer<::url::mojom::internal::Url_Data> dictionary_url;
  mojo::internal::Pointer<::mojo_base::mojom::internal::Time_Data> last_fetch_time;
  mojo::internal::Pointer<::mojo_base::mojom::internal::Time_Data> response_time;
  mojo::internal::Pointer<::mojo_base::mojom::internal::TimeDelta_Data> expiration;
  mojo::internal::Pointer<::mojo_base::mojom::internal::Time_Data> last_used_time;
  uint64_t size;
  mojo::internal::Pointer<::network::mojom::internal::SHA256HashValue_Data> hash;

 private:
  friend class mojo::internal::MessageFragment<SharedDictionaryInfo_Data>;

  SharedDictionaryInfo_Data();
  ~SharedDictionaryInfo_Data() = delete;
};
static_assert(sizeof(SharedDictionaryInfo_Data) == 88,
              "Bad sizeof(SharedDictionaryInfo_Data)");
// Used by SharedDictionaryInfo::WrapAsMessage to lazily serialize the struct.
template <typename UserType, typename DataView>
struct SharedDictionaryInfo_UnserializedMessageContext
    : public mojo::internal::UnserializedMessageContext {
 public:
  static const mojo::internal::UnserializedMessageContext::Tag kMessageTag;

  SharedDictionaryInfo_UnserializedMessageContext(
    uint32_t message_name,
    uint32_t message_flags,
    UserType input)
      : mojo::internal::UnserializedMessageContext(&kMessageTag, message_name, message_flags)
      , user_data_(std::move(input)) {}
  ~SharedDictionaryInfo_UnserializedMessageContext() override = default;

  UserType TakeData() {
    return std::move(user_data_);
  }

 private:
  // mojo::internal::UnserializedMessageContext:
  void Serialize(mojo::Message& message) override {
    mojo::internal::MessageFragment<SharedDictionaryInfo_Data> fragment(message);
    mojo::internal::Serialize<DataView>(user_data_, fragment);
  }

  UserType user_data_;
};

template <typename UserType, typename DataView>
const mojo::internal::UnserializedMessageContext::Tag
    SharedDictionaryInfo_UnserializedMessageContext<UserType, DataView>::kMessageTag = {};
class  SignedExchangeReport_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;
  uint8_t success : 1;
  uint8_t pad0_[3];
  int32_t status_code;
  mojo::internal::Pointer<mojo::internal::String_Data> type;
  mojo::internal::Pointer<::url::mojom::internal::Url_Data> outer_url;
  mojo::internal::Pointer<::url::mojom::internal::Url_Data> inner_url;
  mojo::internal::Pointer<::url::mojom::internal::Url_Data> cert_url;
  mojo::internal::Pointer<mojo::internal::String_Data> referrer;
  mojo::internal::Pointer<::network::mojom::internal::IPAddress_Data> server_ip_address;
  mojo::internal::Pointer<mojo::internal::String_Data> protocol;
  mojo::internal::Pointer<mojo::internal::String_Data> method;
  mojo::internal::Pointer<::mojo_base::mojom::internal::TimeDelta_Data> elapsed_time;

 private:
  friend class mojo::internal::MessageFragment<SignedExchangeReport_Data>;

  SignedExchangeReport_Data();
  ~SignedExchangeReport_Data() = delete;
};
static_assert(sizeof(SignedExchangeReport_Data) == 88,
              "Bad sizeof(SignedExchangeReport_Data)");
// Used by SignedExchangeReport::WrapAsMessage to lazily serialize the struct.
template <typename UserType, typename DataView>
struct SignedExchangeReport_UnserializedMessageContext
    : public mojo::internal::UnserializedMessageContext {
 public:
  static const mojo::internal::UnserializedMessageContext::Tag kMessageTag;

  SignedExchangeReport_UnserializedMessageContext(
    uint32_t message_name,
    uint32_t message_flags,
    UserType input)
      : mojo::internal::UnserializedMessageContext(&kMessageTag, message_name, message_flags)
      , user_data_(std::move(input)) {}
  ~SignedExchangeReport_UnserializedMessageContext() override = default;

  UserType TakeData() {
    return std::move(user_data_);
  }

 private:
  // mojo::internal::UnserializedMessageContext:
  void Serialize(mojo::Message& message) override {
    mojo::internal::MessageFragment<SignedExchangeReport_Data> fragment(message);
    mojo::internal::Serialize<DataView>(user_data_, fragment);
  }

  UserType user_data_;
};

template <typename UserType, typename DataView>
const mojo::internal::UnserializedMessageContext::Tag
    SignedExchangeReport_UnserializedMessageContext<UserType, DataView>::kMessageTag = {};
class  URLLoaderFactoryOverride_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;
  mojo::internal::Interface_Data overriding_factory;
  mojo::internal::Handle_Data overridden_factory_receiver;
  uint8_t skip_cors_enabled_scheme_check : 1;
  uint8_t padfinal_[3];

 private:
  friend class mojo::internal::MessageFragment<URLLoaderFactoryOverride_Data>;

  URLLoaderFactoryOverride_Data();
  ~URLLoaderFactoryOverride_Data() = delete;
};
static_assert(sizeof(URLLoaderFactoryOverride_Data) == 24,
              "Bad sizeof(URLLoaderFactoryOverride_Data)");
// Used by URLLoaderFactoryOverride::WrapAsMessage to lazily serialize the struct.
template <typename UserType, typename DataView>
struct URLLoaderFactoryOverride_UnserializedMessageContext
    : public mojo::internal::UnserializedMessageContext {
 public:
  static const mojo::internal::UnserializedMessageContext::Tag kMessageTag;

  URLLoaderFactoryOverride_UnserializedMessageContext(
    uint32_t message_name,
    uint32_t message_flags,
    UserType input)
      : mojo::internal::UnserializedMessageContext(&kMessageTag, message_name, message_flags)
      , user_data_(std::move(input)) {}
  ~URLLoaderFactoryOverride_UnserializedMessageContext() override = default;

  UserType TakeData() {
    return std::move(user_data_);
  }

 private:
  // mojo::internal::UnserializedMessageContext:
  void Serialize(mojo::Message& message) override {
    mojo::internal::MessageFragment<URLLoaderFactoryOverride_Data> fragment(message);
    mojo::internal::Serialize<DataView>(user_data_, fragment);
  }

  UserType user_data_;
};

template <typename UserType, typename DataView>
const mojo::internal::UnserializedMessageContext::Tag
    URLLoaderFactoryOverride_UnserializedMessageContext<UserType, DataView>::kMessageTag = {};
class  URLLoaderFactoryParams_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;
  ::network::mojom::internal::OriginatingProcessId_Data process_id;
  mojo::internal::Pointer<::url::mojom::internal::Origin_Data> request_initiator_origin_lock;
  uint8_t is_orb_enabled : 1;
  uint8_t ignore_isolated_world_origin : 1;
  uint8_t unsafe_non_webby_initiator : 1;
  uint8_t disable_web_security : 1;
  uint8_t disable_secure_dns : 1;
  uint8_t is_trusted : 1;
  uint8_t is_outermost_main_frame : 1;
  uint8_t automatically_assign_isolation_info : 1;
  uint8_t require_cross_site_request_for_cookies : 1;
  uint8_t ignore_factory_reset : 1;
  uint8_t is_main_frame_origin_recently_accessed : 1;
  uint8_t prefer_factory_site_for_cookies : 1;
  uint8_t target_network_$flag : 1;
  uint8_t pad14_[2];
  mojo::internal::Interface_Data header_client;
  int32_t trust_token_issuance_policy;
  mojo::internal::Pointer<::network::mojom::internal::IsolationInfo_Data> isolation_info;
  mojo::internal::Pointer<::mojo_base::mojom::internal::UnguessableToken_Data> top_frame_id;
  mojo::internal::Pointer<internal::URLLoaderFactoryOverride_Data> factory_override;
  mojo::internal::Pointer<::network::mojom::internal::ClientSecurityState_Data> client_security_state;
  mojo::internal::Interface_Data coep_reporter;
  mojo::internal::Interface_Data dip_reporter;
  mojo::internal::Interface_Data cookie_observer;
  mojo::internal::Interface_Data trust_token_observer;
  mojo::internal::Interface_Data shared_dictionary_observer;
  mojo::internal::Interface_Data url_loader_network_observer;
  mojo::internal::Interface_Data devtools_observer;
  mojo::internal::Interface_Data device_bound_session_observer;
  int32_t trust_token_redemption_policy;
  uint8_t pad29_[4];
  mojo::internal::Pointer<mojo::internal::String_Data> debug_tag;
  mojo::internal::Pointer<::network::mojom::internal::CookieSettingOverrides_Data> cookie_setting_overrides;
  mojo::internal::Pointer<::network::mojom::internal::CookieSettingOverrides_Data> devtools_cookie_setting_overrides;
  mojo::internal::Pointer<::mojo_base::mojom::internal::UnguessableToken_Data> network_restrictions_id;
  int64_t target_network_$value;

 private:
  friend class mojo::internal::MessageFragment<URLLoaderFactoryParams_Data>;

  URLLoaderFactoryParams_Data();
  ~URLLoaderFactoryParams_Data() = delete;
};
static_assert(sizeof(URLLoaderFactoryParams_Data) == 192,
              "Bad sizeof(URLLoaderFactoryParams_Data)");
// Used by URLLoaderFactoryParams::WrapAsMessage to lazily serialize the struct.
template <typename UserType, typename DataView>
struct URLLoaderFactoryParams_UnserializedMessageContext
    : public mojo::internal::UnserializedMessageContext {
 public:
  static const mojo::internal::UnserializedMessageContext::Tag kMessageTag;

  URLLoaderFactoryParams_UnserializedMessageContext(
    uint32_t message_name,
    uint32_t message_flags,
    UserType input)
      : mojo::internal::UnserializedMessageContext(&kMessageTag, message_name, message_flags)
      , user_data_(std::move(input)) {}
  ~URLLoaderFactoryParams_UnserializedMessageContext() override = default;

  UserType TakeData() {
    return std::move(user_data_);
  }

 private:
  // mojo::internal::UnserializedMessageContext:
  void Serialize(mojo::Message& message) override {
    mojo::internal::MessageFragment<URLLoaderFactoryParams_Data> fragment(message);
    mojo::internal::Serialize<DataView>(user_data_, fragment);
  }

  UserType user_data_;
};

template <typename UserType, typename DataView>
const mojo::internal::UnserializedMessageContext::Tag
    URLLoaderFactoryParams_UnserializedMessageContext<UserType, DataView>::kMessageTag = {};
class  IdAndAllowlistedPatterns_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<::mojo_base::mojom::internal::UnguessableToken_Data> network_restrictions_id;
  mojo::internal::Pointer<::network::mojom::internal::ConnectionAllowlists_Data> allowlists;

 private:
  friend class mojo::internal::MessageFragment<IdAndAllowlistedPatterns_Data>;

  IdAndAllowlistedPatterns_Data();
  ~IdAndAllowlistedPatterns_Data() = delete;
};
static_assert(sizeof(IdAndAllowlistedPatterns_Data) == 24,
              "Bad sizeof(IdAndAllowlistedPatterns_Data)");
// Used by IdAndAllowlistedPatterns::WrapAsMessage to lazily serialize the struct.
template <typename UserType, typename DataView>
struct IdAndAllowlistedPatterns_UnserializedMessageContext
    : public mojo::internal::UnserializedMessageContext {
 public:
  static const mojo::internal::UnserializedMessageContext::Tag kMessageTag;

  IdAndAllowlistedPatterns_UnserializedMessageContext(
    uint32_t message_name,
    uint32_t message_flags,
    UserType input)
      : mojo::internal::UnserializedMessageContext(&kMessageTag, message_name, message_flags)
      , user_data_(std::move(input)) {}
  ~IdAndAllowlistedPatterns_UnserializedMessageContext() override = default;

  UserType TakeData() {
    return std::move(user_data_);
  }

 private:
  // mojo::internal::UnserializedMessageContext:
  void Serialize(mojo::Message& message) override {
    mojo::internal::MessageFragment<IdAndAllowlistedPatterns_Data> fragment(message);
    mojo::internal::Serialize<DataView>(user_data_, fragment);
  }

  UserType user_data_;
};

template <typename UserType, typename DataView>
const mojo::internal::UnserializedMessageContext::Tag
    IdAndAllowlistedPatterns_UnserializedMessageContext<UserType, DataView>::kMessageTag = {};

#pragma pack(pop)

}  // namespace internal

}  // network::mojom

#endif  // SERVICES_NETWORK_PUBLIC_MOJOM_NETWORK_CONTEXT_MOJOM_SHARED_INTERNAL_H_