// third_party/blink/public/mojom/frame/remote_frame.mojom-shared.h is auto generated by mojom_bindings_generator.py, do not edit

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

#ifndef THIRD_PARTY_BLINK_PUBLIC_MOJOM_FRAME_REMOTE_FRAME_MOJOM_SHARED_H_
#define THIRD_PARTY_BLINK_PUBLIC_MOJOM_FRAME_REMOTE_FRAME_MOJOM_SHARED_H_

#include <stdint.h>

#include <functional>
#include <iosfwd>
#include <type_traits>
#include <utility>
#include "mojo/public/cpp/bindings/array_data_view.h"
#include "mojo/public/cpp/bindings/map_data_view.h"
#include "mojo/public/cpp/bindings/string_data_view.h"
#include "mojo/public/cpp/system/message_pipe.h"

#include "third_party/perfetto/include/perfetto/tracing/traced_value_forward.h"

#include "third_party/blink/public/mojom/frame/remote_frame.mojom-shared-internal.h"
#include "cc/mojom/render_frame_metadata.mojom-shared.h"
#include "cc/mojom/touch_action.mojom-shared.h"
#include "mojo/public/mojom/base/string16.mojom-shared.h"
#include "mojo/public/mojom/base/time.mojom-shared.h"
#include "mojo/public/mojom/base/unguessable_token.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/url_request.mojom-shared.h"
#include "services/network/public/mojom/web_sandbox_flags.mojom-shared.h"
#include "services/viz/public/mojom/compositing/frame_sink_id.mojom-shared.h"
#include "third_party/blink/public/mojom/blob/blob_url_store.mojom-shared.h"
#include "third_party/blink/public/mojom/frame/frame_owner_properties.mojom-shared.h"
#include "third_party/blink/public/mojom/frame/frame_policy.mojom-shared.h"
#include "third_party/blink/public/mojom/frame/frame_replication_state.mojom-shared.h"
#include "third_party/blink/public/mojom/frame/frame_visual_properties.mojom-shared.h"
#include "third_party/blink/public/mojom/frame/fullscreen.mojom-shared.h"
#include "third_party/blink/public/mojom/frame/intrinsic_sizing_info.mojom-shared.h"
#include "third_party/blink/public/mojom/frame/lifecycle.mojom-shared.h"
#include "third_party/blink/public/mojom/frame/policy_container.mojom-shared.h"
#include "third_party/blink/public/mojom/frame/tree_scope_type.mojom-shared.h"
#include "third_party/blink/public/mojom/frame/triggering_event_info.mojom-shared.h"
#include "third_party/blink/public/mojom/frame/user_activation_notification_type.mojom-shared.h"
#include "third_party/blink/public/mojom/frame/user_activation_update_types.mojom-shared.h"
#include "third_party/blink/public/mojom/frame/viewport_intersection_state.mojom-shared.h"
#include "third_party/blink/public/mojom/input/focus_type.mojom-shared.h"
#include "third_party/blink/public/mojom/input/scroll_direction.mojom-shared.h"
#include "third_party/blink/public/mojom/loader/referrer.mojom-shared.h"
#include "third_party/blink/public/mojom/messaging/transferable_message.mojom-shared.h"
#include "third_party/blink/public/mojom/navigation/navigation_policy.mojom-shared.h"
#include "services/network/public/mojom/permissions_policy/permissions_policy.mojom-shared.h"
#include "third_party/blink/public/mojom/scroll/scroll_into_view_params.mojom-shared.h"
#include "third_party/blink/public/mojom/security_context/insecure_request_policy.mojom-shared.h"
#include "third_party/blink/public/mojom/timing/resource_timing.mojom-shared.h"
#include "third_party/blink/public/mojom/tokens/tokens.mojom-shared.h"
#include "ui/base/mojom/window_open_disposition.mojom-shared.h"
#include "ui/events/mojom/scroll_granularity.mojom-shared.h"
#include "ui/gfx/geometry/mojom/geometry.mojom-shared.h"
#include "url/mojom/origin.mojom-shared.h"
#include "url/mojom/url.mojom-shared.h"
#include "mojo/public/cpp/bindings/lib/interface_serialization.h"
#include "mojo/public/cpp/system/data_pipe.h"



#include "third_party/blink/public/mojom/frame/remote_frame.mojom-data-view.h"  // IWYU pragma: export
#include "base/component_export.h"




namespace std {

}  // namespace std

namespace mojo {


namespace internal {

template <typename MaybeConstUserType>
struct Serializer<::blink::mojom::RemoteMainFrameInterfacesDataView, MaybeConstUserType> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = StructTraits<::blink::mojom::RemoteMainFrameInterfacesDataView, UserType>;

  static void Serialize(
      MaybeConstUserType& input,
      mojo::internal::MessageFragment<::blink::mojom::internal::RemoteMainFrameInterfaces_Data>& fragment) {
    if (CallIsNullIfExists<Traits>(input))
      return;
    fragment.Allocate();

    decltype(Traits::main_frame_host(input)) in_main_frame_host = Traits::main_frame_host(input);

    
    mojo::internal::Serialize<::blink::mojom::RemoteMainFrameHostAssociatedPtrInfoDataView>(
      in_main_frame_host,
      &fragment->main_frame_host,
      &fragment.message());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(!mojo::internal::IsHandleOrInterfaceValid(fragment->main_frame_host)),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_INVALID_INTERFACE_ID,
      "invalid main_frame_host in RemoteMainFrameInterfaces struct");

    decltype(Traits::main_frame(input)) in_main_frame = Traits::main_frame(input);

    
    mojo::internal::Serialize<::blink::mojom::RemoteMainFrameAssociatedRequestDataView>(
      in_main_frame,
      &fragment->main_frame,
      &fragment.message());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(!mojo::internal::IsHandleOrInterfaceValid(fragment->main_frame)),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_INVALID_INTERFACE_ID,
      "invalid main_frame in RemoteMainFrameInterfaces struct");
  }

  static bool Deserialize(::blink::mojom::internal::RemoteMainFrameInterfaces_Data* input,
                          UserType* output,
                          Message* message) {
    if (!input)
      return CallSetToNullIfExists<Traits>(output);

    ::blink::mojom::RemoteMainFrameInterfacesDataView data_view(input, message);
    return CallTraitsRead<Traits>(data_view, output);
  }
};

}  // namespace internal


namespace internal {

template <typename MaybeConstUserType>
struct Serializer<::blink::mojom::RemoteFrameInterfacesFromRendererDataView, MaybeConstUserType> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = StructTraits<::blink::mojom::RemoteFrameInterfacesFromRendererDataView, UserType>;

  static void Serialize(
      MaybeConstUserType& input,
      mojo::internal::MessageFragment<::blink::mojom::internal::RemoteFrameInterfacesFromRenderer_Data>& fragment) {
    if (CallIsNullIfExists<Traits>(input))
      return;
    fragment.Allocate();

    decltype(Traits::frame(input)) in_frame = Traits::frame(input);

    
    mojo::internal::Serialize<::blink::mojom::RemoteFrameAssociatedPtrInfoDataView>(
      in_frame,
      &fragment->frame,
      &fragment.message());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(!mojo::internal::IsHandleOrInterfaceValid(fragment->frame)),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_INVALID_INTERFACE_ID,
      "invalid frame in RemoteFrameInterfacesFromRenderer struct");

    decltype(Traits::frame_host_receiver(input)) in_frame_host_receiver = Traits::frame_host_receiver(input);

    
    mojo::internal::Serialize<::blink::mojom::RemoteFrameHostAssociatedRequestDataView>(
      in_frame_host_receiver,
      &fragment->frame_host_receiver,
      &fragment.message());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(!mojo::internal::IsHandleOrInterfaceValid(fragment->frame_host_receiver)),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_INVALID_INTERFACE_ID,
      "invalid frame_host_receiver in RemoteFrameInterfacesFromRenderer struct");
  }

  static bool Deserialize(::blink::mojom::internal::RemoteFrameInterfacesFromRenderer_Data* input,
                          UserType* output,
                          Message* message) {
    if (!input)
      return CallSetToNullIfExists<Traits>(output);

    ::blink::mojom::RemoteFrameInterfacesFromRendererDataView data_view(input, message);
    return CallTraitsRead<Traits>(data_view, output);
  }
};

}  // namespace internal


namespace internal {

template <typename MaybeConstUserType>
struct Serializer<::blink::mojom::RemoteFrameInterfacesFromBrowserDataView, MaybeConstUserType> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = StructTraits<::blink::mojom::RemoteFrameInterfacesFromBrowserDataView, UserType>;

  static void Serialize(
      MaybeConstUserType& input,
      mojo::internal::MessageFragment<::blink::mojom::internal::RemoteFrameInterfacesFromBrowser_Data>& fragment) {
    if (CallIsNullIfExists<Traits>(input))
      return;
    fragment.Allocate();

    decltype(Traits::frame_receiver(input)) in_frame_receiver = Traits::frame_receiver(input);

    
    mojo::internal::Serialize<::blink::mojom::RemoteFrameAssociatedRequestDataView>(
      in_frame_receiver,
      &fragment->frame_receiver,
      &fragment.message());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(!mojo::internal::IsHandleOrInterfaceValid(fragment->frame_receiver)),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_INVALID_INTERFACE_ID,
      "invalid frame_receiver in RemoteFrameInterfacesFromBrowser struct");

    decltype(Traits::frame_host(input)) in_frame_host = Traits::frame_host(input);

    
    mojo::internal::Serialize<::blink::mojom::RemoteFrameHostAssociatedPtrInfoDataView>(
      in_frame_host,
      &fragment->frame_host,
      &fragment.message());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(!mojo::internal::IsHandleOrInterfaceValid(fragment->frame_host)),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_INVALID_INTERFACE_ID,
      "invalid frame_host in RemoteFrameInterfacesFromBrowser struct");
  }

  static bool Deserialize(::blink::mojom::internal::RemoteFrameInterfacesFromBrowser_Data* input,
                          UserType* output,
                          Message* message) {
    if (!input)
      return CallSetToNullIfExists<Traits>(output);

    ::blink::mojom::RemoteFrameInterfacesFromBrowserDataView data_view(input, message);
    return CallTraitsRead<Traits>(data_view, output);
  }
};

}  // namespace internal


namespace internal {

template <typename MaybeConstUserType>
struct Serializer<::blink::mojom::CreateRemoteChildParamsDataView, MaybeConstUserType> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = StructTraits<::blink::mojom::CreateRemoteChildParamsDataView, UserType>;

  static void Serialize(
      MaybeConstUserType& input,
      mojo::internal::MessageFragment<::blink::mojom::internal::CreateRemoteChildParams_Data>& fragment) {
    if (CallIsNullIfExists<Traits>(input))
      return;
    fragment.Allocate();

    decltype(Traits::token(input)) in_token = Traits::token(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->token)::BaseType> token_fragment(
            fragment.message());
    
    mojo::internal::Serialize<::blink::mojom::RemoteFrameTokenDataView>(
      in_token,
      token_fragment);

    fragment->token.Set(
        token_fragment.is_null() ? nullptr : token_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->token.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null token in CreateRemoteChildParams struct");

    decltype(Traits::opener_frame_token(input)) in_opener_frame_token = Traits::opener_frame_token(input);
    mojo::internal::MessageFragment<decltype(fragment->opener_frame_token)>
        opener_frame_token_fragment(fragment.message());
    opener_frame_token_fragment.Claim(&fragment->opener_frame_token);
    
    mojo::internal::Serialize<::blink::mojom::FrameTokenDataView>(
      in_opener_frame_token,
      opener_frame_token_fragment,
      true);

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

    decltype(Traits::replication_state(input)) in_replication_state = Traits::replication_state(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->replication_state)::BaseType> replication_state_fragment(
            fragment.message());
    
    mojo::internal::Serialize<::blink::mojom::FrameReplicationStateDataView>(
      in_replication_state,
      replication_state_fragment);

    fragment->replication_state.Set(
        replication_state_fragment.is_null() ? nullptr : replication_state_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->replication_state.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null replication_state in CreateRemoteChildParams struct");

    decltype(Traits::owner_properties(input)) in_owner_properties = Traits::owner_properties(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->owner_properties)::BaseType> owner_properties_fragment(
            fragment.message());
    
    mojo::internal::Serialize<::blink::mojom::FrameOwnerPropertiesDataView>(
      in_owner_properties,
      owner_properties_fragment);

    fragment->owner_properties.Set(
        owner_properties_fragment.is_null() ? nullptr : owner_properties_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->owner_properties.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null owner_properties in CreateRemoteChildParams struct");

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

    decltype(Traits::devtools_frame_token(input)) in_devtools_frame_token = Traits::devtools_frame_token(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->devtools_frame_token)::BaseType> devtools_frame_token_fragment(
            fragment.message());
    
    mojo::internal::Serialize<::mojo_base::mojom::UnguessableTokenDataView>(
      in_devtools_frame_token,
      devtools_frame_token_fragment);

    fragment->devtools_frame_token.Set(
        devtools_frame_token_fragment.is_null() ? nullptr : devtools_frame_token_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->devtools_frame_token.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null devtools_frame_token in CreateRemoteChildParams struct");

    decltype(Traits::frame_interfaces(input)) in_frame_interfaces = Traits::frame_interfaces(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->frame_interfaces)::BaseType> frame_interfaces_fragment(
            fragment.message());
    
    mojo::internal::Serialize<::blink::mojom::RemoteFrameInterfacesFromBrowserDataView>(
      in_frame_interfaces,
      frame_interfaces_fragment);

    fragment->frame_interfaces.Set(
        frame_interfaces_fragment.is_null() ? nullptr : frame_interfaces_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->frame_interfaces.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null frame_interfaces in CreateRemoteChildParams struct");

    decltype(Traits::child_params(input)) in_child_params = Traits::child_params(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->child_params)::BaseType>
        child_params_fragment(fragment.message());
    constexpr const mojo::internal::ContainerValidateParams& child_params_validate_params =
        mojo::internal::GetArrayValidator<0, false, nullptr>();
    
    mojo::internal::Serialize<mojo::ArrayDataView<::blink::mojom::CreateRemoteChildParamsDataView>>(
      in_child_params,
      child_params_fragment,
      &child_params_validate_params);

    fragment->child_params.Set(
        child_params_fragment.is_null() ? nullptr : child_params_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->child_params.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null child_params in CreateRemoteChildParams struct");
  }

  static bool Deserialize(::blink::mojom::internal::CreateRemoteChildParams_Data* input,
                          UserType* output,
                          Message* message) {
    if (!input)
      return CallSetToNullIfExists<Traits>(output);

    ::blink::mojom::CreateRemoteChildParamsDataView data_view(input, message);
    return CallTraitsRead<Traits>(data_view, output);
  }
};

}  // namespace internal


namespace internal {

template <typename MaybeConstUserType>
struct Serializer<::blink::mojom::OpenURLParamsDataView, MaybeConstUserType> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = StructTraits<::blink::mojom::OpenURLParamsDataView, UserType>;

  static void Serialize(
      MaybeConstUserType& input,
      mojo::internal::MessageFragment<::blink::mojom::internal::OpenURLParams_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>(
      in_url,
      url_fragment);

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

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->url.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null url in OpenURLParams 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>(
      in_initiator_origin,
      initiator_origin_fragment);

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

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->initiator_origin.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null initiator_origin in OpenURLParams struct");

    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>(
      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::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>(
      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(
      mojo::internal::SendValidation::kDefault,
      !(fragment->actual_navigation_start.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null actual_navigation_start in OpenURLParams struct");

    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>(
      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::post_body(input)) in_post_body = Traits::post_body(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->post_body)::BaseType> post_body_fragment(
            fragment.message());
    
    mojo::internal::Serialize<::network::mojom::URLRequestBodyDataView>(
      in_post_body,
      post_body_fragment);

    fragment->post_body.Set(
        post_body_fragment.is_null() ? nullptr : post_body_fragment.data());

    decltype(Traits::extra_headers(input)) in_extra_headers = Traits::extra_headers(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->extra_headers)::BaseType> extra_headers_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_extra_headers,
      extra_headers_fragment);

    fragment->extra_headers.Set(
        extra_headers_fragment.is_null() ? nullptr : extra_headers_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->extra_headers.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null extra_headers in OpenURLParams struct");

    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>(
      in_referrer,
      referrer_fragment);

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

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

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

    
    mojo::internal::Serialize<::ui::mojom::WindowOpenDisposition>(
      Traits::disposition(input),
      &fragment->disposition);

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

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

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

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

    decltype(Traits::blob_url_token(input)) in_blob_url_token = Traits::blob_url_token(input);

    
    mojo::internal::Serialize<mojo::InterfacePtrDataView<::blink::mojom::BlobURLTokenInterfaceBase>>(
      in_blob_url_token,
      &fragment->blob_url_token,
      &fragment.message());

    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>(
      in_href_translate,
      href_translate_fragment);

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

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

    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>(
      in_download_policy,
      download_policy_fragment);

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

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

    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>(
      in_source_location,
      source_location_fragment);

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

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

    decltype(Traits::initiator_navigation_state_keep_alive_handle(input)) in_initiator_navigation_state_keep_alive_handle = Traits::initiator_navigation_state_keep_alive_handle(input);

    
    mojo::internal::Serialize<mojo::InterfacePtrDataView<::blink::mojom::NavigationStateKeepAliveHandleInterfaceBase>>(
      in_initiator_navigation_state_keep_alive_handle,
      &fragment->initiator_navigation_state_keep_alive_handle,
      &fragment.message());

    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);
  }

  static bool Deserialize(::blink::mojom::internal::OpenURLParams_Data* input,
                          UserType* output,
                          Message* message) {
    if (!input)
      return CallSetToNullIfExists<Traits>(output);

    ::blink::mojom::OpenURLParamsDataView data_view(input, message);
    return CallTraitsRead<Traits>(data_view, output);
  }
};

}  // namespace internal

}  // namespace mojo


namespace blink::mojom {







inline void CreateRemoteChildParamsDataView::GetTokenDataView(
    ::blink::mojom::RemoteFrameTokenDataView* output) {
  auto pointer = data_->token.Get();
  *output = ::blink::mojom::RemoteFrameTokenDataView(pointer, message_);
}
inline void CreateRemoteChildParamsDataView::GetOpenerFrameTokenDataView(
    ::blink::mojom::FrameTokenDataView* output) {
  auto pointer = &data_->opener_frame_token;
  *output = ::blink::mojom::FrameTokenDataView(pointer, message_);
}
inline void CreateRemoteChildParamsDataView::GetReplicationStateDataView(
    ::blink::mojom::FrameReplicationStateDataView* output) {
  auto pointer = data_->replication_state.Get();
  *output = ::blink::mojom::FrameReplicationStateDataView(pointer, message_);
}
inline void CreateRemoteChildParamsDataView::GetOwnerPropertiesDataView(
    ::blink::mojom::FrameOwnerPropertiesDataView* output) {
  auto pointer = data_->owner_properties.Get();
  *output = ::blink::mojom::FrameOwnerPropertiesDataView(pointer, message_);
}
inline void CreateRemoteChildParamsDataView::GetDevtoolsFrameTokenDataView(
    ::mojo_base::mojom::UnguessableTokenDataView* output) {
  auto pointer = data_->devtools_frame_token.Get();
  *output = ::mojo_base::mojom::UnguessableTokenDataView(pointer, message_);
}
inline void CreateRemoteChildParamsDataView::GetFrameInterfacesDataView(
    RemoteFrameInterfacesFromBrowserDataView* output) {
  auto pointer = data_->frame_interfaces.Get();
  *output = RemoteFrameInterfacesFromBrowserDataView(pointer, message_);
}
inline void CreateRemoteChildParamsDataView::GetChildParamsDataView(
    mojo::ArrayDataView<CreateRemoteChildParamsDataView>* output) {
  auto pointer = data_->child_params.Get();
  *output = mojo::ArrayDataView<CreateRemoteChildParamsDataView>(pointer, message_);
}


inline void OpenURLParamsDataView::GetUrlDataView(
    ::url::mojom::UrlDataView* output) {
  auto pointer = data_->url.Get();
  *output = ::url::mojom::UrlDataView(pointer, message_);
}
inline void OpenURLParamsDataView::GetInitiatorOriginDataView(
    ::url::mojom::OriginDataView* output) {
  auto pointer = data_->initiator_origin.Get();
  *output = ::url::mojom::OriginDataView(pointer, message_);
}
inline void OpenURLParamsDataView::GetInitiatorBaseUrlDataView(
    ::url::mojom::UrlDataView* output) {
  auto pointer = data_->initiator_base_url.Get();
  *output = ::url::mojom::UrlDataView(pointer, message_);
}
inline void OpenURLParamsDataView::GetActualNavigationStartDataView(
    ::mojo_base::mojom::TimeTicksDataView* output) {
  auto pointer = data_->actual_navigation_start.Get();
  *output = ::mojo_base::mojom::TimeTicksDataView(pointer, message_);
}
inline void OpenURLParamsDataView::GetInitiatorFrameTokenDataView(
    ::blink::mojom::LocalFrameTokenDataView* output) {
  auto pointer = data_->initiator_frame_token.Get();
  *output = ::blink::mojom::LocalFrameTokenDataView(pointer, message_);
}
inline void OpenURLParamsDataView::GetPostBodyDataView(
    ::network::mojom::URLRequestBodyDataView* output) {
  auto pointer = data_->post_body.Get();
  *output = ::network::mojom::URLRequestBodyDataView(pointer, message_);
}
inline void OpenURLParamsDataView::GetExtraHeadersDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->extra_headers.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void OpenURLParamsDataView::GetReferrerDataView(
    ::blink::mojom::ReferrerDataView* output) {
  auto pointer = data_->referrer.Get();
  *output = ::blink::mojom::ReferrerDataView(pointer, message_);
}
inline void OpenURLParamsDataView::GetHrefTranslateDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->href_translate.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void OpenURLParamsDataView::GetDownloadPolicyDataView(
    ::blink::mojom::NavigationDownloadPolicyDataView* output) {
  auto pointer = data_->download_policy.Get();
  *output = ::blink::mojom::NavigationDownloadPolicyDataView(pointer, message_);
}
inline void OpenURLParamsDataView::GetSourceLocationDataView(
    ::network::mojom::SourceLocationDataView* output) {
  auto pointer = data_->source_location.Get();
  *output = ::network::mojom::SourceLocationDataView(pointer, message_);
}



}  // blink::mojom

// Declare TraceFormatTraits for enums, which should be defined in ::perfetto
// namespace.

#endif  // THIRD_PARTY_BLINK_PUBLIC_MOJOM_FRAME_REMOTE_FRAME_MOJOM_SHARED_H_