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

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

#if defined(__clang__)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-private-field"
#endif

#include "third_party/blink/public/mojom/manifest/manifest.mojom-blink.h"
#include <stdint.h>
#include <utility>
#include "base/notreached.h"
#include "mojo/public/cpp/bindings/lib/default_construct_tag_internal.h"
#include "mojo/public/cpp/bindings/lib/serialization.h"
#include "mojo/public/cpp/bindings/lib/validate_params.h"
#include "mojo/public/cpp/bindings/lib/validation_errors.h"
#include "mojo/public/cpp/bindings/mojo_buildflags.h"
#include "third_party/perfetto/include/perfetto/tracing/traced_value.h"

#include "third_party/blink/public/mojom/manifest/manifest.mojom-params-data.h"
#include "third_party/blink/public/mojom/manifest/manifest.mojom-shared-message-ids.h"

#include "third_party/blink/public/mojom/manifest/manifest.mojom-blink-import-headers.h"
#include "third_party/blink/public/mojom/manifest/manifest.mojom-blink-test-utils.h"
#include "mojo/public/cpp/bindings/lib/wtf_serialization.h"


namespace blink::mojom::blink {
Manifest::Manifest()
    : manifest_url(),
      dir(),
      name(),
      short_name(),
      description(),
      id(),
      has_custom_id(),
      start_url(),
      has_valid_specified_start_url(),
      display(),
      display_override(),
      orientation(),
      icons(),
      screenshots(),
      shortcuts(),
      share_target(),
      file_handlers(),
      protocol_handlers(),
      scope_extensions(),
      lock_screen(),
      note_taking(),
      related_applications(),
      prefer_related_applications(),
      migrate_from(),
      migrate_to(),
      theme_color(),
      background_color(),
      gcm_sender_id(),
      scope(),
      update_manifest_url(),
      launch_handler(),
      translations(),
      dark_theme_color(),
      dark_background_color(),
      tab_strip(),
      version(),
      name_localized(),
      short_name_localized(),
      description_localized(),
      icons_localized() {}

Manifest::Manifest(
    const ::blink::KURL& manifest_url_in,
    Manifest::TextDirection dir_in,
    const ::blink::String& name_in,
    const ::blink::String& short_name_in,
    const ::blink::String& description_in,
    const ::blink::KURL& id_in,
    bool has_custom_id_in,
    const ::blink::KURL& start_url_in,
    bool has_valid_specified_start_url_in,
    ::blink::mojom::blink::DisplayMode display_in,
    ::blink::Vector<DisplayOverrideItemPtr> display_override_in,
    ::device::mojom::blink::ScreenOrientationLockType orientation_in,
    ::blink::Vector<ManifestImageResourcePtr> icons_in,
    ::blink::Vector<ManifestScreenshotPtr> screenshots_in,
    ::blink::Vector<ManifestShortcutItemPtr> shortcuts_in,
    ManifestShareTargetPtr share_target_in,
    ::blink::Vector<ManifestFileHandlerPtr> file_handlers_in,
    ::blink::Vector<ManifestProtocolHandlerPtr> protocol_handlers_in,
    ::blink::Vector<ManifestScopeExtensionPtr> scope_extensions_in,
    ManifestLockScreenPtr lock_screen_in,
    ManifestNoteTakingPtr note_taking_in,
    ::blink::Vector<ManifestRelatedApplicationPtr> related_applications_in,
    bool prefer_related_applications_in,
    ::blink::Vector<ManifestMigrateFromPtr> migrate_from_in,
    ManifestMigrateToPtr migrate_to_in,
    std::optional<uint32_t> theme_color_in,
    std::optional<uint32_t> background_color_in,
    const ::blink::String& gcm_sender_id_in,
    const ::blink::KURL& scope_in,
    const std::optional<::blink::KURL>& update_manifest_url_in,
    ::blink::mojom::blink::ManifestLaunchHandlerPtr launch_handler_in,
    ::blink::HashMap<::blink::String, ManifestTranslationItemPtr> translations_in,
    std::optional<uint32_t> dark_theme_color_in,
    std::optional<uint32_t> dark_background_color_in,
    ManifestTabStripPtr tab_strip_in,
    const ::blink::String& version_in,
    std::optional<::blink::HashMap<::icu::Locale, ManifestLocalizedTextObjectPtr>> name_localized_in,
    std::optional<::blink::HashMap<::icu::Locale, ManifestLocalizedTextObjectPtr>> short_name_localized_in,
    std::optional<::blink::HashMap<::icu::Locale, ManifestLocalizedTextObjectPtr>> description_localized_in,
    std::optional<::blink::HashMap<::icu::Locale, ::blink::Vector<ManifestImageResourcePtr>>> icons_localized_in)
    : manifest_url(std::move(manifest_url_in)),
      dir(std::move(dir_in)),
      name(std::move(name_in)),
      short_name(std::move(short_name_in)),
      description(std::move(description_in)),
      id(std::move(id_in)),
      has_custom_id(std::move(has_custom_id_in)),
      start_url(std::move(start_url_in)),
      has_valid_specified_start_url(std::move(has_valid_specified_start_url_in)),
      display(std::move(display_in)),
      display_override(std::move(display_override_in)),
      orientation(std::move(orientation_in)),
      icons(std::move(icons_in)),
      screenshots(std::move(screenshots_in)),
      shortcuts(std::move(shortcuts_in)),
      share_target(std::move(share_target_in)),
      file_handlers(std::move(file_handlers_in)),
      protocol_handlers(std::move(protocol_handlers_in)),
      scope_extensions(std::move(scope_extensions_in)),
      lock_screen(std::move(lock_screen_in)),
      note_taking(std::move(note_taking_in)),
      related_applications(std::move(related_applications_in)),
      prefer_related_applications(std::move(prefer_related_applications_in)),
      migrate_from(std::move(migrate_from_in)),
      migrate_to(std::move(migrate_to_in)),
      theme_color(std::move(theme_color_in)),
      background_color(std::move(background_color_in)),
      gcm_sender_id(std::move(gcm_sender_id_in)),
      scope(std::move(scope_in)),
      update_manifest_url(std::move(update_manifest_url_in)),
      launch_handler(std::move(launch_handler_in)),
      translations(std::move(translations_in)),
      dark_theme_color(std::move(dark_theme_color_in)),
      dark_background_color(std::move(dark_background_color_in)),
      tab_strip(std::move(tab_strip_in)),
      version(std::move(version_in)),
      name_localized(std::move(name_localized_in)),
      short_name_localized(std::move(short_name_localized_in)),
      description_localized(std::move(description_localized_in)),
      icons_localized(std::move(icons_localized_in)) {}

Manifest::~Manifest() = default;

void Manifest::WriteIntoTrace(
    perfetto::TracedValue traced_context) const {
  [[maybe_unused]] auto dict = std::move(traced_context).WriteDictionary();
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "manifest_url"), this->manifest_url,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::KURL&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "dir"), this->dir,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type Manifest::TextDirection>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "name"), this->name,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::String&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "short_name"), this->short_name,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::String&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "description"), this->description,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::String&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "id"), this->id,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::KURL&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "has_custom_id"), this->has_custom_id,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type bool>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "start_url"), this->start_url,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::KURL&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "has_valid_specified_start_url"), this->has_valid_specified_start_url,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type bool>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "display"), this->display,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type ::blink::mojom::blink::DisplayMode>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "display_override"), this->display_override,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type ::blink::Vector<DisplayOverrideItemPtr>>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "orientation"), this->orientation,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type ::device::mojom::blink::ScreenOrientationLockType>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "icons"), this->icons,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type ::blink::Vector<ManifestImageResourcePtr>>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "screenshots"), this->screenshots,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type ::blink::Vector<ManifestScreenshotPtr>>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "shortcuts"), this->shortcuts,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type ::blink::Vector<ManifestShortcutItemPtr>>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "share_target"), this->share_target,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type ManifestShareTargetPtr>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "file_handlers"), this->file_handlers,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type ::blink::Vector<ManifestFileHandlerPtr>>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "protocol_handlers"), this->protocol_handlers,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type ::blink::Vector<ManifestProtocolHandlerPtr>>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "scope_extensions"), this->scope_extensions,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type ::blink::Vector<ManifestScopeExtensionPtr>>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "lock_screen"), this->lock_screen,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type ManifestLockScreenPtr>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "note_taking"), this->note_taking,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type ManifestNoteTakingPtr>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "related_applications"), this->related_applications,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type ::blink::Vector<ManifestRelatedApplicationPtr>>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "prefer_related_applications"), this->prefer_related_applications,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type bool>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "migrate_from"), this->migrate_from,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type ::blink::Vector<ManifestMigrateFromPtr>>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "migrate_to"), this->migrate_to,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type ManifestMigrateToPtr>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "theme_color"), this->theme_color,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type std::optional<uint32_t>>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "background_color"), this->background_color,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type std::optional<uint32_t>>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "gcm_sender_id"), this->gcm_sender_id,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::String&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "scope"), this->scope,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::KURL&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "update_manifest_url"), this->update_manifest_url,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const std::optional<::blink::KURL>&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "launch_handler"), this->launch_handler,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type ::blink::mojom::blink::ManifestLaunchHandlerPtr>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "translations"), this->translations,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type ::blink::HashMap<::blink::String, ManifestTranslationItemPtr>>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "dark_theme_color"), this->dark_theme_color,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type std::optional<uint32_t>>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "dark_background_color"), this->dark_background_color,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type std::optional<uint32_t>>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "tab_strip"), this->tab_strip,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type ManifestTabStripPtr>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "version"), this->version,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::String&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "name_localized"), this->name_localized,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type std::optional<::blink::HashMap<::icu::Locale, ManifestLocalizedTextObjectPtr>>>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "short_name_localized"), this->short_name_localized,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type std::optional<::blink::HashMap<::icu::Locale, ManifestLocalizedTextObjectPtr>>>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "description_localized"), this->description_localized,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type std::optional<::blink::HashMap<::icu::Locale, ManifestLocalizedTextObjectPtr>>>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "icons_localized"), this->icons_localized,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type std::optional<::blink::HashMap<::icu::Locale, ::blink::Vector<ManifestImageResourcePtr>>>>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
}

bool Manifest::Validate(
    const void* data,
    mojo::internal::ValidationContext* validation_context) {
  return Data_::Validate(data, validation_context);
}
ManifestLocalizedTextObject::ManifestLocalizedTextObject()
    : value(),
      dir(),
      lang() {}

ManifestLocalizedTextObject::ManifestLocalizedTextObject(
    const ::blink::String& value_in,
    std::optional<Manifest::TextDirection> dir_in,
    const ::blink::String& lang_in)
    : value(std::move(value_in)),
      dir(std::move(dir_in)),
      lang(std::move(lang_in)) {}

ManifestLocalizedTextObject::~ManifestLocalizedTextObject() = default;

void ManifestLocalizedTextObject::WriteIntoTrace(
    perfetto::TracedValue traced_context) const {
  [[maybe_unused]] auto dict = std::move(traced_context).WriteDictionary();
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "value"), this->value,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::String&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "dir"), this->dir,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type std::optional<Manifest::TextDirection>>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "lang"), this->lang,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::String&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
}

bool ManifestLocalizedTextObject::Validate(
    const void* data,
    mojo::internal::ValidationContext* validation_context) {
  return Data_::Validate(data, validation_context);
}
Locale::Locale()
    : tag() {}

Locale::Locale(
    const ::blink::String& tag_in)
    : tag(std::move(tag_in)) {}

Locale::~Locale() = default;

void Locale::WriteIntoTrace(
    perfetto::TracedValue traced_context) const {
  [[maybe_unused]] auto dict = std::move(traced_context).WriteDictionary();
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "tag"), this->tag,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::String&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
}

bool Locale::Validate(
    const void* data,
    mojo::internal::ValidationContext* validation_context) {
  return Data_::Validate(data, validation_context);
}
ManifestShortcutItem::ManifestShortcutItem()
    : name(),
      short_name(),
      description(),
      url(),
      icons(),
      name_localized(),
      short_name_localized(),
      description_localized(),
      icons_localized() {}

ManifestShortcutItem::ManifestShortcutItem(
    const ::blink::String& name_in,
    const ::blink::String& short_name_in,
    const ::blink::String& description_in,
    const ::blink::KURL& url_in,
    ::blink::Vector<ManifestImageResourcePtr> icons_in,
    std::optional<::blink::HashMap<::icu::Locale, ManifestLocalizedTextObjectPtr>> name_localized_in,
    std::optional<::blink::HashMap<::icu::Locale, ManifestLocalizedTextObjectPtr>> short_name_localized_in,
    std::optional<::blink::HashMap<::icu::Locale, ManifestLocalizedTextObjectPtr>> description_localized_in,
    std::optional<::blink::HashMap<::icu::Locale, ::blink::Vector<ManifestImageResourcePtr>>> icons_localized_in)
    : name(std::move(name_in)),
      short_name(std::move(short_name_in)),
      description(std::move(description_in)),
      url(std::move(url_in)),
      icons(std::move(icons_in)),
      name_localized(std::move(name_localized_in)),
      short_name_localized(std::move(short_name_localized_in)),
      description_localized(std::move(description_localized_in)),
      icons_localized(std::move(icons_localized_in)) {}

ManifestShortcutItem::~ManifestShortcutItem() = default;

void ManifestShortcutItem::WriteIntoTrace(
    perfetto::TracedValue traced_context) const {
  [[maybe_unused]] auto dict = std::move(traced_context).WriteDictionary();
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "name"), this->name,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::String&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "short_name"), this->short_name,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::String&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "description"), this->description,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::String&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "url"), this->url,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::KURL&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "icons"), this->icons,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type ::blink::Vector<ManifestImageResourcePtr>>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "name_localized"), this->name_localized,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type std::optional<::blink::HashMap<::icu::Locale, ManifestLocalizedTextObjectPtr>>>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "short_name_localized"), this->short_name_localized,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type std::optional<::blink::HashMap<::icu::Locale, ManifestLocalizedTextObjectPtr>>>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "description_localized"), this->description_localized,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type std::optional<::blink::HashMap<::icu::Locale, ManifestLocalizedTextObjectPtr>>>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "icons_localized"), this->icons_localized,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type std::optional<::blink::HashMap<::icu::Locale, ::blink::Vector<ManifestImageResourcePtr>>>>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
}

bool ManifestShortcutItem::Validate(
    const void* data,
    mojo::internal::ValidationContext* validation_context) {
  return Data_::Validate(data, validation_context);
}
ManifestImageResource::ManifestImageResource()
    : src(),
      type(),
      sizes(),
      purpose() {}

ManifestImageResource::ManifestImageResource(
    const ::blink::KURL& src_in,
    const ::blink::String& type_in,
    ::blink::Vector<::gfx::Size> sizes_in,
    ::blink::Vector<ManifestImageResource::Purpose> purpose_in)
    : src(std::move(src_in)),
      type(std::move(type_in)),
      sizes(std::move(sizes_in)),
      purpose(std::move(purpose_in)) {}

ManifestImageResource::~ManifestImageResource() = default;

void ManifestImageResource::WriteIntoTrace(
    perfetto::TracedValue traced_context) const {
  [[maybe_unused]] auto dict = std::move(traced_context).WriteDictionary();
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "src"), this->src,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::KURL&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "type"), this->type,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::String&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "sizes"), this->sizes,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::Vector<::gfx::Size>&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "purpose"), this->purpose,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::Vector<ManifestImageResource::Purpose>&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
}

bool ManifestImageResource::Validate(
    const void* data,
    mojo::internal::ValidationContext* validation_context) {
  return Data_::Validate(data, validation_context);
}
ManifestScreenshot::ManifestScreenshot()
    : image(),
      form_factor(),
      label() {}

ManifestScreenshot::ManifestScreenshot(
    ManifestImageResourcePtr image_in,
    ManifestScreenshot::FormFactor form_factor_in,
    const ::blink::String& label_in)
    : image(std::move(image_in)),
      form_factor(std::move(form_factor_in)),
      label(std::move(label_in)) {}

ManifestScreenshot::~ManifestScreenshot() = default;

void ManifestScreenshot::WriteIntoTrace(
    perfetto::TracedValue traced_context) const {
  [[maybe_unused]] auto dict = std::move(traced_context).WriteDictionary();
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "image"), this->image,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type ManifestImageResourcePtr>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "form_factor"), this->form_factor,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type ManifestScreenshot::FormFactor>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "label"), this->label,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::String&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
}

bool ManifestScreenshot::Validate(
    const void* data,
    mojo::internal::ValidationContext* validation_context) {
  return Data_::Validate(data, validation_context);
}
ManifestFileFilter::ManifestFileFilter()
    : name(),
      accept() {}

ManifestFileFilter::ManifestFileFilter(
    const ::blink::String& name_in,
    ::blink::Vector<::blink::String> accept_in)
    : name(std::move(name_in)),
      accept(std::move(accept_in)) {}

ManifestFileFilter::~ManifestFileFilter() = default;

void ManifestFileFilter::WriteIntoTrace(
    perfetto::TracedValue traced_context) const {
  [[maybe_unused]] auto dict = std::move(traced_context).WriteDictionary();
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "name"), this->name,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::String&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "accept"), this->accept,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::Vector<::blink::String>&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
}

bool ManifestFileFilter::Validate(
    const void* data,
    mojo::internal::ValidationContext* validation_context) {
  return Data_::Validate(data, validation_context);
}
ManifestProtocolHandler::ManifestProtocolHandler()
    : protocol(),
      url() {}

ManifestProtocolHandler::ManifestProtocolHandler(
    const ::blink::String& protocol_in,
    const ::blink::KURL& url_in)
    : protocol(std::move(protocol_in)),
      url(std::move(url_in)) {}

ManifestProtocolHandler::~ManifestProtocolHandler() = default;

void ManifestProtocolHandler::WriteIntoTrace(
    perfetto::TracedValue traced_context) const {
  [[maybe_unused]] auto dict = std::move(traced_context).WriteDictionary();
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "protocol"), this->protocol,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::String&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "url"), this->url,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::KURL&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
}

bool ManifestProtocolHandler::Validate(
    const void* data,
    mojo::internal::ValidationContext* validation_context) {
  return Data_::Validate(data, validation_context);
}
ManifestScopeExtension::ManifestScopeExtension()
    : origin(),
      has_origin_wildcard() {}

ManifestScopeExtension::ManifestScopeExtension(
    const ::scoped_refptr<const ::blink::SecurityOrigin>& origin_in,
    bool has_origin_wildcard_in)
    : origin(std::move(origin_in)),
      has_origin_wildcard(std::move(has_origin_wildcard_in)) {}

ManifestScopeExtension::~ManifestScopeExtension() = default;

void ManifestScopeExtension::WriteIntoTrace(
    perfetto::TracedValue traced_context) const {
  [[maybe_unused]] auto dict = std::move(traced_context).WriteDictionary();
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "origin"), this->origin,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::scoped_refptr<const ::blink::SecurityOrigin>&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "has_origin_wildcard"), this->has_origin_wildcard,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type bool>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
}

bool ManifestScopeExtension::Validate(
    const void* data,
    mojo::internal::ValidationContext* validation_context) {
  return Data_::Validate(data, validation_context);
}
ManifestLockScreen::ManifestLockScreen()
    : start_url() {}

ManifestLockScreen::ManifestLockScreen(
    const ::blink::KURL& start_url_in)
    : start_url(std::move(start_url_in)) {}

ManifestLockScreen::~ManifestLockScreen() = default;

void ManifestLockScreen::WriteIntoTrace(
    perfetto::TracedValue traced_context) const {
  [[maybe_unused]] auto dict = std::move(traced_context).WriteDictionary();
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "start_url"), this->start_url,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::KURL&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
}

bool ManifestLockScreen::Validate(
    const void* data,
    mojo::internal::ValidationContext* validation_context) {
  return Data_::Validate(data, validation_context);
}
ManifestNoteTaking::ManifestNoteTaking()
    : new_note_url() {}

ManifestNoteTaking::ManifestNoteTaking(
    const ::blink::KURL& new_note_url_in)
    : new_note_url(std::move(new_note_url_in)) {}

ManifestNoteTaking::~ManifestNoteTaking() = default;

void ManifestNoteTaking::WriteIntoTrace(
    perfetto::TracedValue traced_context) const {
  [[maybe_unused]] auto dict = std::move(traced_context).WriteDictionary();
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "new_note_url"), this->new_note_url,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::KURL&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
}

bool ManifestNoteTaking::Validate(
    const void* data,
    mojo::internal::ValidationContext* validation_context) {
  return Data_::Validate(data, validation_context);
}
ManifestRelatedApplication::ManifestRelatedApplication()
    : platform(),
      url(),
      id() {}

ManifestRelatedApplication::ManifestRelatedApplication(
    const ::blink::String& platform_in,
    const std::optional<::blink::KURL>& url_in,
    const ::blink::String& id_in)
    : platform(std::move(platform_in)),
      url(std::move(url_in)),
      id(std::move(id_in)) {}

ManifestRelatedApplication::~ManifestRelatedApplication() = default;

void ManifestRelatedApplication::WriteIntoTrace(
    perfetto::TracedValue traced_context) const {
  [[maybe_unused]] auto dict = std::move(traced_context).WriteDictionary();
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "platform"), this->platform,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::String&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "url"), this->url,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const std::optional<::blink::KURL>&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "id"), this->id,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::String&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
}

bool ManifestRelatedApplication::Validate(
    const void* data,
    mojo::internal::ValidationContext* validation_context) {
  return Data_::Validate(data, validation_context);
}
ManifestShareTargetParams::ManifestShareTargetParams()
    : title(),
      text(),
      url(),
      files() {}

ManifestShareTargetParams::ManifestShareTargetParams(
    const ::blink::String& title_in,
    const ::blink::String& text_in,
    const ::blink::String& url_in,
    std::optional<::blink::Vector<ManifestFileFilterPtr>> files_in)
    : title(std::move(title_in)),
      text(std::move(text_in)),
      url(std::move(url_in)),
      files(std::move(files_in)) {}

ManifestShareTargetParams::~ManifestShareTargetParams() = default;

void ManifestShareTargetParams::WriteIntoTrace(
    perfetto::TracedValue traced_context) const {
  [[maybe_unused]] auto dict = std::move(traced_context).WriteDictionary();
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "title"), this->title,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::String&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "text"), this->text,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::String&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "url"), this->url,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::String&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "files"), this->files,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type std::optional<::blink::Vector<ManifestFileFilterPtr>>>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
}

bool ManifestShareTargetParams::Validate(
    const void* data,
    mojo::internal::ValidationContext* validation_context) {
  return Data_::Validate(data, validation_context);
}
ManifestShareTarget::ManifestShareTarget()
    : action(),
      method(),
      enctype(),
      params() {}

ManifestShareTarget::ManifestShareTarget(
    const ::blink::KURL& action_in,
    ManifestShareTarget::Method method_in,
    ManifestShareTarget::Enctype enctype_in,
    ManifestShareTargetParamsPtr params_in)
    : action(std::move(action_in)),
      method(std::move(method_in)),
      enctype(std::move(enctype_in)),
      params(std::move(params_in)) {}

ManifestShareTarget::~ManifestShareTarget() = default;

void ManifestShareTarget::WriteIntoTrace(
    perfetto::TracedValue traced_context) const {
  [[maybe_unused]] auto dict = std::move(traced_context).WriteDictionary();
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "action"), this->action,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::KURL&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "method"), this->method,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type ManifestShareTarget::Method>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "enctype"), this->enctype,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type ManifestShareTarget::Enctype>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "params"), this->params,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type ManifestShareTargetParamsPtr>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
}

bool ManifestShareTarget::Validate(
    const void* data,
    mojo::internal::ValidationContext* validation_context) {
  return Data_::Validate(data, validation_context);
}
ManifestFileHandler::ManifestFileHandler()
    : action(),
      name(),
      accept(),
      launch_type() {}

ManifestFileHandler::ManifestFileHandler(
    const ::blink::KURL& action_in,
    const ::blink::String& name_in,
    const ::blink::HashMap<::blink::String, ::blink::Vector<::blink::String>>& accept_in,
    ManifestFileHandler::LaunchType launch_type_in)
    : action(std::move(action_in)),
      name(std::move(name_in)),
      accept(std::move(accept_in)),
      launch_type(std::move(launch_type_in)) {}

ManifestFileHandler::~ManifestFileHandler() = default;

void ManifestFileHandler::WriteIntoTrace(
    perfetto::TracedValue traced_context) const {
  [[maybe_unused]] auto dict = std::move(traced_context).WriteDictionary();
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "action"), this->action,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::KURL&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "name"), this->name,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::String&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "accept"), this->accept,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::HashMap<::blink::String, ::blink::Vector<::blink::String>>&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "launch_type"), this->launch_type,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type ManifestFileHandler::LaunchType>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
}

bool ManifestFileHandler::Validate(
    const void* data,
    mojo::internal::ValidationContext* validation_context) {
  return Data_::Validate(data, validation_context);
}
ManifestTranslationItem::ManifestTranslationItem()
    : name(),
      short_name(),
      description() {}

ManifestTranslationItem::ManifestTranslationItem(
    const ::blink::String& name_in,
    const ::blink::String& short_name_in,
    const ::blink::String& description_in)
    : name(std::move(name_in)),
      short_name(std::move(short_name_in)),
      description(std::move(description_in)) {}

ManifestTranslationItem::~ManifestTranslationItem() = default;

void ManifestTranslationItem::WriteIntoTrace(
    perfetto::TracedValue traced_context) const {
  [[maybe_unused]] auto dict = std::move(traced_context).WriteDictionary();
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "name"), this->name,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::String&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "short_name"), this->short_name,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::String&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "description"), this->description,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::String&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
}

bool ManifestTranslationItem::Validate(
    const void* data,
    mojo::internal::ValidationContext* validation_context) {
  return Data_::Validate(data, validation_context);
}
ManifestMigrateFrom::ManifestMigrateFrom()
    : id(),
      install_url(),
      behavior() {}

ManifestMigrateFrom::ManifestMigrateFrom(
    const ::blink::KURL& id_in,
    const std::optional<::blink::KURL>& install_url_in,
    ::blink::mojom::blink::ManifestMigrationBehavior behavior_in)
    : id(std::move(id_in)),
      install_url(std::move(install_url_in)),
      behavior(std::move(behavior_in)) {}

ManifestMigrateFrom::~ManifestMigrateFrom() = default;

void ManifestMigrateFrom::WriteIntoTrace(
    perfetto::TracedValue traced_context) const {
  [[maybe_unused]] auto dict = std::move(traced_context).WriteDictionary();
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "id"), this->id,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::KURL&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "install_url"), this->install_url,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const std::optional<::blink::KURL>&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "behavior"), this->behavior,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type ::blink::mojom::blink::ManifestMigrationBehavior>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
}

bool ManifestMigrateFrom::Validate(
    const void* data,
    mojo::internal::ValidationContext* validation_context) {
  return Data_::Validate(data, validation_context);
}
ManifestMigrateTo::ManifestMigrateTo()
    : id(),
      install_url() {}

ManifestMigrateTo::ManifestMigrateTo(
    const ::blink::KURL& id_in,
    const ::blink::KURL& install_url_in)
    : id(std::move(id_in)),
      install_url(std::move(install_url_in)) {}

ManifestMigrateTo::~ManifestMigrateTo() = default;

void ManifestMigrateTo::WriteIntoTrace(
    perfetto::TracedValue traced_context) const {
  [[maybe_unused]] auto dict = std::move(traced_context).WriteDictionary();
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "id"), this->id,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::KURL&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "install_url"), this->install_url,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::KURL&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
}

bool ManifestMigrateTo::Validate(
    const void* data,
    mojo::internal::ValidationContext* validation_context) {
  return Data_::Validate(data, validation_context);
}
ManifestTabStrip::ManifestTabStrip()
    : home_tab(),
      new_tab_button() {}

ManifestTabStrip::ManifestTabStrip(
    HomeTabUnionPtr home_tab_in,
    NewTabButtonParamsPtr new_tab_button_in)
    : home_tab(std::move(home_tab_in)),
      new_tab_button(std::move(new_tab_button_in)) {}

ManifestTabStrip::~ManifestTabStrip() = default;

void ManifestTabStrip::WriteIntoTrace(
    perfetto::TracedValue traced_context) const {
  [[maybe_unused]] auto dict = std::move(traced_context).WriteDictionary();
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "home_tab"), this->home_tab,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type HomeTabUnionPtr>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "new_tab_button"), this->new_tab_button,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type NewTabButtonParamsPtr>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
}

bool ManifestTabStrip::Validate(
    const void* data,
    mojo::internal::ValidationContext* validation_context) {
  return Data_::Validate(data, validation_context);
}
HomeTabParams::HomeTabParams()
    : icons(),
      scope_patterns() {}

HomeTabParams::HomeTabParams(
    ::blink::Vector<ManifestImageResourcePtr> icons_in,
    ::blink::Vector<::blink::SafeUrlPattern> scope_patterns_in)
    : icons(std::move(icons_in)),
      scope_patterns(std::move(scope_patterns_in)) {}

HomeTabParams::~HomeTabParams() = default;

void HomeTabParams::WriteIntoTrace(
    perfetto::TracedValue traced_context) const {
  [[maybe_unused]] auto dict = std::move(traced_context).WriteDictionary();
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "icons"), this->icons,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type ::blink::Vector<ManifestImageResourcePtr>>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "scope_patterns"), this->scope_patterns,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::Vector<::blink::SafeUrlPattern>&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
}

bool HomeTabParams::Validate(
    const void* data,
    mojo::internal::ValidationContext* validation_context) {
  return Data_::Validate(data, validation_context);
}
NewTabButtonParams::NewTabButtonParams()
    : url() {}

NewTabButtonParams::NewTabButtonParams(
    const std::optional<::blink::KURL>& url_in)
    : url(std::move(url_in)) {}

NewTabButtonParams::~NewTabButtonParams() = default;

void NewTabButtonParams::WriteIntoTrace(
    perfetto::TracedValue traced_context) const {
  [[maybe_unused]] auto dict = std::move(traced_context).WriteDictionary();
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "url"), this->url,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const std::optional<::blink::KURL>&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
}

bool NewTabButtonParams::Validate(
    const void* data,
    mojo::internal::ValidationContext* validation_context) {
  return Data_::Validate(data, validation_context);
}
ManifestDebugInfo::ManifestDebugInfo()
    : errors(),
      raw_manifest() {}

ManifestDebugInfo::ManifestDebugInfo(
    ::blink::Vector<ManifestErrorPtr> errors_in,
    const ::blink::String& raw_manifest_in)
    : errors(std::move(errors_in)),
      raw_manifest(std::move(raw_manifest_in)) {}

ManifestDebugInfo::~ManifestDebugInfo() = default;

void ManifestDebugInfo::WriteIntoTrace(
    perfetto::TracedValue traced_context) const {
  [[maybe_unused]] auto dict = std::move(traced_context).WriteDictionary();
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "errors"), this->errors,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type ::blink::Vector<ManifestErrorPtr>>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "raw_manifest"), this->raw_manifest,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::String&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
}

bool ManifestDebugInfo::Validate(
    const void* data,
    mojo::internal::ValidationContext* validation_context) {
  return Data_::Validate(data, validation_context);
}
ManifestError::ManifestError()
    : message(),
      critical(),
      line(),
      column() {}

ManifestError::ManifestError(
    const ::blink::String& message_in,
    bool critical_in,
    uint32_t line_in,
    uint32_t column_in)
    : message(std::move(message_in)),
      critical(std::move(critical_in)),
      line(std::move(line_in)),
      column(std::move(column_in)) {}

ManifestError::~ManifestError() = default;
size_t ManifestError::Hash(size_t seed) const {
  seed = mojo::internal::WTFHash(seed, this->message);
  seed = mojo::internal::WTFHash(seed, this->critical);
  seed = mojo::internal::WTFHash(seed, this->line);
  seed = mojo::internal::WTFHash(seed, this->column);
  return seed;
}

void ManifestError::WriteIntoTrace(
    perfetto::TracedValue traced_context) const {
  [[maybe_unused]] auto dict = std::move(traced_context).WriteDictionary();
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "message"), this->message,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::String&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "critical"), this->critical,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type bool>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "line"), this->line,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type uint32_t>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "column"), this->column,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type uint32_t>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
}

bool ManifestError::Validate(
    const void* data,
    mojo::internal::ValidationContext* validation_context) {
  return Data_::Validate(data, validation_context);
}
DisplayOverrideItem::DisplayOverrideItem()
    : display(),
      url_patterns() {}

DisplayOverrideItem::DisplayOverrideItem(
    ::blink::mojom::blink::DisplayMode display_in,
    ::blink::Vector<::blink::SafeUrlPattern> url_patterns_in)
    : display(std::move(display_in)),
      url_patterns(std::move(url_patterns_in)) {}

DisplayOverrideItem::~DisplayOverrideItem() = default;

void DisplayOverrideItem::WriteIntoTrace(
    perfetto::TracedValue traced_context) const {
  [[maybe_unused]] auto dict = std::move(traced_context).WriteDictionary();
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "display"), this->display,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type ::blink::mojom::blink::DisplayMode>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
  perfetto::WriteIntoTracedValueWithFallback(
    dict.AddItem(
      "url_patterns"), this->url_patterns,
#if BUILDFLAG(MOJO_TRACE_ENABLED)
      "<value of type const ::blink::Vector<::blink::SafeUrlPattern>&>"
#else
      "<value>"
#endif  // BUILDFLAG(MOJO_TRACE_ENABLED)
    );
}

bool DisplayOverrideItem::Validate(
    const void* data,
    mojo::internal::ValidationContext* validation_context) {
  return Data_::Validate(data, validation_context);
}
HomeTabUnionPtr
HomeTabUnion::NewVisibility(
    TabStripMemberVisibility value) {
  return HomeTabUnionPtr(
      std::in_place,
      std::in_place_index<static_cast<size_t>(Tag::kVisibility)>,
      std::move(value));
}

HomeTabUnionPtr
HomeTabUnion::NewParams(
    HomeTabParamsPtr value) {
  return HomeTabUnionPtr(
      std::in_place,
      std::in_place_index<static_cast<size_t>(Tag::kParams)>,
      std::move(value));
}

HomeTabUnion::HomeTabUnion(
    std::in_place_index_t<static_cast<size_t>(Tag::kVisibility)>,
    TabStripMemberVisibility value)
    : tag_(Tag::kVisibility),
      data_(std::in_place_index<static_cast<size_t>(Tag::kVisibility)>,
            std::move(value)) {}

HomeTabUnion::HomeTabUnion(
    std::in_place_index_t<static_cast<size_t>(Tag::kParams)>,
    HomeTabParamsPtr value)
    : tag_(Tag::kParams),
      data_(std::in_place_index<static_cast<size_t>(Tag::kParams)>,
            std::move(value)) {}
HomeTabUnion::~HomeTabUnion() {
  DestroyActive();
}

void HomeTabUnion::set_visibility(TabStripMemberVisibility visibility) {
  if (tag_ != Tag::kVisibility) {
    DestroyActive();
    tag_ = Tag::kVisibility;
  }
  data_.visibility = visibility;
}

void HomeTabUnion::set_params(HomeTabParamsPtr params) {
  if (tag_ == Tag::kParams) {
    data_.params = std::move(params);
  } else {
    DestroyActive();
    tag_ = Tag::kParams;
    new (&data_.params) HomeTabParamsPtr(
        std::move(params));
  }
}


HomeTabUnion::Union_::Union_(
    std::in_place_index_t<static_cast<size_t>(Tag::kVisibility)>,
    TabStripMemberVisibility value)
    : visibility(std::move(value)) {}

HomeTabUnion::Union_::Union_(
    std::in_place_index_t<static_cast<size_t>(Tag::kParams)>,
    HomeTabParamsPtr value)
    : params(std::move(value)) {}

void HomeTabUnion::DestroyActive() {
  switch (tag_) {

    case Tag::kVisibility:
      std::destroy_at(&data_.visibility);
      break;
    case Tag::kParams:
      std::destroy_at(&data_.params);
      break;
  }
}

bool HomeTabUnion::Validate(
    const void* data,
    mojo::internal::ValidationContext* validation_context) {
  return Data_::Validate(data, validation_context, false);
}


}  // blink::mojom::blink


namespace mojo {


// static
bool StructTraits<::blink::mojom::blink::Manifest::DataView, ::blink::mojom::blink::ManifestPtr>::Read(
    ::blink::mojom::blink::Manifest::DataView input,
    ::blink::mojom::blink::ManifestPtr* output) {
  bool success = true;
  ::blink::mojom::blink::ManifestPtr result(::blink::mojom::blink::Manifest::New());
  
      if (success && !input.ReadManifestUrl(&result->manifest_url))
        success = false;
      if (success && !input.ReadDir(&result->dir))
        success = false;
      if (success && !input.ReadName(&result->name))
        success = false;
      if (success && !input.ReadShortName(&result->short_name))
        success = false;
      if (success && !input.ReadDescription(&result->description))
        success = false;
      if (success && !input.ReadId(&result->id))
        success = false;
      if (success)
        result->has_custom_id = input.has_custom_id();
      if (success && !input.ReadStartUrl(&result->start_url))
        success = false;
      if (success)
        result->has_valid_specified_start_url = input.has_valid_specified_start_url();
      if (success && !input.ReadDisplay(&result->display))
        success = false;
      if (success && !input.ReadDisplayOverride(&result->display_override))
        success = false;
      if (success && !input.ReadOrientation(&result->orientation))
        success = false;
      if (success && !input.ReadIcons(&result->icons))
        success = false;
      if (success && !input.ReadScreenshots(&result->screenshots))
        success = false;
      if (success && !input.ReadShortcuts(&result->shortcuts))
        success = false;
      if (success && !input.ReadShareTarget(&result->share_target))
        success = false;
      if (success && !input.ReadFileHandlers(&result->file_handlers))
        success = false;
      if (success && !input.ReadProtocolHandlers(&result->protocol_handlers))
        success = false;
      if (success && !input.ReadScopeExtensions(&result->scope_extensions))
        success = false;
      if (success && !input.ReadLockScreen(&result->lock_screen))
        success = false;
      if (success && !input.ReadNoteTaking(&result->note_taking))
        success = false;
      if (success && !input.ReadRelatedApplications(&result->related_applications))
        success = false;
      if (success)
        result->prefer_related_applications = input.prefer_related_applications();
      if (success && !input.ReadMigrateFrom(&result->migrate_from))
        success = false;
      if (success && !input.ReadMigrateTo(&result->migrate_to))
        success = false;
      if (success) {
        result->theme_color = input.theme_color();
      }
      if (success) {
        result->background_color = input.background_color();
      }
      if (success && !input.ReadGcmSenderId(&result->gcm_sender_id))
        success = false;
      if (success && !input.ReadScope(&result->scope))
        success = false;
      if (success && !input.ReadUpdateManifestUrl(&result->update_manifest_url))
        success = false;
      if (success && !input.ReadLaunchHandler(&result->launch_handler))
        success = false;
      if (success && !input.ReadTranslations(&result->translations))
        success = false;
      if (success) {
        result->dark_theme_color = input.dark_theme_color();
      }
      if (success) {
        result->dark_background_color = input.dark_background_color();
      }
      if (success && !input.ReadTabStrip(&result->tab_strip))
        success = false;
      if (success && !input.ReadVersion(&result->version))
        success = false;
      if (success && !input.ReadNameLocalized(&result->name_localized))
        success = false;
      if (success && !input.ReadShortNameLocalized(&result->short_name_localized))
        success = false;
      if (success && !input.ReadDescriptionLocalized(&result->description_localized))
        success = false;
      if (success && !input.ReadIconsLocalized(&result->icons_localized))
        success = false;
  *output = std::move(result);
  return success;
}


// static
bool StructTraits<::blink::mojom::blink::ManifestLocalizedTextObject::DataView, ::blink::mojom::blink::ManifestLocalizedTextObjectPtr>::Read(
    ::blink::mojom::blink::ManifestLocalizedTextObject::DataView input,
    ::blink::mojom::blink::ManifestLocalizedTextObjectPtr* output) {
  bool success = true;
  ::blink::mojom::blink::ManifestLocalizedTextObjectPtr result(::blink::mojom::blink::ManifestLocalizedTextObject::New());
  
      if (success && !input.ReadValue(&result->value))
        success = false;
      if (success && !input.ReadDir(&result->dir)) {
        success = false;
      }
      if (success && !input.ReadLang(&result->lang))
        success = false;
  *output = std::move(result);
  return success;
}


// static
bool StructTraits<::blink::mojom::blink::Locale::DataView, ::blink::mojom::blink::LocalePtr>::Read(
    ::blink::mojom::blink::Locale::DataView input,
    ::blink::mojom::blink::LocalePtr* output) {
  bool success = true;
  ::blink::mojom::blink::LocalePtr result(::blink::mojom::blink::Locale::New());
  
      if (success && !input.ReadTag(&result->tag))
        success = false;
  *output = std::move(result);
  return success;
}


// static
bool StructTraits<::blink::mojom::blink::ManifestShortcutItem::DataView, ::blink::mojom::blink::ManifestShortcutItemPtr>::Read(
    ::blink::mojom::blink::ManifestShortcutItem::DataView input,
    ::blink::mojom::blink::ManifestShortcutItemPtr* output) {
  bool success = true;
  ::blink::mojom::blink::ManifestShortcutItemPtr result(::blink::mojom::blink::ManifestShortcutItem::New());
  
      if (success && !input.ReadName(&result->name))
        success = false;
      if (success && !input.ReadShortName(&result->short_name))
        success = false;
      if (success && !input.ReadDescription(&result->description))
        success = false;
      if (success && !input.ReadUrl(&result->url))
        success = false;
      if (success && !input.ReadIcons(&result->icons))
        success = false;
      if (success && !input.ReadNameLocalized(&result->name_localized))
        success = false;
      if (success && !input.ReadShortNameLocalized(&result->short_name_localized))
        success = false;
      if (success && !input.ReadDescriptionLocalized(&result->description_localized))
        success = false;
      if (success && !input.ReadIconsLocalized(&result->icons_localized))
        success = false;
  *output = std::move(result);
  return success;
}


// static
bool StructTraits<::blink::mojom::blink::ManifestImageResource::DataView, ::blink::mojom::blink::ManifestImageResourcePtr>::Read(
    ::blink::mojom::blink::ManifestImageResource::DataView input,
    ::blink::mojom::blink::ManifestImageResourcePtr* output) {
  bool success = true;
  ::blink::mojom::blink::ManifestImageResourcePtr result(::blink::mojom::blink::ManifestImageResource::New());
  
      if (success && !input.ReadSrc(&result->src))
        success = false;
      if (success && !input.ReadType(&result->type))
        success = false;
      if (success && !input.ReadSizes(&result->sizes))
        success = false;
      if (success && !input.ReadPurpose(&result->purpose))
        success = false;
  *output = std::move(result);
  return success;
}


// static
bool StructTraits<::blink::mojom::blink::ManifestScreenshot::DataView, ::blink::mojom::blink::ManifestScreenshotPtr>::Read(
    ::blink::mojom::blink::ManifestScreenshot::DataView input,
    ::blink::mojom::blink::ManifestScreenshotPtr* output) {
  bool success = true;
  ::blink::mojom::blink::ManifestScreenshotPtr result(::blink::mojom::blink::ManifestScreenshot::New());
  
      if (success && !input.ReadImage(&result->image))
        success = false;
      if (success && !input.ReadFormFactor(&result->form_factor))
        success = false;
      if (success && !input.ReadLabel(&result->label))
        success = false;
  *output = std::move(result);
  return success;
}


// static
bool StructTraits<::blink::mojom::blink::ManifestFileFilter::DataView, ::blink::mojom::blink::ManifestFileFilterPtr>::Read(
    ::blink::mojom::blink::ManifestFileFilter::DataView input,
    ::blink::mojom::blink::ManifestFileFilterPtr* output) {
  bool success = true;
  ::blink::mojom::blink::ManifestFileFilterPtr result(::blink::mojom::blink::ManifestFileFilter::New());
  
      if (success && !input.ReadName(&result->name))
        success = false;
      if (success && !input.ReadAccept(&result->accept))
        success = false;
  *output = std::move(result);
  return success;
}


// static
bool StructTraits<::blink::mojom::blink::ManifestProtocolHandler::DataView, ::blink::mojom::blink::ManifestProtocolHandlerPtr>::Read(
    ::blink::mojom::blink::ManifestProtocolHandler::DataView input,
    ::blink::mojom::blink::ManifestProtocolHandlerPtr* output) {
  bool success = true;
  ::blink::mojom::blink::ManifestProtocolHandlerPtr result(::blink::mojom::blink::ManifestProtocolHandler::New());
  
      if (success && !input.ReadProtocol(&result->protocol))
        success = false;
      if (success && !input.ReadUrl(&result->url))
        success = false;
  *output = std::move(result);
  return success;
}


// static
bool StructTraits<::blink::mojom::blink::ManifestScopeExtension::DataView, ::blink::mojom::blink::ManifestScopeExtensionPtr>::Read(
    ::blink::mojom::blink::ManifestScopeExtension::DataView input,
    ::blink::mojom::blink::ManifestScopeExtensionPtr* output) {
  bool success = true;
  ::blink::mojom::blink::ManifestScopeExtensionPtr result(::blink::mojom::blink::ManifestScopeExtension::New());
  
      if (success && !input.ReadOrigin(&result->origin))
        success = false;
      if (success)
        result->has_origin_wildcard = input.has_origin_wildcard();
  *output = std::move(result);
  return success;
}


// static
bool StructTraits<::blink::mojom::blink::ManifestLockScreen::DataView, ::blink::mojom::blink::ManifestLockScreenPtr>::Read(
    ::blink::mojom::blink::ManifestLockScreen::DataView input,
    ::blink::mojom::blink::ManifestLockScreenPtr* output) {
  bool success = true;
  ::blink::mojom::blink::ManifestLockScreenPtr result(::blink::mojom::blink::ManifestLockScreen::New());
  
      if (success && !input.ReadStartUrl(&result->start_url))
        success = false;
  *output = std::move(result);
  return success;
}


// static
bool StructTraits<::blink::mojom::blink::ManifestNoteTaking::DataView, ::blink::mojom::blink::ManifestNoteTakingPtr>::Read(
    ::blink::mojom::blink::ManifestNoteTaking::DataView input,
    ::blink::mojom::blink::ManifestNoteTakingPtr* output) {
  bool success = true;
  ::blink::mojom::blink::ManifestNoteTakingPtr result(::blink::mojom::blink::ManifestNoteTaking::New());
  
      if (success && !input.ReadNewNoteUrl(&result->new_note_url))
        success = false;
  *output = std::move(result);
  return success;
}


// static
bool StructTraits<::blink::mojom::blink::ManifestRelatedApplication::DataView, ::blink::mojom::blink::ManifestRelatedApplicationPtr>::Read(
    ::blink::mojom::blink::ManifestRelatedApplication::DataView input,
    ::blink::mojom::blink::ManifestRelatedApplicationPtr* output) {
  bool success = true;
  ::blink::mojom::blink::ManifestRelatedApplicationPtr result(::blink::mojom::blink::ManifestRelatedApplication::New());
  
      if (success && !input.ReadPlatform(&result->platform))
        success = false;
      if (success && !input.ReadUrl(&result->url))
        success = false;
      if (success && !input.ReadId(&result->id))
        success = false;
  *output = std::move(result);
  return success;
}


// static
bool StructTraits<::blink::mojom::blink::ManifestShareTargetParams::DataView, ::blink::mojom::blink::ManifestShareTargetParamsPtr>::Read(
    ::blink::mojom::blink::ManifestShareTargetParams::DataView input,
    ::blink::mojom::blink::ManifestShareTargetParamsPtr* output) {
  bool success = true;
  ::blink::mojom::blink::ManifestShareTargetParamsPtr result(::blink::mojom::blink::ManifestShareTargetParams::New());
  
      if (success && !input.ReadTitle(&result->title))
        success = false;
      if (success && !input.ReadText(&result->text))
        success = false;
      if (success && !input.ReadUrl(&result->url))
        success = false;
      if (success && !input.ReadFiles(&result->files))
        success = false;
  *output = std::move(result);
  return success;
}


// static
bool StructTraits<::blink::mojom::blink::ManifestShareTarget::DataView, ::blink::mojom::blink::ManifestShareTargetPtr>::Read(
    ::blink::mojom::blink::ManifestShareTarget::DataView input,
    ::blink::mojom::blink::ManifestShareTargetPtr* output) {
  bool success = true;
  ::blink::mojom::blink::ManifestShareTargetPtr result(::blink::mojom::blink::ManifestShareTarget::New());
  
      if (success && !input.ReadAction(&result->action))
        success = false;
      if (success && !input.ReadMethod(&result->method))
        success = false;
      if (success && !input.ReadEnctype(&result->enctype))
        success = false;
      if (success && !input.ReadParams(&result->params))
        success = false;
  *output = std::move(result);
  return success;
}


// static
bool StructTraits<::blink::mojom::blink::ManifestFileHandler::DataView, ::blink::mojom::blink::ManifestFileHandlerPtr>::Read(
    ::blink::mojom::blink::ManifestFileHandler::DataView input,
    ::blink::mojom::blink::ManifestFileHandlerPtr* output) {
  bool success = true;
  ::blink::mojom::blink::ManifestFileHandlerPtr result(::blink::mojom::blink::ManifestFileHandler::New());
  
      if (success && !input.ReadAction(&result->action))
        success = false;
      if (success && !input.ReadName(&result->name))
        success = false;
      if (success && !input.ReadAccept(&result->accept))
        success = false;
      if (success && !input.ReadLaunchType(&result->launch_type))
        success = false;
  *output = std::move(result);
  return success;
}


// static
bool StructTraits<::blink::mojom::blink::ManifestTranslationItem::DataView, ::blink::mojom::blink::ManifestTranslationItemPtr>::Read(
    ::blink::mojom::blink::ManifestTranslationItem::DataView input,
    ::blink::mojom::blink::ManifestTranslationItemPtr* output) {
  bool success = true;
  ::blink::mojom::blink::ManifestTranslationItemPtr result(::blink::mojom::blink::ManifestTranslationItem::New());
  
      if (success && !input.ReadName(&result->name))
        success = false;
      if (success && !input.ReadShortName(&result->short_name))
        success = false;
      if (success && !input.ReadDescription(&result->description))
        success = false;
  *output = std::move(result);
  return success;
}


// static
bool StructTraits<::blink::mojom::blink::ManifestMigrateFrom::DataView, ::blink::mojom::blink::ManifestMigrateFromPtr>::Read(
    ::blink::mojom::blink::ManifestMigrateFrom::DataView input,
    ::blink::mojom::blink::ManifestMigrateFromPtr* output) {
  bool success = true;
  ::blink::mojom::blink::ManifestMigrateFromPtr result(::blink::mojom::blink::ManifestMigrateFrom::New());
  
      if (success && !input.ReadId(&result->id))
        success = false;
      if (success && !input.ReadInstallUrl(&result->install_url))
        success = false;
      if (success && !input.ReadBehavior(&result->behavior))
        success = false;
  *output = std::move(result);
  return success;
}


// static
bool StructTraits<::blink::mojom::blink::ManifestMigrateTo::DataView, ::blink::mojom::blink::ManifestMigrateToPtr>::Read(
    ::blink::mojom::blink::ManifestMigrateTo::DataView input,
    ::blink::mojom::blink::ManifestMigrateToPtr* output) {
  bool success = true;
  ::blink::mojom::blink::ManifestMigrateToPtr result(::blink::mojom::blink::ManifestMigrateTo::New());
  
      if (success && !input.ReadId(&result->id))
        success = false;
      if (success && !input.ReadInstallUrl(&result->install_url))
        success = false;
  *output = std::move(result);
  return success;
}


// static
bool StructTraits<::blink::mojom::blink::ManifestTabStrip::DataView, ::blink::mojom::blink::ManifestTabStripPtr>::Read(
    ::blink::mojom::blink::ManifestTabStrip::DataView input,
    ::blink::mojom::blink::ManifestTabStripPtr* output) {
  bool success = true;
  ::blink::mojom::blink::ManifestTabStripPtr result(::blink::mojom::blink::ManifestTabStrip::New());
  
      if (success && !input.ReadHomeTab(&result->home_tab))
        success = false;
      if (success && !input.ReadNewTabButton(&result->new_tab_button))
        success = false;
  *output = std::move(result);
  return success;
}


// static
bool StructTraits<::blink::mojom::blink::HomeTabParams::DataView, ::blink::mojom::blink::HomeTabParamsPtr>::Read(
    ::blink::mojom::blink::HomeTabParams::DataView input,
    ::blink::mojom::blink::HomeTabParamsPtr* output) {
  bool success = true;
  ::blink::mojom::blink::HomeTabParamsPtr result(::blink::mojom::blink::HomeTabParams::New());
  
      if (success && !input.ReadIcons(&result->icons))
        success = false;
      if (success && !input.ReadScopePatterns(&result->scope_patterns))
        success = false;
  *output = std::move(result);
  return success;
}


// static
bool StructTraits<::blink::mojom::blink::NewTabButtonParams::DataView, ::blink::mojom::blink::NewTabButtonParamsPtr>::Read(
    ::blink::mojom::blink::NewTabButtonParams::DataView input,
    ::blink::mojom::blink::NewTabButtonParamsPtr* output) {
  bool success = true;
  ::blink::mojom::blink::NewTabButtonParamsPtr result(::blink::mojom::blink::NewTabButtonParams::New());
  
      if (success && !input.ReadUrl(&result->url))
        success = false;
  *output = std::move(result);
  return success;
}


// static
bool StructTraits<::blink::mojom::blink::ManifestDebugInfo::DataView, ::blink::mojom::blink::ManifestDebugInfoPtr>::Read(
    ::blink::mojom::blink::ManifestDebugInfo::DataView input,
    ::blink::mojom::blink::ManifestDebugInfoPtr* output) {
  bool success = true;
  ::blink::mojom::blink::ManifestDebugInfoPtr result(::blink::mojom::blink::ManifestDebugInfo::New());
  
      if (success && !input.ReadErrors(&result->errors))
        success = false;
      if (success && !input.ReadRawManifest(&result->raw_manifest))
        success = false;
  *output = std::move(result);
  return success;
}


// static
bool StructTraits<::blink::mojom::blink::ManifestError::DataView, ::blink::mojom::blink::ManifestErrorPtr>::Read(
    ::blink::mojom::blink::ManifestError::DataView input,
    ::blink::mojom::blink::ManifestErrorPtr* output) {
  bool success = true;
  ::blink::mojom::blink::ManifestErrorPtr result(::blink::mojom::blink::ManifestError::New());
  
      if (success && !input.ReadMessage(&result->message))
        success = false;
      if (success)
        result->critical = input.critical();
      if (success)
        result->line = input.line();
      if (success)
        result->column = input.column();
  *output = std::move(result);
  return success;
}


// static
bool StructTraits<::blink::mojom::blink::DisplayOverrideItem::DataView, ::blink::mojom::blink::DisplayOverrideItemPtr>::Read(
    ::blink::mojom::blink::DisplayOverrideItem::DataView input,
    ::blink::mojom::blink::DisplayOverrideItemPtr* output) {
  bool success = true;
  ::blink::mojom::blink::DisplayOverrideItemPtr result(::blink::mojom::blink::DisplayOverrideItem::New());
  
      if (success && !input.ReadDisplay(&result->display))
        success = false;
      if (success && !input.ReadUrlPatterns(&result->url_patterns))
        success = false;
  *output = std::move(result);
  return success;
}

// static
bool UnionTraits<::blink::mojom::blink::HomeTabUnion::DataView, ::blink::mojom::blink::HomeTabUnionPtr>::Read(
    ::blink::mojom::blink::HomeTabUnion::DataView input,
    ::blink::mojom::blink::HomeTabUnionPtr* output) {
  using UnionType = ::blink::mojom::blink::HomeTabUnion;
  using Tag = UnionType::Tag;

  switch (input.tag()) {
    case Tag::kVisibility: {
      ::blink::mojom::blink::TabStripMemberVisibility result_visibility;
      if (!input.ReadVisibility(&result_visibility))
        return false;

      *output = UnionType::NewVisibility(result_visibility);
      break;
    }
    case Tag::kParams: {
      ::blink::mojom::blink::HomeTabParamsPtr result_params{};
      if (!input.ReadParams(&result_params))
        return false;

      *output = UnionType::NewParams(
          std::move(result_params));
      break;
    }
    default:

      return false;
  }
  return true;
}

}  // namespace mojo


// Symbols declared in the -test-utils.h header are defined here instead of a
// separate .cc file to save compile time.


namespace blink::mojom::blink {




}  // blink::mojom::blink


#if defined(__clang__)
#pragma clang diagnostic pop
#endif