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

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

#ifndef THIRD_PARTY_BLINK_PUBLIC_MOJOM_MANIFEST_MANIFEST_MOJOM_SHARED_INTERNAL_H_
#define THIRD_PARTY_BLINK_PUBLIC_MOJOM_MANIFEST_MANIFEST_MOJOM_SHARED_INTERNAL_H_
#include "mojo/public/cpp/bindings/lib/array_internal.h"
#include "mojo/public/cpp/bindings/lib/bindings_internal.h"
#include "mojo/public/cpp/bindings/lib/map_data_internal.h"
#include "mojo/public/cpp/bindings/lib/validation_errors.h"
#include "mojo/public/cpp/bindings/lib/message_fragment.h"
#include "mojo/public/c/system/macros.h"
#include "mojo/public/mojom/base/string16.mojom-shared-internal.h"
#include "services/device/public/mojom/screen_orientation_lock_types.mojom-shared-internal.h"
#include "third_party/blink/public/mojom/manifest/display_mode.mojom-shared-internal.h"
#include "third_party/blink/public/mojom/manifest/manifest_launch_handler.mojom-shared-internal.h"
#include "third_party/blink/public/mojom/manifest/manifest_migration_behavior.mojom-shared-internal.h"
#include "services/network/public/mojom/permissions_policy/permissions_policy.mojom-shared-internal.h"
#include "third_party/blink/public/mojom/safe_url_pattern.mojom-shared-internal.h"
#include "ui/gfx/geometry/mojom/geometry.mojom-shared-internal.h"
#include "url/mojom/origin.mojom-shared-internal.h"
#include "url/mojom/url.mojom-shared-internal.h"
#include "mojo/public/cpp/bindings/lib/native_enum_data.h"
#include "mojo/public/interfaces/bindings/native_struct.mojom-shared-internal.h"
#include "base/component_export.h"



namespace mojo {
namespace internal {
class ValidationContext;
}
}


namespace blink::mojom {
namespace internal {
class Manifest_Data;
class ManifestLocalizedTextObject_Data;
class Locale_Data;
class ManifestShortcutItem_Data;
class ManifestImageResource_Data;
class ManifestScreenshot_Data;
class ManifestFileFilter_Data;
class ManifestProtocolHandler_Data;
class ManifestScopeExtension_Data;
class ManifestLockScreen_Data;
class ManifestNoteTaking_Data;
class ManifestRelatedApplication_Data;
class ManifestShareTargetParams_Data;
class ManifestShareTarget_Data;
class ManifestFileHandler_Data;
class ManifestTranslationItem_Data;
class ManifestMigrateFrom_Data;
class ManifestMigrateTo_Data;
class ManifestTabStrip_Data;
class HomeTabParams_Data;
class NewTabButtonParams_Data;
class ManifestDebugInfo_Data;
class ManifestError_Data;
class DisplayOverrideItem_Data;
class HomeTabUnion_Data;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#pragma pack(push, 1)


class COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) HomeTabUnion_Data {
 public:
  // Used to identify Mojom Union Data Classes.
  typedef void MojomUnionDataType;

  HomeTabUnion_Data() = default;
  // Do nothing in the destructor since it won't be called when it is a
  // non-inlined union.
  ~HomeTabUnion_Data() = default;

  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context,
                       bool inlined);

  bool is_null() const { return size == 0; }

  void set_null() {
    size = 0U;
    tag = static_cast<HomeTabUnion_Tag>(0);
    data.unknown = 0U;
  }

  // TODO(crbug.com/40731316): SHOUTY_CASE values are being deprecated per C++ code style
  // guidelines (https://google.github.io/styleguide/cppguide.html#Enumerator_Names),
  // please use kCamelCase values instead.  Cleanup NULL_VALUE, BOOL_VALUE, INT_VALUE, etc.
  // generation once codebase is transitioned to kNullValue, kBoolValue, kIntValue, etc.
  enum class HomeTabUnion_Tag : uint32_t {

    
    kVisibility,
    
    kParams,
  };

  // A note on layout:
  // "Each non-static data member is allocated as if it were the sole member of
  // a struct." - Section 9.5.2 ISO/IEC 14882:2011 (The C++ Spec)
  union MOJO_ALIGNAS(8) Union_ {
    Union_() : unknown(0) {}
    int32_t f_visibility;
    mojo::internal::Pointer<internal::HomeTabParams_Data> f_params;
    uint64_t unknown;
  };

  uint32_t size;
  HomeTabUnion_Tag tag;
  Union_ data;
};
static_assert(sizeof(HomeTabUnion_Data) == mojo::internal::kUnionDataSize,
              "Bad sizeof(HomeTabUnion_Data)");
class COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) Manifest_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<::url::mojom::internal::Url_Data> manifest_url;
  int32_t dir;
  uint8_t has_custom_id : 1;
  uint8_t has_valid_specified_start_url : 1;
  uint8_t prefer_related_applications : 1;
  uint8_t theme_color_$flag : 1;
  uint8_t background_color_$flag : 1;
  uint8_t dark_theme_color_$flag : 1;
  uint8_t dark_background_color_$flag : 1;
  uint8_t pad8_[3];
  mojo::internal::Pointer<::mojo_base::mojom::internal::String16_Data> name;
  mojo::internal::Pointer<::mojo_base::mojom::internal::String16_Data> short_name;
  mojo::internal::Pointer<::mojo_base::mojom::internal::String16_Data> description;
  mojo::internal::Pointer<::url::mojom::internal::Url_Data> id;
  mojo::internal::Pointer<::url::mojom::internal::Url_Data> start_url;
  int32_t display;
  int32_t orientation;
  mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<internal::DisplayOverrideItem_Data>>> display_override;
  mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<internal::ManifestImageResource_Data>>> icons;
  mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<internal::ManifestScreenshot_Data>>> screenshots;
  mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<internal::ManifestShortcutItem_Data>>> shortcuts;
  mojo::internal::Pointer<internal::ManifestShareTarget_Data> share_target;
  mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<internal::ManifestFileHandler_Data>>> file_handlers;
  mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<internal::ManifestProtocolHandler_Data>>> protocol_handlers;
  mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<internal::ManifestScopeExtension_Data>>> scope_extensions;
  mojo::internal::Pointer<internal::ManifestLockScreen_Data> lock_screen;
  mojo::internal::Pointer<internal::ManifestNoteTaking_Data> note_taking;
  mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<internal::ManifestRelatedApplication_Data>>> related_applications;
  mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<internal::ManifestMigrateFrom_Data>>> migrate_from;
  mojo::internal::Pointer<internal::ManifestMigrateTo_Data> migrate_to;
  uint32_t theme_color_$value;
  uint32_t background_color_$value;
  mojo::internal::Pointer<::mojo_base::mojom::internal::String16_Data> gcm_sender_id;
  mojo::internal::Pointer<::url::mojom::internal::Url_Data> scope;
  mojo::internal::Pointer<::url::mojom::internal::Url_Data> update_manifest_url;
  mojo::internal::Pointer<::blink::mojom::internal::ManifestLaunchHandler_Data> launch_handler;
  mojo::internal::Pointer<mojo::internal::Map_Data<mojo::internal::Pointer<::mojo_base::mojom::internal::String16_Data>, mojo::internal::Pointer<internal::ManifestTranslationItem_Data>>> translations;
  uint32_t dark_theme_color_$value;
  uint32_t dark_background_color_$value;
  mojo::internal::Pointer<internal::ManifestTabStrip_Data> tab_strip;
  mojo::internal::Pointer<::mojo_base::mojom::internal::String16_Data> version;
  mojo::internal::Pointer<mojo::internal::Map_Data<mojo::internal::Pointer<internal::Locale_Data>, mojo::internal::Pointer<internal::ManifestLocalizedTextObject_Data>>> name_localized;
  mojo::internal::Pointer<mojo::internal::Map_Data<mojo::internal::Pointer<internal::Locale_Data>, mojo::internal::Pointer<internal::ManifestLocalizedTextObject_Data>>> short_name_localized;
  mojo::internal::Pointer<mojo::internal::Map_Data<mojo::internal::Pointer<internal::Locale_Data>, mojo::internal::Pointer<internal::ManifestLocalizedTextObject_Data>>> description_localized;
  mojo::internal::Pointer<mojo::internal::Map_Data<mojo::internal::Pointer<internal::Locale_Data>, mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<internal::ManifestImageResource_Data>>>>> icons_localized;

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

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

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

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

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

  UserType user_data_;
};

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

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<::mojo_base::mojom::internal::String16_Data> value;
  uint8_t dir_$flag : 1;
  uint8_t pad1_[3];
  int32_t dir_$value;
  mojo::internal::Pointer<::mojo_base::mojom::internal::String16_Data> lang;

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

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

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

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

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

  UserType user_data_;
};

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

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<mojo::internal::String_Data> tag;

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

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

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

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

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

  UserType user_data_;
};

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

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<::mojo_base::mojom::internal::String16_Data> name;
  mojo::internal::Pointer<::mojo_base::mojom::internal::String16_Data> short_name;
  mojo::internal::Pointer<::mojo_base::mojom::internal::String16_Data> description;
  mojo::internal::Pointer<::url::mojom::internal::Url_Data> url;
  mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<internal::ManifestImageResource_Data>>> icons;
  mojo::internal::Pointer<mojo::internal::Map_Data<mojo::internal::Pointer<internal::Locale_Data>, mojo::internal::Pointer<internal::ManifestLocalizedTextObject_Data>>> name_localized;
  mojo::internal::Pointer<mojo::internal::Map_Data<mojo::internal::Pointer<internal::Locale_Data>, mojo::internal::Pointer<internal::ManifestLocalizedTextObject_Data>>> short_name_localized;
  mojo::internal::Pointer<mojo::internal::Map_Data<mojo::internal::Pointer<internal::Locale_Data>, mojo::internal::Pointer<internal::ManifestLocalizedTextObject_Data>>> description_localized;
  mojo::internal::Pointer<mojo::internal::Map_Data<mojo::internal::Pointer<internal::Locale_Data>, mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<internal::ManifestImageResource_Data>>>>> icons_localized;

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

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

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

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

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

  UserType user_data_;
};

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

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<::url::mojom::internal::Url_Data> src;
  mojo::internal::Pointer<::mojo_base::mojom::internal::String16_Data> type;
  mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<::gfx::mojom::internal::Size_Data>>> sizes;
  mojo::internal::Pointer<mojo::internal::Array_Data<int32_t>> purpose;

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

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

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

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

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

  UserType user_data_;
};

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

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<internal::ManifestImageResource_Data> image;
  int32_t form_factor;
  uint8_t pad1_[4];
  mojo::internal::Pointer<::mojo_base::mojom::internal::String16_Data> label;

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

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

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

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

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

  UserType user_data_;
};

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

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<::mojo_base::mojom::internal::String16_Data> name;
  mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<::mojo_base::mojom::internal::String16_Data>>> accept;

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

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

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

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

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

  UserType user_data_;
};

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

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<::mojo_base::mojom::internal::String16_Data> protocol;
  mojo::internal::Pointer<::url::mojom::internal::Url_Data> url;

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

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

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

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

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

  UserType user_data_;
};

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

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<::url::mojom::internal::Origin_Data> origin;
  uint8_t has_origin_wildcard : 1;
  uint8_t padfinal_[7];

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

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

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

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

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

  UserType user_data_;
};

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

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<::url::mojom::internal::Url_Data> start_url;

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

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

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

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

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

  UserType user_data_;
};

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

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<::url::mojom::internal::Url_Data> new_note_url;

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

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

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

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

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

  UserType user_data_;
};

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

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<::mojo_base::mojom::internal::String16_Data> platform;
  mojo::internal::Pointer<::url::mojom::internal::Url_Data> url;
  mojo::internal::Pointer<::mojo_base::mojom::internal::String16_Data> id;

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

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

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

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

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

  UserType user_data_;
};

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

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<::mojo_base::mojom::internal::String16_Data> title;
  mojo::internal::Pointer<::mojo_base::mojom::internal::String16_Data> text;
  mojo::internal::Pointer<::mojo_base::mojom::internal::String16_Data> url;
  mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<internal::ManifestFileFilter_Data>>> files;

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

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

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

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

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

  UserType user_data_;
};

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

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<::url::mojom::internal::Url_Data> action;
  int32_t method;
  int32_t enctype;
  mojo::internal::Pointer<internal::ManifestShareTargetParams_Data> params;

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

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

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

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

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

  UserType user_data_;
};

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

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<::url::mojom::internal::Url_Data> action;
  mojo::internal::Pointer<::mojo_base::mojom::internal::String16_Data> name;
  mojo::internal::Pointer<mojo::internal::Map_Data<mojo::internal::Pointer<::mojo_base::mojom::internal::String16_Data>, mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<::mojo_base::mojom::internal::String16_Data>>>>> accept;
  int32_t launch_type;
  uint8_t padfinal_[4];

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

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

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

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

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

  UserType user_data_;
};

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

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<::mojo_base::mojom::internal::String16_Data> name;
  mojo::internal::Pointer<::mojo_base::mojom::internal::String16_Data> short_name;
  mojo::internal::Pointer<::mojo_base::mojom::internal::String16_Data> description;

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

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

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

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

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

  UserType user_data_;
};

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

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<::url::mojom::internal::Url_Data> id;
  mojo::internal::Pointer<::url::mojom::internal::Url_Data> install_url;
  int32_t behavior;
  uint8_t padfinal_[4];

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

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

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

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

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

  UserType user_data_;
};

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

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<::url::mojom::internal::Url_Data> id;
  mojo::internal::Pointer<::url::mojom::internal::Url_Data> install_url;

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

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

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

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

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

  UserType user_data_;
};

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

  mojo::internal::StructHeader header_;
  internal::HomeTabUnion_Data home_tab;
  mojo::internal::Pointer<internal::NewTabButtonParams_Data> new_tab_button;

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

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

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

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

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

  UserType user_data_;
};

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

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<internal::ManifestImageResource_Data>>> icons;
  mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<::blink::mojom::internal::SafeUrlPattern_Data>>> scope_patterns;

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

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

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

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

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

  UserType user_data_;
};

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

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<::url::mojom::internal::Url_Data> url;

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

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

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

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

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

  UserType user_data_;
};

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

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<internal::ManifestError_Data>>> errors;
  mojo::internal::Pointer<mojo::internal::String_Data> raw_manifest;

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

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

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

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

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

  UserType user_data_;
};

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

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<mojo::internal::String_Data> message;
  uint8_t critical : 1;
  uint8_t pad1_[3];
  uint32_t line;
  uint32_t column;
  uint8_t padfinal_[4];

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

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

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

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

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

  UserType user_data_;
};

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

  mojo::internal::StructHeader header_;
  int32_t display;
  uint8_t pad0_[4];
  mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<::blink::mojom::internal::SafeUrlPattern_Data>>> url_patterns;

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

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

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

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

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

  UserType user_data_;
};

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

#pragma pack(pop)

}  // namespace internal

}  // blink::mojom

#endif  // THIRD_PARTY_BLINK_PUBLIC_MOJOM_MANIFEST_MANIFEST_MOJOM_SHARED_INTERNAL_H_