#ifndef CONTENT_BROWSER_ATTRIBUTION_REPORTING_ATTRIBUTION_INTERNALS_MOJOM_SHARED_H_
#define CONTENT_BROWSER_ATTRIBUTION_REPORTING_ATTRIBUTION_INTERNALS_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 "content/browser/attribution_reporting/attribution_internals.mojom-shared-internal.h"
#include "components/attribution_reporting/registration.mojom-shared.h"
#include "components/attribution_reporting/source_type.mojom-shared.h"
#include "components/attribution_reporting/trigger_data_matching.mojom-shared.h"
#include "content/browser/attribution_reporting/aggregatable_result.mojom-shared.h"
#include "content/browser/attribution_reporting/process_aggregatable_debug_report_result.mojom-shared.h"
#include "content/browser/attribution_reporting/attribution_reporting.mojom-shared.h"
#include "content/browser/attribution_reporting/event_level_result.mojom-shared.h"
#include "content/browser/attribution_reporting/store_source_result.mojom-shared.h"
#include "services/network/public/mojom/attribution.mojom-shared.h"
#include "url/mojom/origin.mojom-shared.h"
#include "url/mojom/url.mojom-shared.h"
#include "mojo/public/cpp/bindings/lib/interface_serialization.h"
#include "mojo/public/cpp/system/data_pipe.h"
namespace attribution_internals::mojom {
class ReportIDDataView;
class WebUIReportEventLevelDataDataView;
class AggregatableHistogramContributionDataView;
class WebUIReportAggregatableAttributionDataDataView;
class EmptyDataView;
class WebUIReportDataView;
class WebUIDebugReportDataView;
class WebUIAggregatableDebugReportDataView;
class WebUISourceDataView;
class WebUIRegistrationDataView;
class WebUITriggerDataView;
class WebUISourceRegistrationDataView;
class WebUIOsRegistrationDataView;
class WebUIReportDataDataView;
class NetworkStatusDataView;
class ReportStatusDataView;
class SendAggregatableDebugReportResultDataView;
}
namespace mojo {
namespace internal {
template <>
struct MojomTypeTraits<::attribution_internals::mojom::ReportIDDataView> { … };
template <>
struct MojomTypeTraits<::attribution_internals::mojom::WebUIReportEventLevelDataDataView> { … };
template <>
struct MojomTypeTraits<::attribution_internals::mojom::AggregatableHistogramContributionDataView> { … };
template <>
struct MojomTypeTraits<::attribution_internals::mojom::WebUIReportAggregatableAttributionDataDataView> { … };
template <>
struct MojomTypeTraits<::attribution_internals::mojom::EmptyDataView> { … };
template <>
struct MojomTypeTraits<::attribution_internals::mojom::WebUIReportDataView> { … };
template <>
struct MojomTypeTraits<::attribution_internals::mojom::WebUIDebugReportDataView> { … };
template <>
struct MojomTypeTraits<::attribution_internals::mojom::WebUIAggregatableDebugReportDataView> { … };
template <>
struct MojomTypeTraits<::attribution_internals::mojom::WebUISourceDataView> { … };
template <>
struct MojomTypeTraits<::attribution_internals::mojom::WebUIRegistrationDataView> { … };
template <>
struct MojomTypeTraits<::attribution_internals::mojom::WebUITriggerDataView> { … };
template <>
struct MojomTypeTraits<::attribution_internals::mojom::WebUISourceRegistrationDataView> { … };
template <>
struct MojomTypeTraits<::attribution_internals::mojom::WebUIOsRegistrationDataView> { … };
template <>
struct MojomTypeTraits<::attribution_internals::mojom::WebUIReportDataDataView> { … };
template <>
struct MojomTypeTraits<::attribution_internals::mojom::NetworkStatusDataView> { … };
template <>
struct MojomTypeTraits<::attribution_internals::mojom::ReportStatusDataView> { … };
template <>
struct MojomTypeTraits<::attribution_internals::mojom::SendAggregatableDebugReportResultDataView> { … };
}
}
namespace attribution_internals::mojom {
enum class WebUISource_Attributability : int32_t { … };
std::ostream& operator<<(std::ostream& os, WebUISource_Attributability value);
inline bool IsKnownEnumValue(WebUISource_Attributability value) { … }
class ObserverInterfaceBase { … };
ObserverPtrDataView;
ObserverRequestDataView;
ObserverAssociatedPtrInfoDataView;
ObserverAssociatedRequestDataView;
class HandlerInterfaceBase { … };
HandlerPtrDataView;
HandlerRequestDataView;
HandlerAssociatedPtrInfoDataView;
HandlerAssociatedRequestDataView;
class FactoryInterfaceBase { … };
FactoryPtrDataView;
FactoryRequestDataView;
FactoryAssociatedPtrInfoDataView;
FactoryAssociatedRequestDataView;
class ReportIDDataView { … };
class WebUIReportEventLevelDataDataView { … };
class AggregatableHistogramContributionDataView { … };
class WebUIReportAggregatableAttributionDataDataView { … };
class EmptyDataView { … };
class WebUIReportDataView { … };
class WebUIDebugReportDataView { … };
class WebUIAggregatableDebugReportDataView { … };
class WebUISourceDataView { … };
class WebUIRegistrationDataView { … };
class WebUITriggerDataView { … };
class WebUISourceRegistrationDataView { … };
class WebUIOsRegistrationDataView { … };
class WebUIReportDataDataView { … };
class NetworkStatusDataView { … };
class ReportStatusDataView { … };
class SendAggregatableDebugReportResultDataView { … };
}
namespace std {
template <>
struct hash<::attribution_internals::mojom::WebUISource_Attributability>
: public mojo::internal::EnumHashImpl<::attribution_internals::mojom::WebUISource_Attributability> { … };
}
namespace mojo {
namespace internal {
Serializer< ::attribution_internals::mojom::WebUISource_Attributability, MaybeConstUserType>;
}
namespace internal {
Serializer< ::attribution_internals::mojom::ReportIDDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::attribution_internals::mojom::WebUIReportEventLevelDataDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::attribution_internals::mojom::AggregatableHistogramContributionDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::attribution_internals::mojom::WebUIReportAggregatableAttributionDataDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::attribution_internals::mojom::EmptyDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::attribution_internals::mojom::WebUIReportDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::attribution_internals::mojom::WebUIDebugReportDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::attribution_internals::mojom::WebUIAggregatableDebugReportDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::attribution_internals::mojom::WebUISourceDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::attribution_internals::mojom::WebUIRegistrationDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::attribution_internals::mojom::WebUITriggerDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::attribution_internals::mojom::WebUISourceRegistrationDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::attribution_internals::mojom::WebUIOsRegistrationDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::attribution_internals::mojom::WebUIReportDataDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::attribution_internals::mojom::NetworkStatusDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::attribution_internals::mojom::ReportStatusDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::attribution_internals::mojom::SendAggregatableDebugReportResultDataView, MaybeConstUserType>;
}
}
namespace attribution_internals::mojom {
inline void AggregatableHistogramContributionDataView::GetKeyDataView(
mojo::StringDataView* output) { … }
inline void WebUIReportAggregatableAttributionDataDataView::GetContributionsDataView(
mojo::ArrayDataView<AggregatableHistogramContributionDataView>* output) { … }
inline void WebUIReportAggregatableAttributionDataDataView::GetAggregationCoordinatorDataView(
mojo::StringDataView* output) { … }
inline void WebUIReportDataView::GetIdDataView(
ReportIDDataView* output) { … }
inline void WebUIReportDataView::GetReportUrlDataView(
::url::mojom::UrlDataView* output) { … }
inline void WebUIReportDataView::GetReportBodyDataView(
mojo::StringDataView* output) { … }
inline void WebUIReportDataView::GetStatusDataView(
ReportStatusDataView* output) { … }
inline void WebUIReportDataView::GetDataDataView(
WebUIReportDataDataView* output) { … }
inline void WebUIDebugReportDataView::GetUrlDataView(
::url::mojom::UrlDataView* output) { … }
inline void WebUIDebugReportDataView::GetBodyDataView(
mojo::StringDataView* output) { … }
inline void WebUIDebugReportDataView::GetStatusDataView(
NetworkStatusDataView* output) { … }
inline void WebUIAggregatableDebugReportDataView::GetUrlDataView(
::url::mojom::UrlDataView* output) { … }
inline void WebUIAggregatableDebugReportDataView::GetBodyDataView(
mojo::StringDataView* output) { … }
inline void WebUIAggregatableDebugReportDataView::GetSendResultDataView(
SendAggregatableDebugReportResultDataView* output) { … }
inline void WebUISourceDataView::GetSourceOriginDataView(
::url::mojom::OriginDataView* output) { … }
inline void WebUISourceDataView::GetDestinationsDataView(
::attribution_reporting::mojom::DestinationSetDataView* output) { … }
inline void WebUISourceDataView::GetReportingOriginDataView(
::url::mojom::OriginDataView* output) { … }
inline void WebUISourceDataView::GetTriggerSpecsJsonDataView(
mojo::StringDataView* output) { … }
inline void WebUISourceDataView::GetDedupKeysDataView(
mojo::ArrayDataView<uint64_t>* output) { … }
inline void WebUISourceDataView::GetFilterDataDataView(
::attribution_reporting::mojom::FilterDataDataView* output) { … }
inline void WebUISourceDataView::GetAggregationKeysDataView(
mojo::MapDataView<mojo::StringDataView, mojo::StringDataView>* output) { … }
inline void WebUISourceDataView::GetAggregatableDedupKeysDataView(
mojo::ArrayDataView<uint64_t>* output) { … }
inline void WebUISourceDataView::GetAggregatableDebugKeyPieceDataView(
mojo::StringDataView* output) { … }
inline void WebUISourceDataView::GetAttributionScopesDataJsonDataView(
mojo::StringDataView* output) { … }
inline void WebUIRegistrationDataView::GetContextOriginDataView(
::url::mojom::OriginDataView* output) { … }
inline void WebUIRegistrationDataView::GetReportingOriginDataView(
::url::mojom::OriginDataView* output) { … }
inline void WebUIRegistrationDataView::GetRegistrationJsonDataView(
mojo::StringDataView* output) { … }
inline void WebUITriggerDataView::GetRegistrationDataView(
WebUIRegistrationDataView* output) { … }
inline void WebUISourceRegistrationDataView::GetRegistrationDataView(
WebUIRegistrationDataView* output) { … }
inline void WebUIOsRegistrationDataView::GetRegistrationUrlDataView(
::url::mojom::UrlDataView* output) { … }
inline void WebUIOsRegistrationDataView::GetTopLevelOriginDataView(
::url::mojom::OriginDataView* output) { … }
inline void WebUIReportDataDataView::GetEventLevelDataDataView(
WebUIReportEventLevelDataDataView* output) const { … }
inline void WebUIReportDataDataView::GetAggregatableAttributionDataDataView(
WebUIReportAggregatableAttributionDataDataView* output) const { … }
inline void NetworkStatusDataView::GetNetworkErrorDataView(
mojo::StringDataView* output) const { … }
inline void ReportStatusDataView::GetPendingDataView(
EmptyDataView* output) const { … }
inline void ReportStatusDataView::GetReplacedByHigherPriorityReportDataView(
mojo::StringDataView* output) const { … }
inline void ReportStatusDataView::GetProhibitedByBrowserPolicyDataView(
EmptyDataView* output) const { … }
inline void ReportStatusDataView::GetNetworkStatusDataView(
NetworkStatusDataView* output) const { … }
inline void ReportStatusDataView::GetFailedToAssembleDataView(
EmptyDataView* output) const { … }
inline void SendAggregatableDebugReportResultDataView::GetAssemblyFailedDataView(
EmptyDataView* output) const { … }
inline void SendAggregatableDebugReportResultDataView::GetNetworkStatusDataView(
NetworkStatusDataView* output) const { … }
}
namespace perfetto {
template <>
struct TraceFormatTraits<::attribution_internals::mojom::WebUISource_Attributability> { … };
}
#endif