// third_party/blink/public/mojom/navigation/navigation_params.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 THIRD_PARTY_BLINK_PUBLIC_MOJOM_NAVIGATION_NAVIGATION_PARAMS_MOJOM_SHARED_INTERNAL_H_
#define THIRD_PARTY_BLINK_PUBLIC_MOJOM_NAVIGATION_NAVIGATION_PARAMS_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 "mojo/public/mojom/base/byte_string.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 "services/network/public/mojom/content_security_policy.mojom-shared-internal.h"
#include "services/network/public/mojom/fetch_api.mojom-shared-internal.h"
#include "services/network/public/mojom/link_header.mojom-shared-internal.h"
#include "services/network/public/mojom/source_location.mojom-shared-internal.h"
#include "services/network/public/mojom/storage_access_api.mojom-shared-internal.h"
#include "services/network/public/mojom/trust_tokens.mojom-shared-internal.h"
#include "services/network/public/mojom/url_loader.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_client_hints_types.mojom-shared-internal.h"
#include "services/network/public/mojom/web_sandbox_flags.mojom-shared-internal.h"
#include "services/viz/public/mojom/compositing/local_surface_id.mojom-shared-internal.h"
#include "third_party/blink/public/mojom/back_forward_cache_not_restored_reasons.mojom-shared-internal.h"
#include "third_party/blink/public/mojom/fenced_frame/fenced_frame_config.mojom-shared-internal.h"
#include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-shared-internal.h"
#include "third_party/blink/public/mojom/frame/agent_cluster_key.mojom-shared-internal.h"
#include "third_party/blink/public/mojom/frame/frame_policy.mojom-shared-internal.h"
#include "third_party/blink/public/mojom/frame/view_transition_state.mojom-shared-internal.h"
#include "third_party/blink/public/mojom/lcp_critical_path_predictor/lcp_critical_path_predictor.mojom-shared-internal.h"
#include "third_party/blink/public/mojom/loader/mixed_content.mojom-shared-internal.h"
#include "third_party/blink/public/mojom/loader/referrer.mojom-shared-internal.h"
#include "third_party/blink/public/mojom/messaging/task_attribution_id.mojom-shared-internal.h"
#include "third_party/blink/public/mojom/navigation/navigation_api_history_entry_arrays.mojom-shared-internal.h"
#include "third_party/blink/public/mojom/navigation/navigation_type_for_navigation_api.mojom-shared-internal.h"
#include "third_party/blink/public/mojom/navigation/navigation_policy.mojom-shared-internal.h"
#include "third_party/blink/public/mojom/navigation/prefetched_signed_exchange_info.mojom-shared-internal.h"
#include "third_party/blink/public/mojom/navigation/renderer_content_settings.mojom-shared-internal.h"
#include "third_party/blink/public/mojom/navigation/was_activated_option.mojom-shared-internal.h"
#include "third_party/blink/public/mojom/page/page.mojom-shared-internal.h"
#include "third_party/blink/public/mojom/permissions/permission.mojom-shared-internal.h"
#include "third_party/blink/public/mojom/permissions/permission_status.mojom-shared-internal.h"
#include "services/network/public/mojom/permissions_policy/permissions_policy.mojom-shared-internal.h"
#include "third_party/blink/public/mojom/runtime_feature_state/runtime_feature.mojom-shared-internal.h"
#include "third_party/blink/public/mojom/storage_key/storage_key.mojom-shared-internal.h"
#include "third_party/blink/public/mojom/tokens/tokens.mojom-shared-internal.h"
#include "url/mojom/origin.mojom-shared-internal.h"
#include "url/mojom/url.mojom-shared-internal.h"
#include "mojo/public/mojom/base/unguessable_token.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"
#include "base/component_export.h"



namespace mojo {
namespace internal {
class ValidationContext;
}
}


namespace blink::mojom {
namespace internal {
class BeginNavigationParams_Data;
class CommonNavigationParams_Data;
class NavigationTiming_Data;
class NavigationRedirectParams_Data;
class OldPageInfo_Data;
class IsolatedAppPermissionPolicyEntry_Data;
class CommitNavigationParams_Data;
class PageSwapEventParams_Data;

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

  static bool IsKnownValue(int32_t value) {
    switch (value) {
      case 0:
      case 1:
      case 2:
      case 3:
      case 4:
      case 5:
      case 6:
      case 7:
        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 ForceHistoryPush_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 ParentResourceTimingAccess_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 ScriptInjectionPolicy_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 COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) BeginNavigationParams_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<::blink::mojom::internal::LocalFrameToken_Data> initiator_frame_token;
  mojo::internal::Pointer<::mojo_base::mojom::internal::UnguessableToken_Data> initiator_state_token;
  mojo::internal::Pointer<::blink::mojom::internal::DocumentToken_Data> initiator_document_token;
  mojo::internal::Pointer<mojo::internal::String_Data> headers;
  int32_t load_flags;
  uint8_t skip_service_worker : 1;
  uint8_t is_form_submission : 1;
  uint8_t was_initiated_by_link_click : 1;
  uint8_t started_with_transient_activation : 1;
  uint8_t started_by_ad : 1;
  uint8_t is_container_initiated : 1;
  uint8_t has_rel_opener : 1;
  uint8_t pad11_[3];
  int32_t request_context_type;
  int32_t mixed_content_context_type;
  int32_t force_history_push;
  uint8_t pad14_[4];
  mojo::internal::Pointer<::url::mojom::internal::Url_Data> searchable_form_url;
  mojo::internal::Pointer<mojo::internal::String_Data> searchable_form_encoding;
  mojo::internal::Pointer<::url::mojom::internal::Url_Data> client_side_redirect_url;
  mojo::internal::Pointer<::mojo_base::mojom::internal::DictionaryValue_Data> devtools_initiator;
  mojo::internal::Pointer<::network::mojom::internal::TrustTokenParams_Data> trust_token_params;
  mojo::internal::Pointer<::mojo_base::mojom::internal::TimeTicks_Data> before_unload_start;
  mojo::internal::Pointer<::mojo_base::mojom::internal::TimeTicks_Data> before_unload_end;
  mojo::internal::Pointer<::mojo_base::mojom::internal::TimeTicks_Data> before_unload_dialog_opened;
  mojo::internal::Pointer<::mojo_base::mojom::internal::TimeTicks_Data> before_unload_dialog_closed;
  mojo::internal::Pointer<::mojo_base::mojom::internal::UnguessableToken_Data> script_tool_invocation_id;

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

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

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

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

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

  UserType user_data_;
};

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

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<::url::mojom::internal::Url_Data> url;
  mojo::internal::Pointer<::url::mojom::internal::Origin_Data> initiator_origin;
  mojo::internal::Pointer<::url::mojom::internal::Url_Data> initiator_base_url;
  mojo::internal::Pointer<::blink::mojom::internal::Referrer_Data> referrer;
  int32_t transition;
  int32_t navigation_type;
  mojo::internal::Pointer<::blink::mojom::internal::NavigationDownloadPolicy_Data> download_policy;
  uint8_t should_replace_current_entry : 1;
  uint8_t started_from_context_menu : 1;
  uint8_t has_possibly_filtered_user_gesture : 1;
  uint8_t text_fragment_token : 1;
  uint8_t is_history_navigation_in_new_child_frame : 1;
  uint8_t pad11_[3];
  int32_t should_check_main_world_csp;
  mojo::internal::Pointer<::url::mojom::internal::Url_Data> base_url_for_data_url;
  mojo::internal::Pointer<::mojo_base::mojom::internal::TimeTicks_Data> actual_navigation_start;
  mojo::internal::Pointer<::mojo_base::mojom::internal::TimeTicks_Data> navigation_start;
  mojo::internal::Pointer<mojo::internal::String_Data> method;
  mojo::internal::Pointer<::network::mojom::internal::URLRequestBody_Data> post_data;
  mojo::internal::Pointer<::network::mojom::internal::SourceLocation_Data> source_location;
  mojo::internal::Pointer<mojo::internal::Array_Data<int32_t>> initiator_origin_trial_features;
  mojo::internal::Pointer<mojo::internal::String_Data> href_translate;
  mojo::internal::Pointer<::mojo_base::mojom::internal::TimeTicks_Data> input_start;
  int32_t request_destination;
  uint8_t padfinal_[4];

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

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

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

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

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

  UserType user_data_;
};

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

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<::mojo_base::mojom::internal::TimeTicks_Data> redirect_start;
  mojo::internal::Pointer<::mojo_base::mojom::internal::TimeTicks_Data> redirect_end;
  mojo::internal::Pointer<::mojo_base::mojom::internal::TimeTicks_Data> fetch_start;
  int32_t parent_resource_timing_access;
  uint8_t padfinal_[4];

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

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

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

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

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

  UserType user_data_;
};

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

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<::network::mojom::internal::URLRequestRedirectInfo_Data> redirect_info;
  mojo::internal::Pointer<::network::mojom::internal::URLResponseHead_Data> response_head;

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

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

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

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

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

  UserType user_data_;
};

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

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<::blink::mojom::internal::LocalFrameToken_Data> frame_token_for_old_main_frame;
  mojo::internal::Pointer<::blink::mojom::internal::PageLifecycleState_Data> new_lifecycle_state_for_old_page;

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

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

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

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

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

  UserType user_data_;
};

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

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<mojo::internal::String_Data> feature;
  mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<mojo::internal::String_Data>>> allowed_origins;

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

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

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

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

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

  UserType user_data_;
};

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

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<::url::mojom::internal::Origin_Data> origin_to_commit;
  mojo::internal::Pointer<::blink::mojom::internal::StorageKey_Data> storage_key;
  uint8_t is_overriding_user_agent : 1;
  uint8_t can_load_local_resources : 1;
  uint8_t intended_as_new_entry : 1;
  uint8_t was_discarded : 1;
  uint8_t is_view_source : 1;
  uint8_t should_clear_history_list : 1;
  uint8_t is_browser_initiated : 1;
  uint8_t has_ua_visual_transition : 1;
  uint8_t is_cross_site_cross_browsing_context_group : 1;
  uint8_t should_have_sticky_user_activation : 1;
  uint8_t is_load_data_with_base_url : 1;
  uint8_t ancestor_or_self_has_cspee : 1;
  uint8_t visited_link_salt_$flag : 1;
  uint8_t should_skip_screenshot : 1;
  uint8_t force_new_document_sequence_number : 1;
  uint8_t is_initial_webui : 1;
  uint8_t is_secure_context_root : 1;
  uint8_t pad18_[1];
  int32_t nav_entry_id;
  mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<::url::mojom::internal::Url_Data>>> redirects;
  mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<internal::NavigationRedirectParams_Data>>> redirect_params;
  mojo::internal::Pointer<mojo::internal::String_Data> post_content_type;
  mojo::internal::Pointer<::url::mojom::internal::Url_Data> original_url;
  mojo::internal::Pointer<mojo::internal::String_Data> original_method;
  mojo::internal::Pointer<::mojo_base::mojom::internal::ByteString_Data> page_state;
  mojo::internal::Pointer<mojo::internal::Map_Data<mojo::internal::Pointer<mojo::internal::String_Data>, bool>> subframe_unique_names;
  int32_t pending_history_list_index;
  int32_t current_history_list_index;
  int32_t current_history_list_length;
  int32_t was_activated;
  mojo::internal::Pointer<internal::NavigationTiming_Data> navigation_timing;
  mojo::internal::Pointer<::mojo_base::mojom::internal::UnguessableToken_Data> navigation_token;
  mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<::blink::mojom::internal::PrefetchedSignedExchangeInfo_Data>>> prefetched_signed_exchanges;
  mojo::internal::Pointer<mojo::internal::String_Data> data_url_as_string;
  int64_t document_ukm_source_id;
  mojo::internal::Pointer<::blink::mojom::internal::FramePolicy_Data> frame_policy;
  mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<mojo::internal::String_Data>>> force_enabled_origin_trials;
  ::blink::mojom::internal::AgentClusterKey_Data agent_cluster_key;
  mojo::internal::Pointer<mojo::internal::Array_Data<int32_t>> enabled_client_hints;
  mojo::internal::Pointer<internal::OldPageInfo_Data> old_page_info;
  int32_t http_response_code;
  int32_t navigation_delivery_type;
  mojo::internal::Pointer<::blink::mojom::internal::NavigationApiHistoryEntryArrays_Data> navigation_api_history_entry_arrays;
  mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<::network::mojom::internal::LinkHeader_Data>>> early_hints_preloaded_resources;
  mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<::network::mojom::internal::LinkHeader_Data>>> early_hints_preconnects;
  mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<::network::mojom::internal::LinkHeader_Data>>> navigation_preconnects;
  mojo::internal::Pointer<::mojo_base::mojom::internal::TimeTicks_Data> commit_sent;
  mojo::internal::Pointer<mojo::internal::String_Data> srcdoc_value;
  mojo::internal::Pointer<mojo::internal::String_Data> reduced_accept_language;
  mojo::internal::Pointer<::blink::mojom::internal::ViewTransitionState_Data> view_transition_state;
  mojo::internal::Pointer<::blink::mojom::internal::TaskAttributionId_Data> soft_navigation_heuristics_task_id;
  mojo::internal::Pointer<mojo::internal::Map_Data<int32_t, bool>> modified_runtime_features;
  mojo::internal::Pointer<::blink::mojom::internal::FencedFrameProperties_Data> fenced_frame_properties;
  mojo::internal::Pointer<::blink::mojom::internal::BackForwardCacheNotRestoredReasons_Data> not_restored_reasons;
  int32_t load_with_storage_access;
  int32_t script_injection_policy;
  mojo::internal::Pointer<::mojo_base::mojom::internal::UnguessableToken_Data> browsing_context_group_token;
  mojo::internal::Pointer<::blink::mojom::internal::LCPCriticalPathPredictorNavigationTimeHint_Data> lcpp_hint;
  mojo::internal::Pointer<::blink::mojom::internal::RendererContentSettings_Data> content_settings;
  uint64_t visited_link_salt_$value;
  mojo::internal::Pointer<::viz::mojom::internal::LocalSurfaceId_Data> local_surface_id;
  mojo::internal::Pointer<mojo::internal::Map_Data<int32_t, int32_t>> initial_permission_statuses;
  mojo::internal::Pointer<::mojo_base::mojom::internal::UnguessableToken_Data> navigation_metrics_token;
  mojo::internal::Pointer<::blink::mojom::internal::LocalFrameToken_Data> commit_target_frame_token;
  mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<internal::IsolatedAppPermissionPolicyEntry_Data>>> isolated_app_policy;
  mojo::internal::Pointer<mojo::internal::String_Data> internal_scroll_to_text_fragment;

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

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

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

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

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

  UserType user_data_;
};

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

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<::url::mojom::internal::Url_Data> url;
  mojo::internal::Pointer<::mojo_base::mojom::internal::ByteString_Data> page_state;
  int32_t navigation_type;
  uint8_t padfinal_[4];

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

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

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

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

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

  UserType user_data_;
};

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

#pragma pack(pop)

}  // namespace internal

}  // blink::mojom

#endif  // THIRD_PARTY_BLINK_PUBLIC_MOJOM_NAVIGATION_NAVIGATION_PARAMS_MOJOM_SHARED_INTERNAL_H_