// third_party/blink/public/mojom/devtools/inspector_issue.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_DEVTOOLS_INSPECTOR_ISSUE_MOJOM_SEND_VALIDATION_H_
#define THIRD_PARTY_BLINK_PUBLIC_MOJOM_DEVTOOLS_INSPECTOR_ISSUE_MOJOM_SEND_VALIDATION_H_

#include "third_party/blink/public/mojom/devtools/inspector_issue.mojom-shared-internal.h"
#include "mojo/public/mojom/base/unguessable_token.mojom-shared.h"
#include "services/network/public/mojom/blocked_by_response_reason.mojom-shared.h"
#include "services/network/public/mojom/cookie_manager.mojom-shared.h"
#include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-shared.h"
#include "third_party/blink/public/mojom/webid/email_verification_request.mojom-shared.h"
#include "url/mojom/url.mojom-shared.h"

#include "third_party/blink/public/mojom/devtools/inspector_issue.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/has_send_validation_helper.h"

namespace mojo::internal {
template <typename MaybeConstUserType>
struct HasSendValidationSerialize<::blink::mojom::InspectorIssueCode, MaybeConstUserType>
    : std::false_type {};
template <typename MaybeConstUserType>
struct HasSendValidationSerialize<::blink::mojom::HeavyAdResolutionStatus, MaybeConstUserType>
    : std::false_type {};
template <typename MaybeConstUserType>
struct HasSendValidationSerialize<::blink::mojom::HeavyAdReason, MaybeConstUserType>
    : std::false_type {};
template <typename MaybeConstUserType>
struct HasSendValidationSerialize<::blink::mojom::MixedContentResolutionStatus, MaybeConstUserType>
    : std::false_type {};
template <typename MaybeConstUserType>
struct HasSendValidationSerialize<::blink::mojom::ContentSecurityPolicyViolationType, MaybeConstUserType>
    : std::false_type {};
template <typename MaybeConstUserType>
struct HasSendValidationSerialize<::blink::mojom::CookieOperation, MaybeConstUserType>
    : std::false_type {};
template <typename MaybeConstUserType>
struct HasSendValidationSerialize<::blink::mojom::CookieExclusionReason, MaybeConstUserType>
    : std::false_type {};
template <typename MaybeConstUserType>
struct HasSendValidationSerialize<::blink::mojom::CookieWarningReason, MaybeConstUserType>
    : std::false_type {};
template <typename MaybeConstUserType>
struct HasSendValidationSerialize<::blink::mojom::PerformanceIssueType, MaybeConstUserType>
    : std::false_type {};
template <typename MaybeConstUserType>
struct HasSendValidationSerialize<::blink::mojom::SharedArrayBufferIssueType, MaybeConstUserType>
    : std::false_type {};
template <typename MaybeConstUserType>
struct HasSendValidationSerialize<::blink::mojom::FederatedRequestResult, MaybeConstUserType>
    : std::false_type {};
template <typename MaybeConstUserType>
struct HasSendValidationSerialize<::blink::mojom::FederatedAuthUserInfoRequestResult, MaybeConstUserType>
    : std::false_type {};
template <typename MaybeConstUserType>
struct HasSendValidationSerialize<::blink::mojom::PartitioningBlobURLInfo, MaybeConstUserType>
    : std::false_type {};
template <typename MaybeConstUserType>
struct HasSendValidationSerialize<::blink::mojom::GenericIssueErrorType, MaybeConstUserType>
    : std::false_type {};
template <typename MaybeConstUserType>
struct HasSendValidationSerialize<::blink::mojom::DeprecationIssueType, MaybeConstUserType>
    : std::false_type {};
template <typename MaybeConstUserType>
struct HasSendValidationSerialize<::blink::mojom::UserReidentificationIssueType, MaybeConstUserType>
    : std::false_type {};

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

      decltype(Traits::name(input)) in_name = Traits::name(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->name)::BaseType> name_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_name,
        name_fragment);

      fragment->name.Set(
          name_fragment.is_null() ? nullptr : name_fragment.data());

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

      decltype(Traits::path(input)) in_path = Traits::path(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->path)::BaseType> path_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_path,
        path_fragment);

      fragment->path.Set(
          path_fragment.is_null() ? nullptr : path_fragment.data());

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

      decltype(Traits::domain(input)) in_domain = Traits::domain(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->domain)::BaseType> domain_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_domain,
        domain_fragment);

      fragment->domain.Set(
          domain_fragment.is_null() ? nullptr : domain_fragment.data());

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

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

      decltype(Traits::request_id(input)) in_request_id = Traits::request_id(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->request_id)::BaseType> request_id_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_request_id,
        request_id_fragment);

      fragment->request_id.Set(
          request_id_fragment.is_null() ? nullptr : request_id_fragment.data());

      decltype(Traits::url(input)) in_url = Traits::url(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->url)::BaseType> url_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, 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 AffectedRequest struct");
  }
};

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

      decltype(Traits::frame_id(input)) in_frame_id = Traits::frame_id(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->frame_id)::BaseType> frame_id_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_frame_id,
        frame_id_fragment);

      fragment->frame_id.Set(
          frame_id_fragment.is_null() ? nullptr : frame_id_fragment.data());

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

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

      decltype(Traits::script_id(input)) in_script_id = Traits::script_id(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->script_id)::BaseType> script_id_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_script_id,
        script_id_fragment);

      fragment->script_id.Set(
          script_id_fragment.is_null() ? nullptr : script_id_fragment.data());

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

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

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

      fragment->column = Traits::column(input);
  }
};

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

      decltype(Traits::request(input)) in_request = Traits::request(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->request)::BaseType> request_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::AffectedRequestDataView, send_validation>(
        in_request,
        request_fragment);

      fragment->request.Set(
          request_fragment.is_null() ? nullptr : request_fragment.data());

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

      decltype(Traits::parentFrame(input)) in_parentFrame = Traits::parentFrame(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->parentFrame)::BaseType> parentFrame_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::AffectedFrameDataView, send_validation>(
        in_parentFrame,
        parentFrame_fragment);

      fragment->parentFrame.Set(
          parentFrame_fragment.is_null() ? nullptr : parentFrame_fragment.data());

      decltype(Traits::blockedFrame(input)) in_blockedFrame = Traits::blockedFrame(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->blockedFrame)::BaseType> blockedFrame_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::AffectedFrameDataView, send_validation>(
        in_blockedFrame,
        blockedFrame_fragment);

      fragment->blockedFrame.Set(
          blockedFrame_fragment.is_null() ? nullptr : blockedFrame_fragment.data());

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

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

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

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

      decltype(Traits::frame(input)) in_frame = Traits::frame(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->frame)::BaseType> frame_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::AffectedFrameDataView, send_validation>(
        in_frame,
        frame_fragment);

      fragment->frame.Set(
          frame_fragment.is_null() ? nullptr : frame_fragment.data());

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

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

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

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

      decltype(Traits::insecure_url(input)) in_insecure_url = Traits::insecure_url(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->insecure_url)::BaseType> insecure_url_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_insecure_url,
        insecure_url_fragment);

      fragment->insecure_url.Set(
          insecure_url_fragment.is_null() ? nullptr : insecure_url_fragment.data());

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

      decltype(Traits::main_resource_url(input)) in_main_resource_url = Traits::main_resource_url(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->main_resource_url)::BaseType> main_resource_url_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_main_resource_url,
        main_resource_url_fragment);

      fragment->main_resource_url.Set(
          main_resource_url_fragment.is_null() ? nullptr : main_resource_url_fragment.data());

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

      decltype(Traits::request(input)) in_request = Traits::request(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->request)::BaseType> request_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::AffectedRequestDataView, send_validation>(
        in_request,
        request_fragment);

      fragment->request.Set(
          request_fragment.is_null() ? nullptr : request_fragment.data());

      decltype(Traits::frame(input)) in_frame = Traits::frame(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->frame)::BaseType> frame_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::AffectedFrameDataView, send_validation>(
        in_frame,
        frame_fragment);

      fragment->frame.Set(
          frame_fragment.is_null() ? nullptr : frame_fragment.data());
  }
};

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

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

      fragment->blocked_url.Set(
          blocked_url_fragment.is_null() ? nullptr : blocked_url_fragment.data());

      decltype(Traits::violated_directive(input)) in_violated_directive = Traits::violated_directive(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->violated_directive)::BaseType> violated_directive_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_violated_directive,
        violated_directive_fragment);

      fragment->violated_directive.Set(
          violated_directive_fragment.is_null() ? nullptr : violated_directive_fragment.data());

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

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

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

      decltype(Traits::frame_ancestor(input)) in_frame_ancestor = Traits::frame_ancestor(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->frame_ancestor)::BaseType> frame_ancestor_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::AffectedFrameDataView, send_validation>(
        in_frame_ancestor,
        frame_ancestor_fragment);

      fragment->frame_ancestor.Set(
          frame_ancestor_fragment.is_null() ? nullptr : frame_ancestor_fragment.data());

      decltype(Traits::affected_location(input)) in_affected_location = Traits::affected_location(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->affected_location)::BaseType> affected_location_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::AffectedLocationDataView, send_validation>(
        in_affected_location,
        affected_location_fragment);

      fragment->affected_location.Set(
          affected_location_fragment.is_null() ? nullptr : affected_location_fragment.data());

      fragment->violating_node_id = Traits::violating_node_id(input);
  }
};

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

      decltype(Traits::cookie(input)) in_cookie = Traits::cookie(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->cookie)::BaseType> cookie_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::AffectedCookieDataView, send_validation>(
        in_cookie,
        cookie_fragment);

      fragment->cookie.Set(
          cookie_fragment.is_null() ? nullptr : cookie_fragment.data());

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

      decltype(Traits::exclusion_reason(input)) in_exclusion_reason = Traits::exclusion_reason(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->exclusion_reason)::BaseType>
          exclusion_reason_fragment(fragment.message());
      constexpr const mojo::internal::ContainerValidateParams& exclusion_reason_validate_params =
          mojo::internal::GetArrayOfEnumsValidator<0, false, ::blink::mojom::internal::CookieExclusionReason_Data::Validate>();
      
      mojo::internal::Serialize<mojo::ArrayDataView<::blink::mojom::CookieExclusionReason>, send_validation>(
        in_exclusion_reason,
        exclusion_reason_fragment,
        &exclusion_reason_validate_params);

      fragment->exclusion_reason.Set(
          exclusion_reason_fragment.is_null() ? nullptr : exclusion_reason_fragment.data());

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

      decltype(Traits::warning_reason(input)) in_warning_reason = Traits::warning_reason(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->warning_reason)::BaseType>
          warning_reason_fragment(fragment.message());
      constexpr const mojo::internal::ContainerValidateParams& warning_reason_validate_params =
          mojo::internal::GetArrayOfEnumsValidator<0, false, ::blink::mojom::internal::CookieWarningReason_Data::Validate>();
      
      mojo::internal::Serialize<mojo::ArrayDataView<::blink::mojom::CookieWarningReason>, send_validation>(
        in_warning_reason,
        warning_reason_fragment,
        &warning_reason_validate_params);

      fragment->warning_reason.Set(
          warning_reason_fragment.is_null() ? nullptr : warning_reason_fragment.data());

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

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

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

      fragment->site_for_cookies.Set(
          site_for_cookies_fragment.is_null() ? nullptr : site_for_cookies_fragment.data());

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

      fragment->cookie_url.Set(
          cookie_url_fragment.is_null() ? nullptr : cookie_url_fragment.data());

      decltype(Traits::request(input)) in_request = Traits::request(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->request)::BaseType> request_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::AffectedRequestDataView, send_validation>(
        in_request,
        request_fragment);

      fragment->request.Set(
          request_fragment.is_null() ? nullptr : request_fragment.data());
  }
};

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

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

      decltype(Traits::affected_location(input)) in_affected_location = Traits::affected_location(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->affected_location)::BaseType> affected_location_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::AffectedLocationDataView, send_validation>(
        in_affected_location,
        affected_location_fragment);

      fragment->affected_location.Set(
          affected_location_fragment.is_null() ? nullptr : affected_location_fragment.data());
  }
};

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

      decltype(Traits::affected_location(input)) in_affected_location = Traits::affected_location(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->affected_location)::BaseType> affected_location_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::AffectedLocationDataView, send_validation>(
        in_affected_location,
        affected_location_fragment);

      fragment->affected_location.Set(
          affected_location_fragment.is_null() ? nullptr : affected_location_fragment.data());

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

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

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

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

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

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

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

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

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

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

      fragment->tracking_sites.Set(
          tracking_sites_fragment.is_null() ? nullptr : tracking_sites_fragment.data());

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

template <typename MaybeConstUserType, mojo::internal::SendValidation send_validation>
struct SendValidationSerializer<::blink::mojom::PartitioningBlobURLIssueDetailsDataView, MaybeConstUserType, send_validation> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = StructTraits<::blink::mojom::PartitioningBlobURLIssueDetailsDataView, UserType>;
  static void Serialize(
      MaybeConstUserType& input,
      mojo::internal::MessageFragment<::blink::mojom::internal::PartitioningBlobURLIssueDetails_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 PartitioningBlobURLIssueDetails struct");

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

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

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

      fragment->allowed_sites.Set(
          allowed_sites_fragment.is_null() ? nullptr : allowed_sites_fragment.data());

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

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

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

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

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

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

      decltype(Traits::frame_id(input)) in_frame_id = Traits::frame_id(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->frame_id)::BaseType> frame_id_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_frame_id,
        frame_id_fragment);

      fragment->frame_id.Set(
          frame_id_fragment.is_null() ? nullptr : frame_id_fragment.data());

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

      decltype(Traits::violating_node_attribute(input)) in_violating_node_attribute = Traits::violating_node_attribute(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->violating_node_attribute)::BaseType> violating_node_attribute_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_violating_node_attribute,
        violating_node_attribute_fragment);

      fragment->violating_node_attribute.Set(
          violating_node_attribute_fragment.is_null() ? nullptr : violating_node_attribute_fragment.data());
  }
};

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

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

      decltype(Traits::affected_location(input)) in_affected_location = Traits::affected_location(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->affected_location)::BaseType> affected_location_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::AffectedLocationDataView, send_validation>(
        in_affected_location,
        affected_location_fragment);

      fragment->affected_location.Set(
          affected_location_fragment.is_null() ? nullptr : affected_location_fragment.data());

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

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

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

      decltype(Traits::request(input)) in_request = Traits::request(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->request)::BaseType> request_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::AffectedRequestDataView, send_validation>(
        in_request,
        request_fragment);

      fragment->request.Set(
          request_fragment.is_null() ? nullptr : request_fragment.data());

      decltype(Traits::sourceCodeLocation(input)) in_sourceCodeLocation = Traits::sourceCodeLocation(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->sourceCodeLocation)::BaseType> sourceCodeLocation_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::AffectedLocationDataView, send_validation>(
        in_sourceCodeLocation,
        sourceCodeLocation_fragment);

      fragment->sourceCodeLocation.Set(
          sourceCodeLocation_fragment.is_null() ? nullptr : sourceCodeLocation_fragment.data());
  }
};

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

      decltype(Traits::cookie_issue_details(input)) in_cookie_issue_details = Traits::cookie_issue_details(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->cookie_issue_details)::BaseType> cookie_issue_details_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::CookieIssueDetailsDataView, send_validation>(
        in_cookie_issue_details,
        cookie_issue_details_fragment);

      fragment->cookie_issue_details.Set(
          cookie_issue_details_fragment.is_null() ? nullptr : cookie_issue_details_fragment.data());

      decltype(Traits::mixed_content_issue_details(input)) in_mixed_content_issue_details = Traits::mixed_content_issue_details(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->mixed_content_issue_details)::BaseType> mixed_content_issue_details_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::MixedContentIssueDetailsDataView, send_validation>(
        in_mixed_content_issue_details,
        mixed_content_issue_details_fragment);

      fragment->mixed_content_issue_details.Set(
          mixed_content_issue_details_fragment.is_null() ? nullptr : mixed_content_issue_details_fragment.data());

      decltype(Traits::blocked_by_response_issue_details(input)) in_blocked_by_response_issue_details = Traits::blocked_by_response_issue_details(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->blocked_by_response_issue_details)::BaseType> blocked_by_response_issue_details_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::BlockedByResponseIssueDetailsDataView, send_validation>(
        in_blocked_by_response_issue_details,
        blocked_by_response_issue_details_fragment);

      fragment->blocked_by_response_issue_details.Set(
          blocked_by_response_issue_details_fragment.is_null() ? nullptr : blocked_by_response_issue_details_fragment.data());

      decltype(Traits::csp_issue_details(input)) in_csp_issue_details = Traits::csp_issue_details(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->csp_issue_details)::BaseType> csp_issue_details_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::ContentSecurityPolicyIssueDetailsDataView, send_validation>(
        in_csp_issue_details,
        csp_issue_details_fragment);

      fragment->csp_issue_details.Set(
          csp_issue_details_fragment.is_null() ? nullptr : csp_issue_details_fragment.data());

      decltype(Traits::sab_issue_details(input)) in_sab_issue_details = Traits::sab_issue_details(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->sab_issue_details)::BaseType> sab_issue_details_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::SharedArrayBufferIssueDetailsDataView, send_validation>(
        in_sab_issue_details,
        sab_issue_details_fragment);

      fragment->sab_issue_details.Set(
          sab_issue_details_fragment.is_null() ? nullptr : sab_issue_details_fragment.data());

      decltype(Traits::heavy_ad_issue_details(input)) in_heavy_ad_issue_details = Traits::heavy_ad_issue_details(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->heavy_ad_issue_details)::BaseType> heavy_ad_issue_details_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::HeavyAdIssueDetailsDataView, send_validation>(
        in_heavy_ad_issue_details,
        heavy_ad_issue_details_fragment);

      fragment->heavy_ad_issue_details.Set(
          heavy_ad_issue_details_fragment.is_null() ? nullptr : heavy_ad_issue_details_fragment.data());

      decltype(Traits::federated_request_details(input)) in_federated_request_details = Traits::federated_request_details(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->federated_request_details)::BaseType> federated_request_details_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::FederatedRequestIssueDetailsDataView, send_validation>(
        in_federated_request_details,
        federated_request_details_fragment);

      fragment->federated_request_details.Set(
          federated_request_details_fragment.is_null() ? nullptr : federated_request_details_fragment.data());

      decltype(Traits::bounce_tracking_issue_details(input)) in_bounce_tracking_issue_details = Traits::bounce_tracking_issue_details(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->bounce_tracking_issue_details)::BaseType> bounce_tracking_issue_details_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::BounceTrackingIssueDetailsDataView, send_validation>(
        in_bounce_tracking_issue_details,
        bounce_tracking_issue_details_fragment);

      fragment->bounce_tracking_issue_details.Set(
          bounce_tracking_issue_details_fragment.is_null() ? nullptr : bounce_tracking_issue_details_fragment.data());

      decltype(Traits::partitioning_blob_url_issue_details(input)) in_partitioning_blob_url_issue_details = Traits::partitioning_blob_url_issue_details(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->partitioning_blob_url_issue_details)::BaseType> partitioning_blob_url_issue_details_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::PartitioningBlobURLIssueDetailsDataView, send_validation>(
        in_partitioning_blob_url_issue_details,
        partitioning_blob_url_issue_details_fragment);

      fragment->partitioning_blob_url_issue_details.Set(
          partitioning_blob_url_issue_details_fragment.is_null() ? nullptr : partitioning_blob_url_issue_details_fragment.data());

      decltype(Traits::cookie_deprecation_metadata_issue_details(input)) in_cookie_deprecation_metadata_issue_details = Traits::cookie_deprecation_metadata_issue_details(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->cookie_deprecation_metadata_issue_details)::BaseType> cookie_deprecation_metadata_issue_details_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::CookieDeprecationMetadataIssueDetailsDataView, send_validation>(
        in_cookie_deprecation_metadata_issue_details,
        cookie_deprecation_metadata_issue_details_fragment);

      fragment->cookie_deprecation_metadata_issue_details.Set(
          cookie_deprecation_metadata_issue_details_fragment.is_null() ? nullptr : cookie_deprecation_metadata_issue_details_fragment.data());

      decltype(Traits::generic_issue_details(input)) in_generic_issue_details = Traits::generic_issue_details(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->generic_issue_details)::BaseType> generic_issue_details_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::GenericIssueDetailsDataView, send_validation>(
        in_generic_issue_details,
        generic_issue_details_fragment);

      fragment->generic_issue_details.Set(
          generic_issue_details_fragment.is_null() ? nullptr : generic_issue_details_fragment.data());

      decltype(Traits::deprecation_issue_details(input)) in_deprecation_issue_details = Traits::deprecation_issue_details(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->deprecation_issue_details)::BaseType> deprecation_issue_details_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::DeprecationIssueDetailsDataView, send_validation>(
        in_deprecation_issue_details,
        deprecation_issue_details_fragment);

      fragment->deprecation_issue_details.Set(
          deprecation_issue_details_fragment.is_null() ? nullptr : deprecation_issue_details_fragment.data());

      decltype(Traits::federated_auth_user_info_request_details(input)) in_federated_auth_user_info_request_details = Traits::federated_auth_user_info_request_details(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->federated_auth_user_info_request_details)::BaseType> federated_auth_user_info_request_details_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::FederatedAuthUserInfoRequestIssueDetailsDataView, send_validation>(
        in_federated_auth_user_info_request_details,
        federated_auth_user_info_request_details_fragment);

      fragment->federated_auth_user_info_request_details.Set(
          federated_auth_user_info_request_details_fragment.is_null() ? nullptr : federated_auth_user_info_request_details_fragment.data());

      decltype(Traits::user_reidentification_issue_details(input)) in_user_reidentification_issue_details = Traits::user_reidentification_issue_details(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->user_reidentification_issue_details)::BaseType> user_reidentification_issue_details_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::UserReidentificationIssueDetailsDataView, send_validation>(
        in_user_reidentification_issue_details,
        user_reidentification_issue_details_fragment);

      fragment->user_reidentification_issue_details.Set(
          user_reidentification_issue_details_fragment.is_null() ? nullptr : user_reidentification_issue_details_fragment.data());

      decltype(Traits::performance_issue_details(input)) in_performance_issue_details = Traits::performance_issue_details(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->performance_issue_details)::BaseType> performance_issue_details_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::PerformanceIssueDetailsDataView, send_validation>(
        in_performance_issue_details,
        performance_issue_details_fragment);

      fragment->performance_issue_details.Set(
          performance_issue_details_fragment.is_null() ? nullptr : performance_issue_details_fragment.data());

      decltype(Traits::email_verification_request_details(input)) in_email_verification_request_details = Traits::email_verification_request_details(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->email_verification_request_details)::BaseType> email_verification_request_details_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::EmailVerificationRequestIssueDetailsDataView, send_validation>(
        in_email_verification_request_details,
        email_verification_request_details_fragment);

      fragment->email_verification_request_details.Set(
          email_verification_request_details_fragment.is_null() ? nullptr : email_verification_request_details_fragment.data());

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

      fragment->issue_id.Set(
          issue_id_fragment.is_null() ? nullptr : issue_id_fragment.data());
  }
};

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

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

      decltype(Traits::details(input)) in_details = Traits::details(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->details)::BaseType> details_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::blink::mojom::InspectorIssueDetailsDataView, send_validation>(
        in_details,
        details_fragment);

      fragment->details.Set(
          details_fragment.is_null() ? nullptr : details_fragment.data());

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

}  // namespace mojo::internal

#endif  // THIRD_PARTY_BLINK_PUBLIC_MOJOM_DEVTOOLS_INSPECTOR_ISSUE_MOJOM_SEND_VALIDATION_H_