chromium/out/Default/gen/components/safe_browsing/content/common/safe_browsing.mojom-shared.h

// components/safe_browsing/content/common/safe_browsing.mojom-shared.h is auto generated by mojom_bindings_generator.py, do not edit

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

#ifndef COMPONENTS_SAFE_BROWSING_CONTENT_COMMON_SAFE_BROWSING_MOJOM_SHARED_H_
#define COMPONENTS_SAFE_BROWSING_CONTENT_COMMON_SAFE_BROWSING_MOJOM_SHARED_H_

#include <stdint.h>

#include <functional>
#include <iosfwd>
#include <type_traits>
#include <utility>
#include "mojo/public/cpp/bindings/array_data_view.h"
#include "mojo/public/cpp/bindings/enum_traits.h"
#include "mojo/public/cpp/bindings/interface_data_view.h"
#include "mojo/public/cpp/bindings/lib/bindings_internal.h"
#include "mojo/public/cpp/bindings/lib/serialization.h"
#include "mojo/public/cpp/bindings/map_data_view.h"
#include "mojo/public/cpp/bindings/string_data_view.h"

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

#include "components/safe_browsing/content/common/safe_browsing.mojom-shared-internal.h"
#include "components/safe_browsing/core/common/safe_browsing_url_checker.mojom-shared.h"
#include "mojo/public/mojom/base/proto_wrapper.mojom-shared.h"
#include "mojo/public/mojom/base/read_only_file.mojom-shared.h"
#include "mojo/public/mojom/base/shared_memory.mojom-shared.h"
#include "services/network/public/mojom/http_request_headers.mojom-shared.h"
#include "third_party/blink/public/mojom/tokens/tokens.mojom-shared.h"
#include "url/mojom/url.mojom-shared.h"
#include "mojo/public/cpp/bindings/lib/interface_serialization.h"
#include "mojo/public/cpp/system/data_pipe.h"






namespace safe_browsing::mojom {
class AttributeNameValueDataView;

class ThreatDOMDetailsNodeDataView;



}  // safe_browsing::mojom

namespace mojo {
namespace internal {

template <>
struct MojomTypeTraits<::safe_browsing::mojom::AttributeNameValueDataView> {};

template <>
struct MojomTypeTraits<::safe_browsing::mojom::ThreatDOMDetailsNodeDataView> {};

}  // namespace internal
}  // namespace mojo


namespace safe_browsing::mojom {


enum class PhishingDetectorResult : int32_t {};

 std::ostream& operator<<(std::ostream& os, PhishingDetectorResult value);
inline bool IsKnownEnumValue(PhishingDetectorResult value) {}


enum class PhishingImageEmbeddingResult : int32_t {};

 std::ostream& operator<<(std::ostream& os, PhishingImageEmbeddingResult value);
inline bool IsKnownEnumValue(PhishingImageEmbeddingResult value) {}


enum class WebRequestProtocolType : int32_t {};

 std::ostream& operator<<(std::ostream& os, WebRequestProtocolType value);
inline bool IsKnownEnumValue(WebRequestProtocolType value) {}


enum class WebRequestContactInitiatorType : int32_t {};

 std::ostream& operator<<(std::ostream& os, WebRequestContactInitiatorType value);
inline bool IsKnownEnumValue(WebRequestContactInitiatorType value) {}
// Interface base classes. They are used for type safety check.
class SafeBrowsingInterfaceBase {};

SafeBrowsingPtrDataView;
SafeBrowsingRequestDataView;
SafeBrowsingAssociatedPtrInfoDataView;
SafeBrowsingAssociatedRequestDataView;
class ThreatReporterInterfaceBase {};

ThreatReporterPtrDataView;
ThreatReporterRequestDataView;
ThreatReporterAssociatedPtrInfoDataView;
ThreatReporterAssociatedRequestDataView;
class PhishingDetectorInterfaceBase {};

PhishingDetectorPtrDataView;
PhishingDetectorRequestDataView;
PhishingDetectorAssociatedPtrInfoDataView;
PhishingDetectorAssociatedRequestDataView;
class PhishingModelSetterInterfaceBase {};

PhishingModelSetterPtrDataView;
PhishingModelSetterRequestDataView;
PhishingModelSetterAssociatedPtrInfoDataView;
PhishingModelSetterAssociatedRequestDataView;
class PhishingModelSetterTestObserverInterfaceBase {};

PhishingModelSetterTestObserverPtrDataView;
PhishingModelSetterTestObserverRequestDataView;
PhishingModelSetterTestObserverAssociatedPtrInfoDataView;
PhishingModelSetterTestObserverAssociatedRequestDataView;
class PhishingImageEmbedderDetectorInterfaceBase {};

PhishingImageEmbedderDetectorPtrDataView;
PhishingImageEmbedderDetectorRequestDataView;
PhishingImageEmbedderDetectorAssociatedPtrInfoDataView;
PhishingImageEmbedderDetectorAssociatedRequestDataView;
class ExtensionWebRequestReporterInterfaceBase {};

ExtensionWebRequestReporterPtrDataView;
ExtensionWebRequestReporterRequestDataView;
ExtensionWebRequestReporterAssociatedPtrInfoDataView;
ExtensionWebRequestReporterAssociatedRequestDataView;


class AttributeNameValueDataView {};


class ThreatDOMDetailsNodeDataView {};


}  // safe_browsing::mojom

namespace std {

template <>
struct hash<::safe_browsing::mojom::PhishingDetectorResult>
    : public mojo::internal::EnumHashImpl<::safe_browsing::mojom::PhishingDetectorResult> {};

template <>
struct hash<::safe_browsing::mojom::PhishingImageEmbeddingResult>
    : public mojo::internal::EnumHashImpl<::safe_browsing::mojom::PhishingImageEmbeddingResult> {};

template <>
struct hash<::safe_browsing::mojom::WebRequestProtocolType>
    : public mojo::internal::EnumHashImpl<::safe_browsing::mojom::WebRequestProtocolType> {};

template <>
struct hash<::safe_browsing::mojom::WebRequestContactInitiatorType>
    : public mojo::internal::EnumHashImpl<::safe_browsing::mojom::WebRequestContactInitiatorType> {};

}  // namespace std

namespace mojo {


namespace internal {

Serializer< ::safe_browsing::mojom::PhishingDetectorResult, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::safe_browsing::mojom::PhishingImageEmbeddingResult, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::safe_browsing::mojom::WebRequestProtocolType, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::safe_browsing::mojom::WebRequestContactInitiatorType, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::safe_browsing::mojom::AttributeNameValueDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::safe_browsing::mojom::ThreatDOMDetailsNodeDataView, MaybeConstUserType>;

}  // namespace internal

}  // namespace mojo


namespace safe_browsing::mojom {

inline void AttributeNameValueDataView::GetNameDataView(
    mojo::StringDataView* output) {}
inline void AttributeNameValueDataView::GetValueDataView(
    mojo::StringDataView* output) {}


inline void ThreatDOMDetailsNodeDataView::GetUrlDataView(
    ::url::mojom::UrlDataView* output) {}
inline void ThreatDOMDetailsNodeDataView::GetTagNameDataView(
    mojo::StringDataView* output) {}
inline void ThreatDOMDetailsNodeDataView::GetParentDataView(
    ::url::mojom::UrlDataView* output) {}
inline void ThreatDOMDetailsNodeDataView::GetChildrenDataView(
    mojo::ArrayDataView<::url::mojom::UrlDataView>* output) {}
inline void ThreatDOMDetailsNodeDataView::GetChildNodeIdsDataView(
    mojo::ArrayDataView<int32_t>* output) {}
inline void ThreatDOMDetailsNodeDataView::GetAttributesDataView(
    mojo::ArrayDataView<AttributeNameValueDataView>* output) {}
inline void ThreatDOMDetailsNodeDataView::GetChildFrameTokenDataView(
    ::blink::mojom::FrameTokenDataView* output) {}
inline void ThreatDOMDetailsNodeDataView::GetInnerHtmlDataView(
    mojo::StringDataView* output) {}



}  // safe_browsing::mojom

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

namespace perfetto {

template <>
struct  TraceFormatTraits<::safe_browsing::mojom::PhishingDetectorResult> {};

} // namespace perfetto

namespace perfetto {

template <>
struct  TraceFormatTraits<::safe_browsing::mojom::PhishingImageEmbeddingResult> {};

} // namespace perfetto

namespace perfetto {

template <>
struct  TraceFormatTraits<::safe_browsing::mojom::WebRequestProtocolType> {};

} // namespace perfetto

namespace perfetto {

template <>
struct  TraceFormatTraits<::safe_browsing::mojom::WebRequestContactInitiatorType> {};

} // namespace perfetto

#endif  // COMPONENTS_SAFE_BROWSING_CONTENT_COMMON_SAFE_BROWSING_MOJOM_SHARED_H_