// third_party/blink/public/mojom/navigation/navigation_params.mojom-send-validation.h is auto generated by mojom_bindings_generator.py, do not edit

// Copyright 2025 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_SEND_VALIDATION_H_
#define THIRD_PARTY_BLINK_PUBLIC_MOJOM_NAVIGATION_NAVIGATION_PARAMS_MOJOM_SEND_VALIDATION_H_

#include "third_party/blink/public/mojom/navigation/navigation_params.mojom-shared-internal.h"
#include "mojo/public/mojom/base/byte_string.mojom-shared.h"
#include "mojo/public/mojom/base/time.mojom-shared.h"
#include "mojo/public/mojom/base/unguessable_token.mojom-shared.h"
#include "mojo/public/mojom/base/values.mojom-shared.h"
#include "services/network/public/mojom/content_security_policy.mojom-shared.h"
#include "services/network/public/mojom/fetch_api.mojom-shared.h"
#include "services/network/public/mojom/link_header.mojom-shared.h"
#include "services/network/public/mojom/source_location.mojom-shared.h"
#include "services/network/public/mojom/storage_access_api.mojom-shared.h"
#include "services/network/public/mojom/trust_tokens.mojom-shared.h"
#include "services/network/public/mojom/url_loader.mojom-shared.h"
#include "services/network/public/mojom/url_request.mojom-shared.h"
#include "services/network/public/mojom/url_response_head.mojom-shared.h"
#include "services/network/public/mojom/web_client_hints_types.mojom-shared.h"
#include "services/network/public/mojom/web_sandbox_flags.mojom-shared.h"
#include "services/viz/public/mojom/compositing/local_surface_id.mojom-shared.h"
#include "third_party/blink/public/mojom/back_forward_cache_not_restored_reasons.mojom-shared.h"
#include "third_party/blink/public/mojom/fenced_frame/fenced_frame_config.mojom-shared.h"
#include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-shared.h"
#include "third_party/blink/public/mojom/frame/agent_cluster_key.mojom-shared.h"
#include "third_party/blink/public/mojom/frame/frame_policy.mojom-shared.h"
#include "third_party/blink/public/mojom/frame/view_transition_state.mojom-shared.h"
#include "third_party/blink/public/mojom/lcp_critical_path_predictor/lcp_critical_path_predictor.mojom-shared.h"
#include "third_party/blink/public/mojom/loader/mixed_content.mojom-shared.h"
#include "third_party/blink/public/mojom/loader/referrer.mojom-shared.h"
#include "third_party/blink/public/mojom/messaging/task_attribution_id.mojom-shared.h"
#include "third_party/blink/public/mojom/navigation/navigation_api_history_entry_arrays.mojom-shared.h"
#include "third_party/blink/public/mojom/navigation/navigation_type_for_navigation_api.mojom-shared.h"
#include "third_party/blink/public/mojom/navigation/navigation_policy.mojom-shared.h"
#include "third_party/blink/public/mojom/navigation/prefetched_signed_exchange_info.mojom-shared.h"
#include "third_party/blink/public/mojom/navigation/renderer_content_settings.mojom-shared.h"
#include "third_party/blink/public/mojom/navigation/was_activated_option.mojom-shared.h"
#include "third_party/blink/public/mojom/page/page.mojom-shared.h"
#include "third_party/blink/public/mojom/permissions/permission.mojom-shared.h"
#include "third_party/blink/public/mojom/permissions/permission_status.mojom-shared.h"
#include "services/network/public/mojom/permissions_policy/permissions_policy.mojom-shared.h"
#include "third_party/blink/public/mojom/runtime_feature_state/runtime_feature.mojom-shared.h"
#include "third_party/blink/public/mojom/storage_key/storage_key.mojom-shared.h"
#include "third_party/blink/public/mojom/tokens/tokens.mojom-shared.h"
#include "url/mojom/origin.mojom-shared.h"
#include "url/mojom/url.mojom-shared.h"
#include "mojo/public/mojom/base/unguessable_token.mojom-shared.h"

#include "third_party/blink/public/mojom/navigation/navigation_params.mojom-data-view.h"

#include "mojo/public/cpp/bindings/lib/send_validation_type.h"
#include "mojo/public/cpp/bindings/lib/send_validation.h"
#include "mojo/public/cpp/bindings/lib/interface_serialization_send_validation.h"
#include "mojo/public/cpp/bindings/lib/has_send_validation_helper.h"

namespace mojo::internal {
template <typename MaybeConstUserType>
struct HasSendValidationSerialize<::blink::mojom::NavigationType, MaybeConstUserType>
    : std::false_type {};
template <typename MaybeConstUserType>
struct HasSendValidationSerialize<::blink::mojom::ForceHistoryPush, MaybeConstUserType>
    : std::false_type {};
template <typename MaybeConstUserType>
struct HasSendValidationSerialize<::blink::mojom::ParentResourceTimingAccess, MaybeConstUserType>
    : std::false_type {};
template <typename MaybeConstUserType>
struct HasSendValidationSerialize<::blink::mojom::ScriptInjectionPolicy, MaybeConstUserType>
    : std::false_type {};

template <typename MaybeConstUserType, mojo::internal::SendValidation send_validation>
struct SendValidationSerializer<::blink::mojom::BeginNavigationParamsDataView, MaybeConstUserType, send_validation> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = StructTraits<::blink::mojom::BeginNavigationParamsDataView, UserType>;
  static void Serialize(
      MaybeConstUserType& input,
      mojo::internal::MessageFragment<::blink::mojom::internal::BeginNavigationParams_Data>& fragment) {
    if (CallIsNullIfExists<Traits>(input))
      return;
    fragment.Allocate();

      decltype(Traits::initiator_frame_token(input)) in_initiator_frame_token = Traits::initiator_frame_token(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->initiator_frame_token)::BaseType> initiator_frame_token_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::LocalFrameTokenDataView, send_validation>(
        in_initiator_frame_token,
        initiator_frame_token_fragment);

      fragment->initiator_frame_token.Set(
          initiator_frame_token_fragment.is_null() ? nullptr : initiator_frame_token_fragment.data());

      decltype(Traits::initiator_state_token(input)) in_initiator_state_token = Traits::initiator_state_token(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->initiator_state_token)::BaseType> initiator_state_token_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::mojo_base::mojom::UnguessableTokenDataView, send_validation>(
        in_initiator_state_token,
        initiator_state_token_fragment);

      fragment->initiator_state_token.Set(
          initiator_state_token_fragment.is_null() ? nullptr : initiator_state_token_fragment.data());

      decltype(Traits::initiator_document_token(input)) in_initiator_document_token = Traits::initiator_document_token(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->initiator_document_token)::BaseType> initiator_document_token_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::DocumentTokenDataView, send_validation>(
        in_initiator_document_token,
        initiator_document_token_fragment);

      fragment->initiator_document_token.Set(
          initiator_document_token_fragment.is_null() ? nullptr : initiator_document_token_fragment.data());

      decltype(Traits::headers(input)) in_headers = Traits::headers(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->headers)::BaseType> headers_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_headers,
        headers_fragment);

      fragment->headers.Set(
          headers_fragment.is_null() ? nullptr : headers_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->headers.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null headers in BeginNavigationParams struct");

      fragment->load_flags = Traits::load_flags(input);

      fragment->skip_service_worker = Traits::skip_service_worker(input);

      
      mojo::internal::Serialize<::blink::mojom::RequestContextType>(
        Traits::request_context_type(input),
        &fragment->request_context_type);

      
      mojo::internal::Serialize<::blink::mojom::MixedContentContextType>(
        Traits::mixed_content_context_type(input),
        &fragment->mixed_content_context_type);

      fragment->is_form_submission = Traits::is_form_submission(input);

      fragment->was_initiated_by_link_click = Traits::was_initiated_by_link_click(input);

      
      mojo::internal::Serialize<::blink::mojom::ForceHistoryPush>(
        Traits::force_history_push(input),
        &fragment->force_history_push);

      decltype(Traits::searchable_form_url(input)) in_searchable_form_url = Traits::searchable_form_url(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->searchable_form_url)::BaseType> searchable_form_url_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::url::mojom::UrlDataView, send_validation>(
        in_searchable_form_url,
        searchable_form_url_fragment);

      fragment->searchable_form_url.Set(
          searchable_form_url_fragment.is_null() ? nullptr : searchable_form_url_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->searchable_form_url.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null searchable_form_url in BeginNavigationParams struct");

      decltype(Traits::searchable_form_encoding(input)) in_searchable_form_encoding = Traits::searchable_form_encoding(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->searchable_form_encoding)::BaseType> searchable_form_encoding_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_searchable_form_encoding,
        searchable_form_encoding_fragment);

      fragment->searchable_form_encoding.Set(
          searchable_form_encoding_fragment.is_null() ? nullptr : searchable_form_encoding_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->searchable_form_encoding.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null searchable_form_encoding in BeginNavigationParams struct");

      decltype(Traits::client_side_redirect_url(input)) in_client_side_redirect_url = Traits::client_side_redirect_url(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->client_side_redirect_url)::BaseType> client_side_redirect_url_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::url::mojom::UrlDataView, send_validation>(
        in_client_side_redirect_url,
        client_side_redirect_url_fragment);

      fragment->client_side_redirect_url.Set(
          client_side_redirect_url_fragment.is_null() ? nullptr : client_side_redirect_url_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->client_side_redirect_url.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null client_side_redirect_url in BeginNavigationParams struct");

      decltype(Traits::devtools_initiator(input)) in_devtools_initiator = Traits::devtools_initiator(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->devtools_initiator)::BaseType> devtools_initiator_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::mojo_base::mojom::DictionaryValueDataView, send_validation>(
        in_devtools_initiator,
        devtools_initiator_fragment);

      fragment->devtools_initiator.Set(
          devtools_initiator_fragment.is_null() ? nullptr : devtools_initiator_fragment.data());

      decltype(Traits::trust_token_params(input)) in_trust_token_params = Traits::trust_token_params(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->trust_token_params)::BaseType> trust_token_params_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::network::mojom::TrustTokenParamsDataView, send_validation>(
        in_trust_token_params,
        trust_token_params_fragment);

      fragment->trust_token_params.Set(
          trust_token_params_fragment.is_null() ? nullptr : trust_token_params_fragment.data());

      decltype(Traits::before_unload_start(input)) in_before_unload_start = Traits::before_unload_start(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->before_unload_start)::BaseType> before_unload_start_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::mojo_base::mojom::TimeTicksDataView, send_validation>(
        in_before_unload_start,
        before_unload_start_fragment);

      fragment->before_unload_start.Set(
          before_unload_start_fragment.is_null() ? nullptr : before_unload_start_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->before_unload_start.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null before_unload_start in BeginNavigationParams struct");

      decltype(Traits::before_unload_end(input)) in_before_unload_end = Traits::before_unload_end(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->before_unload_end)::BaseType> before_unload_end_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::mojo_base::mojom::TimeTicksDataView, send_validation>(
        in_before_unload_end,
        before_unload_end_fragment);

      fragment->before_unload_end.Set(
          before_unload_end_fragment.is_null() ? nullptr : before_unload_end_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->before_unload_end.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null before_unload_end in BeginNavigationParams struct");

      decltype(Traits::before_unload_dialog_opened(input)) in_before_unload_dialog_opened = Traits::before_unload_dialog_opened(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->before_unload_dialog_opened)::BaseType> before_unload_dialog_opened_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::mojo_base::mojom::TimeTicksDataView, send_validation>(
        in_before_unload_dialog_opened,
        before_unload_dialog_opened_fragment);

      fragment->before_unload_dialog_opened.Set(
          before_unload_dialog_opened_fragment.is_null() ? nullptr : before_unload_dialog_opened_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->before_unload_dialog_opened.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null before_unload_dialog_opened in BeginNavigationParams struct");

      decltype(Traits::before_unload_dialog_closed(input)) in_before_unload_dialog_closed = Traits::before_unload_dialog_closed(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->before_unload_dialog_closed)::BaseType> before_unload_dialog_closed_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::mojo_base::mojom::TimeTicksDataView, send_validation>(
        in_before_unload_dialog_closed,
        before_unload_dialog_closed_fragment);

      fragment->before_unload_dialog_closed.Set(
          before_unload_dialog_closed_fragment.is_null() ? nullptr : before_unload_dialog_closed_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->before_unload_dialog_closed.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null before_unload_dialog_closed in BeginNavigationParams struct");

      fragment->started_with_transient_activation = Traits::started_with_transient_activation(input);

      fragment->started_by_ad = Traits::started_by_ad(input);

      fragment->is_container_initiated = Traits::is_container_initiated(input);

      fragment->has_rel_opener = Traits::has_rel_opener(input);

      decltype(Traits::script_tool_invocation_id(input)) in_script_tool_invocation_id = Traits::script_tool_invocation_id(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->script_tool_invocation_id)::BaseType> script_tool_invocation_id_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::mojo_base::mojom::UnguessableTokenDataView, send_validation>(
        in_script_tool_invocation_id,
        script_tool_invocation_id_fragment);

      fragment->script_tool_invocation_id.Set(
          script_tool_invocation_id_fragment.is_null() ? nullptr : script_tool_invocation_id_fragment.data());
  }
};

template <typename MaybeConstUserType, mojo::internal::SendValidation send_validation>
struct SendValidationSerializer<::blink::mojom::CommonNavigationParamsDataView, MaybeConstUserType, send_validation> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = StructTraits<::blink::mojom::CommonNavigationParamsDataView, UserType>;
  static void Serialize(
      MaybeConstUserType& input,
      mojo::internal::MessageFragment<::blink::mojom::internal::CommonNavigationParams_Data>& fragment) {
    if (CallIsNullIfExists<Traits>(input))
      return;
    fragment.Allocate();

      decltype(Traits::url(input)) in_url = Traits::url(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->url)::BaseType> url_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::url::mojom::UrlDataView, send_validation>(
        in_url,
        url_fragment);

      fragment->url.Set(
          url_fragment.is_null() ? nullptr : url_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->url.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null url in CommonNavigationParams struct");

      decltype(Traits::initiator_origin(input)) in_initiator_origin = Traits::initiator_origin(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->initiator_origin)::BaseType> initiator_origin_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::url::mojom::OriginDataView, send_validation>(
        in_initiator_origin,
        initiator_origin_fragment);

      fragment->initiator_origin.Set(
          initiator_origin_fragment.is_null() ? nullptr : initiator_origin_fragment.data());

      decltype(Traits::initiator_base_url(input)) in_initiator_base_url = Traits::initiator_base_url(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->initiator_base_url)::BaseType> initiator_base_url_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::url::mojom::UrlDataView, send_validation>(
        in_initiator_base_url,
        initiator_base_url_fragment);

      fragment->initiator_base_url.Set(
          initiator_base_url_fragment.is_null() ? nullptr : initiator_base_url_fragment.data());

      decltype(Traits::referrer(input)) in_referrer = Traits::referrer(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->referrer)::BaseType> referrer_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::ReferrerDataView, send_validation>(
        in_referrer,
        referrer_fragment);

      fragment->referrer.Set(
          referrer_fragment.is_null() ? nullptr : referrer_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->referrer.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null referrer in CommonNavigationParams struct");

      fragment->transition = Traits::transition(input);

      
      mojo::internal::Serialize<::blink::mojom::NavigationType>(
        Traits::navigation_type(input),
        &fragment->navigation_type);

      decltype(Traits::download_policy(input)) in_download_policy = Traits::download_policy(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->download_policy)::BaseType> download_policy_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::NavigationDownloadPolicyDataView, send_validation>(
        in_download_policy,
        download_policy_fragment);

      fragment->download_policy.Set(
          download_policy_fragment.is_null() ? nullptr : download_policy_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->download_policy.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null download_policy in CommonNavigationParams struct");

      fragment->should_replace_current_entry = Traits::should_replace_current_entry(input);

      decltype(Traits::base_url_for_data_url(input)) in_base_url_for_data_url = Traits::base_url_for_data_url(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->base_url_for_data_url)::BaseType> base_url_for_data_url_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::url::mojom::UrlDataView, send_validation>(
        in_base_url_for_data_url,
        base_url_for_data_url_fragment);

      fragment->base_url_for_data_url.Set(
          base_url_for_data_url_fragment.is_null() ? nullptr : base_url_for_data_url_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->base_url_for_data_url.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null base_url_for_data_url in CommonNavigationParams struct");

      decltype(Traits::actual_navigation_start(input)) in_actual_navigation_start = Traits::actual_navigation_start(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->actual_navigation_start)::BaseType> actual_navigation_start_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::mojo_base::mojom::TimeTicksDataView, send_validation>(
        in_actual_navigation_start,
        actual_navigation_start_fragment);

      fragment->actual_navigation_start.Set(
          actual_navigation_start_fragment.is_null() ? nullptr : actual_navigation_start_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->actual_navigation_start.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null actual_navigation_start in CommonNavigationParams struct");

      decltype(Traits::navigation_start(input)) in_navigation_start = Traits::navigation_start(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->navigation_start)::BaseType> navigation_start_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::mojo_base::mojom::TimeTicksDataView, send_validation>(
        in_navigation_start,
        navigation_start_fragment);

      fragment->navigation_start.Set(
          navigation_start_fragment.is_null() ? nullptr : navigation_start_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->navigation_start.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null navigation_start in CommonNavigationParams struct");

      decltype(Traits::method(input)) in_method = Traits::method(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->method)::BaseType> method_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_method,
        method_fragment);

      fragment->method.Set(
          method_fragment.is_null() ? nullptr : method_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->method.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null method in CommonNavigationParams struct");

      decltype(Traits::post_data(input)) in_post_data = Traits::post_data(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->post_data)::BaseType> post_data_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::network::mojom::URLRequestBodyDataView, send_validation>(
        in_post_data,
        post_data_fragment);

      fragment->post_data.Set(
          post_data_fragment.is_null() ? nullptr : post_data_fragment.data());

      decltype(Traits::source_location(input)) in_source_location = Traits::source_location(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->source_location)::BaseType> source_location_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::network::mojom::SourceLocationDataView, send_validation>(
        in_source_location,
        source_location_fragment);

      fragment->source_location.Set(
          source_location_fragment.is_null() ? nullptr : source_location_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->source_location.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null source_location in CommonNavigationParams struct");

      fragment->started_from_context_menu = Traits::started_from_context_menu(input);

      fragment->has_possibly_filtered_user_gesture = Traits::has_possibly_filtered_user_gesture(input);

      fragment->text_fragment_token = Traits::text_fragment_token(input);

      
      mojo::internal::Serialize<::network::mojom::CSPDisposition>(
        Traits::should_check_main_world_csp(input),
        &fragment->should_check_main_world_csp);

      decltype(Traits::initiator_origin_trial_features(input)) in_initiator_origin_trial_features = Traits::initiator_origin_trial_features(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->initiator_origin_trial_features)::BaseType>
          initiator_origin_trial_features_fragment(fragment.message());
      constexpr const mojo::internal::ContainerValidateParams& initiator_origin_trial_features_validate_params =
          mojo::internal::GetArrayValidator<0, false, nullptr>();
      
      mojo::internal::Serialize<mojo::ArrayDataView<int32_t>, send_validation>(
        in_initiator_origin_trial_features,
        initiator_origin_trial_features_fragment,
        &initiator_origin_trial_features_validate_params);

      fragment->initiator_origin_trial_features.Set(
          initiator_origin_trial_features_fragment.is_null() ? nullptr : initiator_origin_trial_features_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->initiator_origin_trial_features.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null initiator_origin_trial_features in CommonNavigationParams struct");

      decltype(Traits::href_translate(input)) in_href_translate = Traits::href_translate(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->href_translate)::BaseType> href_translate_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_href_translate,
        href_translate_fragment);

      fragment->href_translate.Set(
          href_translate_fragment.is_null() ? nullptr : href_translate_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->href_translate.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null href_translate in CommonNavigationParams struct");

      fragment->is_history_navigation_in_new_child_frame = Traits::is_history_navigation_in_new_child_frame(input);

      decltype(Traits::input_start(input)) in_input_start = Traits::input_start(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->input_start)::BaseType> input_start_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::mojo_base::mojom::TimeTicksDataView, send_validation>(
        in_input_start,
        input_start_fragment);

      fragment->input_start.Set(
          input_start_fragment.is_null() ? nullptr : input_start_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->input_start.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null input_start in CommonNavigationParams struct");

      
      mojo::internal::Serialize<::network::mojom::RequestDestination>(
        Traits::request_destination(input),
        &fragment->request_destination);
  }
};

template <typename MaybeConstUserType, mojo::internal::SendValidation send_validation>
struct SendValidationSerializer<::blink::mojom::NavigationTimingDataView, MaybeConstUserType, send_validation> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = StructTraits<::blink::mojom::NavigationTimingDataView, UserType>;
  static void Serialize(
      MaybeConstUserType& input,
      mojo::internal::MessageFragment<::blink::mojom::internal::NavigationTiming_Data>& fragment) {
    if (CallIsNullIfExists<Traits>(input))
      return;
    fragment.Allocate();

      decltype(Traits::redirect_start(input)) in_redirect_start = Traits::redirect_start(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->redirect_start)::BaseType> redirect_start_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::mojo_base::mojom::TimeTicksDataView, send_validation>(
        in_redirect_start,
        redirect_start_fragment);

      fragment->redirect_start.Set(
          redirect_start_fragment.is_null() ? nullptr : redirect_start_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->redirect_start.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null redirect_start in NavigationTiming struct");

      decltype(Traits::redirect_end(input)) in_redirect_end = Traits::redirect_end(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->redirect_end)::BaseType> redirect_end_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::mojo_base::mojom::TimeTicksDataView, send_validation>(
        in_redirect_end,
        redirect_end_fragment);

      fragment->redirect_end.Set(
          redirect_end_fragment.is_null() ? nullptr : redirect_end_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->redirect_end.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null redirect_end in NavigationTiming struct");

      decltype(Traits::fetch_start(input)) in_fetch_start = Traits::fetch_start(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->fetch_start)::BaseType> fetch_start_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::mojo_base::mojom::TimeTicksDataView, send_validation>(
        in_fetch_start,
        fetch_start_fragment);

      fragment->fetch_start.Set(
          fetch_start_fragment.is_null() ? nullptr : fetch_start_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->fetch_start.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null fetch_start in NavigationTiming struct");

      
      mojo::internal::Serialize<::blink::mojom::ParentResourceTimingAccess>(
        Traits::parent_resource_timing_access(input),
        &fragment->parent_resource_timing_access);
  }
};

template <typename MaybeConstUserType, mojo::internal::SendValidation send_validation>
struct SendValidationSerializer<::blink::mojom::NavigationRedirectParamsDataView, MaybeConstUserType, send_validation> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = StructTraits<::blink::mojom::NavigationRedirectParamsDataView, UserType>;
  static void Serialize(
      MaybeConstUserType& input,
      mojo::internal::MessageFragment<::blink::mojom::internal::NavigationRedirectParams_Data>& fragment) {
    if (CallIsNullIfExists<Traits>(input))
      return;
    fragment.Allocate();

      decltype(Traits::redirect_info(input)) in_redirect_info = Traits::redirect_info(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->redirect_info)::BaseType> redirect_info_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::network::mojom::URLRequestRedirectInfoDataView, send_validation>(
        in_redirect_info,
        redirect_info_fragment);

      fragment->redirect_info.Set(
          redirect_info_fragment.is_null() ? nullptr : redirect_info_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->redirect_info.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null redirect_info in NavigationRedirectParams struct");

      decltype(Traits::response_head(input)) in_response_head = Traits::response_head(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->response_head)::BaseType> response_head_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::network::mojom::URLResponseHeadDataView, send_validation>(
        in_response_head,
        response_head_fragment);

      fragment->response_head.Set(
          response_head_fragment.is_null() ? nullptr : response_head_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->response_head.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null response_head in NavigationRedirectParams struct");
  }
};

template <typename MaybeConstUserType, mojo::internal::SendValidation send_validation>
struct SendValidationSerializer<::blink::mojom::OldPageInfoDataView, MaybeConstUserType, send_validation> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = StructTraits<::blink::mojom::OldPageInfoDataView, UserType>;
  static void Serialize(
      MaybeConstUserType& input,
      mojo::internal::MessageFragment<::blink::mojom::internal::OldPageInfo_Data>& fragment) {
    if (CallIsNullIfExists<Traits>(input))
      return;
    fragment.Allocate();

      decltype(Traits::frame_token_for_old_main_frame(input)) in_frame_token_for_old_main_frame = Traits::frame_token_for_old_main_frame(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->frame_token_for_old_main_frame)::BaseType> frame_token_for_old_main_frame_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::LocalFrameTokenDataView, send_validation>(
        in_frame_token_for_old_main_frame,
        frame_token_for_old_main_frame_fragment);

      fragment->frame_token_for_old_main_frame.Set(
          frame_token_for_old_main_frame_fragment.is_null() ? nullptr : frame_token_for_old_main_frame_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->frame_token_for_old_main_frame.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null frame_token_for_old_main_frame in OldPageInfo struct");

      decltype(Traits::new_lifecycle_state_for_old_page(input)) in_new_lifecycle_state_for_old_page = Traits::new_lifecycle_state_for_old_page(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->new_lifecycle_state_for_old_page)::BaseType> new_lifecycle_state_for_old_page_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::PageLifecycleStateDataView, send_validation>(
        in_new_lifecycle_state_for_old_page,
        new_lifecycle_state_for_old_page_fragment);

      fragment->new_lifecycle_state_for_old_page.Set(
          new_lifecycle_state_for_old_page_fragment.is_null() ? nullptr : new_lifecycle_state_for_old_page_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->new_lifecycle_state_for_old_page.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null new_lifecycle_state_for_old_page in OldPageInfo struct");
  }
};

template <typename MaybeConstUserType, mojo::internal::SendValidation send_validation>
struct SendValidationSerializer<::blink::mojom::IsolatedAppPermissionPolicyEntryDataView, MaybeConstUserType, send_validation> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = StructTraits<::blink::mojom::IsolatedAppPermissionPolicyEntryDataView, UserType>;
  static void Serialize(
      MaybeConstUserType& input,
      mojo::internal::MessageFragment<::blink::mojom::internal::IsolatedAppPermissionPolicyEntry_Data>& fragment) {
    if (CallIsNullIfExists<Traits>(input))
      return;
    fragment.Allocate();

      decltype(Traits::feature(input)) in_feature = Traits::feature(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->feature)::BaseType> feature_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_feature,
        feature_fragment);

      fragment->feature.Set(
          feature_fragment.is_null() ? nullptr : feature_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->feature.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null feature in IsolatedAppPermissionPolicyEntry struct");

      decltype(Traits::allowed_origins(input)) in_allowed_origins = Traits::allowed_origins(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->allowed_origins)::BaseType>
          allowed_origins_fragment(fragment.message());
      constexpr const mojo::internal::ContainerValidateParams& allowed_origins_validate_params =
          mojo::internal::GetArrayValidator<0, false, &mojo::internal::GetArrayValidator<0, false, nullptr>()>();
      
      mojo::internal::Serialize<mojo::ArrayDataView<mojo::StringDataView>, send_validation>(
        in_allowed_origins,
        allowed_origins_fragment,
        &allowed_origins_validate_params);

      fragment->allowed_origins.Set(
          allowed_origins_fragment.is_null() ? nullptr : allowed_origins_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->allowed_origins.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null allowed_origins in IsolatedAppPermissionPolicyEntry struct");
  }
};

template <typename MaybeConstUserType, mojo::internal::SendValidation send_validation>
struct SendValidationSerializer<::blink::mojom::CommitNavigationParamsDataView, MaybeConstUserType, send_validation> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = StructTraits<::blink::mojom::CommitNavigationParamsDataView, UserType>;
  static void Serialize(
      MaybeConstUserType& input,
      mojo::internal::MessageFragment<::blink::mojom::internal::CommitNavigationParams_Data>& fragment) {
    if (CallIsNullIfExists<Traits>(input))
      return;
    fragment.Allocate();

      decltype(Traits::origin_to_commit(input)) in_origin_to_commit = Traits::origin_to_commit(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->origin_to_commit)::BaseType> origin_to_commit_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::url::mojom::OriginDataView, send_validation>(
        in_origin_to_commit,
        origin_to_commit_fragment);

      fragment->origin_to_commit.Set(
          origin_to_commit_fragment.is_null() ? nullptr : origin_to_commit_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->origin_to_commit.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null origin_to_commit in CommitNavigationParams struct");

      decltype(Traits::storage_key(input)) in_storage_key = Traits::storage_key(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->storage_key)::BaseType> storage_key_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::StorageKeyDataView, send_validation>(
        in_storage_key,
        storage_key_fragment);

      fragment->storage_key.Set(
          storage_key_fragment.is_null() ? nullptr : storage_key_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->storage_key.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null storage_key in CommitNavigationParams struct");

      fragment->is_overriding_user_agent = Traits::is_overriding_user_agent(input);

      decltype(Traits::redirects(input)) in_redirects = Traits::redirects(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->redirects)::BaseType>
          redirects_fragment(fragment.message());
      constexpr const mojo::internal::ContainerValidateParams& redirects_validate_params =
          mojo::internal::GetArrayValidator<0, false, nullptr>();
      
      mojo::internal::Serialize<mojo::ArrayDataView<::url::mojom::UrlDataView>, send_validation>(
        in_redirects,
        redirects_fragment,
        &redirects_validate_params);

      fragment->redirects.Set(
          redirects_fragment.is_null() ? nullptr : redirects_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->redirects.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null redirects in CommitNavigationParams struct");

      decltype(Traits::redirect_params(input)) in_redirect_params = Traits::redirect_params(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->redirect_params)::BaseType>
          redirect_params_fragment(fragment.message());
      constexpr const mojo::internal::ContainerValidateParams& redirect_params_validate_params =
          mojo::internal::GetArrayValidator<0, false, nullptr>();
      
      mojo::internal::Serialize<mojo::ArrayDataView<::blink::mojom::NavigationRedirectParamsDataView>, send_validation>(
        in_redirect_params,
        redirect_params_fragment,
        &redirect_params_validate_params);

      fragment->redirect_params.Set(
          redirect_params_fragment.is_null() ? nullptr : redirect_params_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->redirect_params.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null redirect_params in CommitNavigationParams struct");

      decltype(Traits::post_content_type(input)) in_post_content_type = Traits::post_content_type(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->post_content_type)::BaseType> post_content_type_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_post_content_type,
        post_content_type_fragment);

      fragment->post_content_type.Set(
          post_content_type_fragment.is_null() ? nullptr : post_content_type_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->post_content_type.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null post_content_type in CommitNavigationParams struct");

      decltype(Traits::original_url(input)) in_original_url = Traits::original_url(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->original_url)::BaseType> original_url_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::url::mojom::UrlDataView, send_validation>(
        in_original_url,
        original_url_fragment);

      fragment->original_url.Set(
          original_url_fragment.is_null() ? nullptr : original_url_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->original_url.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null original_url in CommitNavigationParams struct");

      decltype(Traits::original_method(input)) in_original_method = Traits::original_method(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->original_method)::BaseType> original_method_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_original_method,
        original_method_fragment);

      fragment->original_method.Set(
          original_method_fragment.is_null() ? nullptr : original_method_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->original_method.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null original_method in CommitNavigationParams struct");

      fragment->can_load_local_resources = Traits::can_load_local_resources(input);

      decltype(Traits::page_state(input)) in_page_state = Traits::page_state(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->page_state)::BaseType> page_state_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::mojo_base::mojom::ByteStringDataView, send_validation>(
        in_page_state,
        page_state_fragment);

      fragment->page_state.Set(
          page_state_fragment.is_null() ? nullptr : page_state_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->page_state.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null page_state in CommitNavigationParams struct");

      fragment->nav_entry_id = Traits::nav_entry_id(input);

      decltype(Traits::subframe_unique_names(input)) in_subframe_unique_names = Traits::subframe_unique_names(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->subframe_unique_names)::BaseType>
          subframe_unique_names_fragment(fragment.message());
      constexpr const mojo::internal::ContainerValidateParams& subframe_unique_names_validate_params =
          mojo::internal::GetMapValidator<*&mojo::internal::GetArrayValidator<0, false, &mojo::internal::GetArrayValidator<0, false, nullptr>()>(), *&mojo::internal::GetArrayValidator<0, false, nullptr>()>();
      
      mojo::internal::Serialize<mojo::MapDataView<mojo::StringDataView, bool>, send_validation>(
        in_subframe_unique_names,
        subframe_unique_names_fragment,
        &subframe_unique_names_validate_params);

      fragment->subframe_unique_names.Set(
          subframe_unique_names_fragment.is_null() ? nullptr : subframe_unique_names_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->subframe_unique_names.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null subframe_unique_names in CommitNavigationParams struct");

      fragment->intended_as_new_entry = Traits::intended_as_new_entry(input);

      fragment->pending_history_list_index = Traits::pending_history_list_index(input);

      fragment->current_history_list_index = Traits::current_history_list_index(input);

      fragment->current_history_list_length = Traits::current_history_list_length(input);

      fragment->was_discarded = Traits::was_discarded(input);

      fragment->is_view_source = Traits::is_view_source(input);

      fragment->should_clear_history_list = Traits::should_clear_history_list(input);

      decltype(Traits::navigation_timing(input)) in_navigation_timing = Traits::navigation_timing(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->navigation_timing)::BaseType> navigation_timing_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::NavigationTimingDataView, send_validation>(
        in_navigation_timing,
        navigation_timing_fragment);

      fragment->navigation_timing.Set(
          navigation_timing_fragment.is_null() ? nullptr : navigation_timing_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->navigation_timing.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null navigation_timing in CommitNavigationParams struct");

      
      mojo::internal::Serialize<::blink::mojom::WasActivatedOption>(
        Traits::was_activated(input),
        &fragment->was_activated);

      decltype(Traits::navigation_token(input)) in_navigation_token = Traits::navigation_token(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->navigation_token)::BaseType> navigation_token_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::mojo_base::mojom::UnguessableTokenDataView, send_validation>(
        in_navigation_token,
        navigation_token_fragment);

      fragment->navigation_token.Set(
          navigation_token_fragment.is_null() ? nullptr : navigation_token_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->navigation_token.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null navigation_token in CommitNavigationParams struct");

      decltype(Traits::prefetched_signed_exchanges(input)) in_prefetched_signed_exchanges = Traits::prefetched_signed_exchanges(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->prefetched_signed_exchanges)::BaseType>
          prefetched_signed_exchanges_fragment(fragment.message());
      constexpr const mojo::internal::ContainerValidateParams& prefetched_signed_exchanges_validate_params =
          mojo::internal::GetArrayValidator<0, false, nullptr>();
      
      mojo::internal::Serialize<mojo::ArrayDataView<::blink::mojom::PrefetchedSignedExchangeInfoDataView>, send_validation>(
        in_prefetched_signed_exchanges,
        prefetched_signed_exchanges_fragment,
        &prefetched_signed_exchanges_validate_params);

      fragment->prefetched_signed_exchanges.Set(
          prefetched_signed_exchanges_fragment.is_null() ? nullptr : prefetched_signed_exchanges_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->prefetched_signed_exchanges.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null prefetched_signed_exchanges in CommitNavigationParams struct");

      decltype(Traits::data_url_as_string(input)) in_data_url_as_string = Traits::data_url_as_string(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->data_url_as_string)::BaseType> data_url_as_string_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_data_url_as_string,
        data_url_as_string_fragment);

      fragment->data_url_as_string.Set(
          data_url_as_string_fragment.is_null() ? nullptr : data_url_as_string_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->data_url_as_string.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null data_url_as_string in CommitNavigationParams struct");

      fragment->is_browser_initiated = Traits::is_browser_initiated(input);

      fragment->has_ua_visual_transition = Traits::has_ua_visual_transition(input);

      fragment->document_ukm_source_id = Traits::document_ukm_source_id(input);

      decltype(Traits::frame_policy(input)) in_frame_policy = Traits::frame_policy(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->frame_policy)::BaseType> frame_policy_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::FramePolicyDataView, send_validation>(
        in_frame_policy,
        frame_policy_fragment);

      fragment->frame_policy.Set(
          frame_policy_fragment.is_null() ? nullptr : frame_policy_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->frame_policy.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null frame_policy in CommitNavigationParams struct");

      decltype(Traits::force_enabled_origin_trials(input)) in_force_enabled_origin_trials = Traits::force_enabled_origin_trials(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->force_enabled_origin_trials)::BaseType>
          force_enabled_origin_trials_fragment(fragment.message());
      constexpr const mojo::internal::ContainerValidateParams& force_enabled_origin_trials_validate_params =
          mojo::internal::GetArrayValidator<0, false, &mojo::internal::GetArrayValidator<0, false, nullptr>()>();
      
      mojo::internal::Serialize<mojo::ArrayDataView<mojo::StringDataView>, send_validation>(
        in_force_enabled_origin_trials,
        force_enabled_origin_trials_fragment,
        &force_enabled_origin_trials_validate_params);

      fragment->force_enabled_origin_trials.Set(
          force_enabled_origin_trials_fragment.is_null() ? nullptr : force_enabled_origin_trials_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->force_enabled_origin_trials.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null force_enabled_origin_trials in CommitNavigationParams struct");

      decltype(Traits::agent_cluster_key(input)) in_agent_cluster_key = Traits::agent_cluster_key(input);
      mojo::internal::MessageFragment<decltype(fragment->agent_cluster_key)>
          agent_cluster_key_fragment(fragment.message());
      agent_cluster_key_fragment.Claim(&fragment->agent_cluster_key);
      
      mojo::internal::Serialize<::blink::mojom::AgentClusterKeyDataView, send_validation>(
        in_agent_cluster_key,
        agent_cluster_key_fragment,
        true);

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->agent_cluster_key.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null agent_cluster_key in CommitNavigationParams struct");

      decltype(Traits::enabled_client_hints(input)) in_enabled_client_hints = Traits::enabled_client_hints(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->enabled_client_hints)::BaseType>
          enabled_client_hints_fragment(fragment.message());
      constexpr const mojo::internal::ContainerValidateParams& enabled_client_hints_validate_params =
          mojo::internal::GetArrayOfEnumsValidator<0, false, ::network::mojom::internal::WebClientHintsType_Data::Validate>();
      
      mojo::internal::Serialize<mojo::ArrayDataView<::network::mojom::WebClientHintsType>, send_validation>(
        in_enabled_client_hints,
        enabled_client_hints_fragment,
        &enabled_client_hints_validate_params);

      fragment->enabled_client_hints.Set(
          enabled_client_hints_fragment.is_null() ? nullptr : enabled_client_hints_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->enabled_client_hints.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null enabled_client_hints in CommitNavigationParams struct");

      fragment->is_cross_site_cross_browsing_context_group = Traits::is_cross_site_cross_browsing_context_group(input);

      fragment->should_have_sticky_user_activation = Traits::should_have_sticky_user_activation(input);

      decltype(Traits::old_page_info(input)) in_old_page_info = Traits::old_page_info(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->old_page_info)::BaseType> old_page_info_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::OldPageInfoDataView, send_validation>(
        in_old_page_info,
        old_page_info_fragment);

      fragment->old_page_info.Set(
          old_page_info_fragment.is_null() ? nullptr : old_page_info_fragment.data());

      fragment->http_response_code = Traits::http_response_code(input);

      decltype(Traits::navigation_api_history_entry_arrays(input)) in_navigation_api_history_entry_arrays = Traits::navigation_api_history_entry_arrays(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->navigation_api_history_entry_arrays)::BaseType> navigation_api_history_entry_arrays_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::NavigationApiHistoryEntryArraysDataView, send_validation>(
        in_navigation_api_history_entry_arrays,
        navigation_api_history_entry_arrays_fragment);

      fragment->navigation_api_history_entry_arrays.Set(
          navigation_api_history_entry_arrays_fragment.is_null() ? nullptr : navigation_api_history_entry_arrays_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->navigation_api_history_entry_arrays.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null navigation_api_history_entry_arrays in CommitNavigationParams struct");

      decltype(Traits::early_hints_preloaded_resources(input)) in_early_hints_preloaded_resources = Traits::early_hints_preloaded_resources(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->early_hints_preloaded_resources)::BaseType>
          early_hints_preloaded_resources_fragment(fragment.message());
      constexpr const mojo::internal::ContainerValidateParams& early_hints_preloaded_resources_validate_params =
          mojo::internal::GetArrayValidator<0, false, nullptr>();
      
      mojo::internal::Serialize<mojo::ArrayDataView<::network::mojom::LinkHeaderDataView>, send_validation>(
        in_early_hints_preloaded_resources,
        early_hints_preloaded_resources_fragment,
        &early_hints_preloaded_resources_validate_params);

      fragment->early_hints_preloaded_resources.Set(
          early_hints_preloaded_resources_fragment.is_null() ? nullptr : early_hints_preloaded_resources_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->early_hints_preloaded_resources.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null early_hints_preloaded_resources in CommitNavigationParams struct");

      decltype(Traits::early_hints_preconnects(input)) in_early_hints_preconnects = Traits::early_hints_preconnects(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->early_hints_preconnects)::BaseType>
          early_hints_preconnects_fragment(fragment.message());
      constexpr const mojo::internal::ContainerValidateParams& early_hints_preconnects_validate_params =
          mojo::internal::GetArrayValidator<0, false, nullptr>();
      
      mojo::internal::Serialize<mojo::ArrayDataView<::network::mojom::LinkHeaderDataView>, send_validation>(
        in_early_hints_preconnects,
        early_hints_preconnects_fragment,
        &early_hints_preconnects_validate_params);

      fragment->early_hints_preconnects.Set(
          early_hints_preconnects_fragment.is_null() ? nullptr : early_hints_preconnects_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->early_hints_preconnects.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null early_hints_preconnects in CommitNavigationParams struct");

      decltype(Traits::navigation_preconnects(input)) in_navigation_preconnects = Traits::navigation_preconnects(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->navigation_preconnects)::BaseType>
          navigation_preconnects_fragment(fragment.message());
      constexpr const mojo::internal::ContainerValidateParams& navigation_preconnects_validate_params =
          mojo::internal::GetArrayValidator<0, false, nullptr>();
      
      mojo::internal::Serialize<mojo::ArrayDataView<::network::mojom::LinkHeaderDataView>, send_validation>(
        in_navigation_preconnects,
        navigation_preconnects_fragment,
        &navigation_preconnects_validate_params);

      fragment->navigation_preconnects.Set(
          navigation_preconnects_fragment.is_null() ? nullptr : navigation_preconnects_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->navigation_preconnects.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null navigation_preconnects in CommitNavigationParams struct");

      decltype(Traits::commit_sent(input)) in_commit_sent = Traits::commit_sent(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->commit_sent)::BaseType> commit_sent_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::mojo_base::mojom::TimeTicksDataView, send_validation>(
        in_commit_sent,
        commit_sent_fragment);

      fragment->commit_sent.Set(
          commit_sent_fragment.is_null() ? nullptr : commit_sent_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->commit_sent.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null commit_sent in CommitNavigationParams struct");

      decltype(Traits::srcdoc_value(input)) in_srcdoc_value = Traits::srcdoc_value(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->srcdoc_value)::BaseType> srcdoc_value_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_srcdoc_value,
        srcdoc_value_fragment);

      fragment->srcdoc_value.Set(
          srcdoc_value_fragment.is_null() ? nullptr : srcdoc_value_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->srcdoc_value.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null srcdoc_value in CommitNavigationParams struct");

      fragment->is_load_data_with_base_url = Traits::is_load_data_with_base_url(input);

      fragment->ancestor_or_self_has_cspee = Traits::ancestor_or_self_has_cspee(input);

      decltype(Traits::reduced_accept_language(input)) in_reduced_accept_language = Traits::reduced_accept_language(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->reduced_accept_language)::BaseType> reduced_accept_language_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_reduced_accept_language,
        reduced_accept_language_fragment);

      fragment->reduced_accept_language.Set(
          reduced_accept_language_fragment.is_null() ? nullptr : reduced_accept_language_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->reduced_accept_language.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null reduced_accept_language in CommitNavigationParams struct");

      
      mojo::internal::Serialize<::network::mojom::NavigationDeliveryType>(
        Traits::navigation_delivery_type(input),
        &fragment->navigation_delivery_type);

      decltype(Traits::view_transition_state(input)) in_view_transition_state = Traits::view_transition_state(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->view_transition_state)::BaseType> view_transition_state_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::ViewTransitionStateDataView, send_validation>(
        in_view_transition_state,
        view_transition_state_fragment);

      fragment->view_transition_state.Set(
          view_transition_state_fragment.is_null() ? nullptr : view_transition_state_fragment.data());

      decltype(Traits::soft_navigation_heuristics_task_id(input)) in_soft_navigation_heuristics_task_id = Traits::soft_navigation_heuristics_task_id(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->soft_navigation_heuristics_task_id)::BaseType> soft_navigation_heuristics_task_id_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::TaskAttributionIdDataView, send_validation>(
        in_soft_navigation_heuristics_task_id,
        soft_navigation_heuristics_task_id_fragment);

      fragment->soft_navigation_heuristics_task_id.Set(
          soft_navigation_heuristics_task_id_fragment.is_null() ? nullptr : soft_navigation_heuristics_task_id_fragment.data());

      decltype(Traits::modified_runtime_features(input)) in_modified_runtime_features = Traits::modified_runtime_features(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->modified_runtime_features)::BaseType>
          modified_runtime_features_fragment(fragment.message());
      constexpr const mojo::internal::ContainerValidateParams& modified_runtime_features_validate_params =
          mojo::internal::GetMapValidator<*&mojo::internal::GetArrayOfEnumsValidator<0, false, ::blink::mojom::internal::RuntimeFeature_Data::Validate>(), *&mojo::internal::GetArrayValidator<0, false, nullptr>()>();
      
      mojo::internal::Serialize<mojo::MapDataView<::blink::mojom::RuntimeFeature, bool>, send_validation>(
        in_modified_runtime_features,
        modified_runtime_features_fragment,
        &modified_runtime_features_validate_params);

      fragment->modified_runtime_features.Set(
          modified_runtime_features_fragment.is_null() ? nullptr : modified_runtime_features_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->modified_runtime_features.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null modified_runtime_features in CommitNavigationParams struct");

      decltype(Traits::fenced_frame_properties(input)) in_fenced_frame_properties = Traits::fenced_frame_properties(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->fenced_frame_properties)::BaseType> fenced_frame_properties_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::FencedFramePropertiesDataView, send_validation>(
        in_fenced_frame_properties,
        fenced_frame_properties_fragment);

      fragment->fenced_frame_properties.Set(
          fenced_frame_properties_fragment.is_null() ? nullptr : fenced_frame_properties_fragment.data());

      decltype(Traits::not_restored_reasons(input)) in_not_restored_reasons = Traits::not_restored_reasons(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->not_restored_reasons)::BaseType> not_restored_reasons_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::BackForwardCacheNotRestoredReasonsDataView, send_validation>(
        in_not_restored_reasons,
        not_restored_reasons_fragment);

      fragment->not_restored_reasons.Set(
          not_restored_reasons_fragment.is_null() ? nullptr : not_restored_reasons_fragment.data());

      
      mojo::internal::Serialize<::network::mojom::StorageAccessApiStatus>(
        Traits::load_with_storage_access(input),
        &fragment->load_with_storage_access);

      decltype(Traits::browsing_context_group_token(input)) in_browsing_context_group_token = Traits::browsing_context_group_token(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->browsing_context_group_token)::BaseType> browsing_context_group_token_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::mojo_base::mojom::UnguessableTokenDataView, send_validation>(
        in_browsing_context_group_token,
        browsing_context_group_token_fragment);

      fragment->browsing_context_group_token.Set(
          browsing_context_group_token_fragment.is_null() ? nullptr : browsing_context_group_token_fragment.data());

      decltype(Traits::lcpp_hint(input)) in_lcpp_hint = Traits::lcpp_hint(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->lcpp_hint)::BaseType> lcpp_hint_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::LCPCriticalPathPredictorNavigationTimeHintDataView, send_validation>(
        in_lcpp_hint,
        lcpp_hint_fragment);

      fragment->lcpp_hint.Set(
          lcpp_hint_fragment.is_null() ? nullptr : lcpp_hint_fragment.data());

      decltype(Traits::content_settings(input)) in_content_settings = Traits::content_settings(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->content_settings)::BaseType> content_settings_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::RendererContentSettingsDataView, send_validation>(
        in_content_settings,
        content_settings_fragment);

      fragment->content_settings.Set(
          content_settings_fragment.is_null() ? nullptr : content_settings_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->content_settings.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null content_settings in CommitNavigationParams struct");
      fragment->visited_link_salt_$flag = Traits::visited_link_salt(input).has_value();
      if (Traits::visited_link_salt(input).has_value()) {
        fragment->visited_link_salt_$value = Traits::visited_link_salt(input).value();
      }

      decltype(Traits::local_surface_id(input)) in_local_surface_id = Traits::local_surface_id(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->local_surface_id)::BaseType> local_surface_id_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::viz::mojom::LocalSurfaceIdDataView, send_validation>(
        in_local_surface_id,
        local_surface_id_fragment);

      fragment->local_surface_id.Set(
          local_surface_id_fragment.is_null() ? nullptr : local_surface_id_fragment.data());

      decltype(Traits::initial_permission_statuses(input)) in_initial_permission_statuses = Traits::initial_permission_statuses(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->initial_permission_statuses)::BaseType>
          initial_permission_statuses_fragment(fragment.message());
      constexpr const mojo::internal::ContainerValidateParams& initial_permission_statuses_validate_params =
          mojo::internal::GetMapValidator<*&mojo::internal::GetArrayOfEnumsValidator<0, false, ::blink::mojom::internal::PermissionName_Data::Validate>(), *&mojo::internal::GetArrayOfEnumsValidator<0, false, ::blink::mojom::internal::PermissionStatus_Data::Validate>()>();
      
      mojo::internal::Serialize<mojo::MapDataView<::blink::mojom::PermissionName, ::blink::mojom::PermissionStatus>, send_validation>(
        in_initial_permission_statuses,
        initial_permission_statuses_fragment,
        &initial_permission_statuses_validate_params);

      fragment->initial_permission_statuses.Set(
          initial_permission_statuses_fragment.is_null() ? nullptr : initial_permission_statuses_fragment.data());

      fragment->should_skip_screenshot = Traits::should_skip_screenshot(input);

      fragment->force_new_document_sequence_number = Traits::force_new_document_sequence_number(input);

      decltype(Traits::navigation_metrics_token(input)) in_navigation_metrics_token = Traits::navigation_metrics_token(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->navigation_metrics_token)::BaseType> navigation_metrics_token_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::mojo_base::mojom::UnguessableTokenDataView, send_validation>(
        in_navigation_metrics_token,
        navigation_metrics_token_fragment);

      fragment->navigation_metrics_token.Set(
          navigation_metrics_token_fragment.is_null() ? nullptr : navigation_metrics_token_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->navigation_metrics_token.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null navigation_metrics_token in CommitNavigationParams struct");

      decltype(Traits::commit_target_frame_token(input)) in_commit_target_frame_token = Traits::commit_target_frame_token(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->commit_target_frame_token)::BaseType> commit_target_frame_token_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::LocalFrameTokenDataView, send_validation>(
        in_commit_target_frame_token,
        commit_target_frame_token_fragment);

      fragment->commit_target_frame_token.Set(
          commit_target_frame_token_fragment.is_null() ? nullptr : commit_target_frame_token_fragment.data());

      fragment->is_initial_webui = Traits::is_initial_webui(input);

      decltype(Traits::isolated_app_policy(input)) in_isolated_app_policy = Traits::isolated_app_policy(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->isolated_app_policy)::BaseType>
          isolated_app_policy_fragment(fragment.message());
      constexpr const mojo::internal::ContainerValidateParams& isolated_app_policy_validate_params =
          mojo::internal::GetArrayValidator<0, false, nullptr>();
      
      mojo::internal::Serialize<mojo::ArrayDataView<::blink::mojom::IsolatedAppPermissionPolicyEntryDataView>, send_validation>(
        in_isolated_app_policy,
        isolated_app_policy_fragment,
        &isolated_app_policy_validate_params);

      fragment->isolated_app_policy.Set(
          isolated_app_policy_fragment.is_null() ? nullptr : isolated_app_policy_fragment.data());

      decltype(Traits::internal_scroll_to_text_fragment(input)) in_internal_scroll_to_text_fragment = Traits::internal_scroll_to_text_fragment(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->internal_scroll_to_text_fragment)::BaseType> internal_scroll_to_text_fragment_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_internal_scroll_to_text_fragment,
        internal_scroll_to_text_fragment_fragment);

      fragment->internal_scroll_to_text_fragment.Set(
          internal_scroll_to_text_fragment_fragment.is_null() ? nullptr : internal_scroll_to_text_fragment_fragment.data());

      fragment->is_secure_context_root = Traits::is_secure_context_root(input);

      
      mojo::internal::Serialize<::blink::mojom::ScriptInjectionPolicy>(
        Traits::script_injection_policy(input),
        &fragment->script_injection_policy);
  }
};

template <typename MaybeConstUserType, mojo::internal::SendValidation send_validation>
struct SendValidationSerializer<::blink::mojom::PageSwapEventParamsDataView, MaybeConstUserType, send_validation> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = StructTraits<::blink::mojom::PageSwapEventParamsDataView, UserType>;
  static void Serialize(
      MaybeConstUserType& input,
      mojo::internal::MessageFragment<::blink::mojom::internal::PageSwapEventParams_Data>& fragment) {
    if (CallIsNullIfExists<Traits>(input))
      return;
    fragment.Allocate();

      decltype(Traits::url(input)) in_url = Traits::url(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->url)::BaseType> url_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::url::mojom::UrlDataView, send_validation>(
        in_url,
        url_fragment);

      fragment->url.Set(
          url_fragment.is_null() ? nullptr : url_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->url.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null url in PageSwapEventParams struct");

      decltype(Traits::page_state(input)) in_page_state = Traits::page_state(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->page_state)::BaseType> page_state_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::mojo_base::mojom::ByteStringDataView, send_validation>(
        in_page_state,
        page_state_fragment);

      fragment->page_state.Set(
          page_state_fragment.is_null() ? nullptr : page_state_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->page_state.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null page_state in PageSwapEventParams struct");

      
      mojo::internal::Serialize<::blink::mojom::NavigationTypeForNavigationApi>(
        Traits::navigation_type(input),
        &fragment->navigation_type);
  }
};

}  // namespace mojo::internal

#endif  // THIRD_PARTY_BLINK_PUBLIC_MOJOM_NAVIGATION_NAVIGATION_PARAMS_MOJOM_SEND_VALIDATION_H_