#include "components/attribution_reporting/registrar_info.h"
#include <optional>
#include "base/containers/enum_set.h"
#include "base/functional/function_ref.h"
#include "base/metrics/histogram_functions.h"
#include "components/attribution_reporting/registrar.h"
#include "services/network/public/cpp/attribution_utils.h"
#include "services/network/public/mojom/attribution.mojom-shared.h"
namespace attribution_reporting {
namespace {
SetRegistrarOrIssueFunc;
void SetRegistrarOrIssue(
bool is_source,
network::mojom::AttributionSupport support,
Registrar registrar,
IssueType issue,
base::FunctionRef<bool(network::mojom::AttributionSupport)> check_func,
RegistrarInfo& info) { … }
void SetWebRegistrarOrIssue(bool is_source,
network::mojom::AttributionSupport support,
RegistrarInfo& info) { … }
void SetOsRegistrarOrIssue(bool is_source,
network::mojom::AttributionSupport support,
RegistrarInfo& info) { … }
void HandlePreferredPlatform(bool is_source,
network::mojom::AttributionSupport support,
IssueType issue,
bool has_preferred_header,
SetRegistrarOrIssueFunc preferred_func,
bool has_secondary_header,
SetRegistrarOrIssueFunc secondary_func,
RegistrarInfo& info) { … }
}
RegistrarInfo::RegistrarInfo() = default;
RegistrarInfo::~RegistrarInfo() = default;
RegistrarInfo::RegistrarInfo(const RegistrarInfo&) = default;
RegistrarInfo& RegistrarInfo::operator=(const RegistrarInfo&) = default;
RegistrarInfo::RegistrarInfo(RegistrarInfo&&) = default;
RegistrarInfo& RegistrarInfo::operator=(RegistrarInfo&&) = default;
RegistrarInfo RegistrarInfo::Get(
bool has_web_header,
bool has_os_header,
bool is_source,
std::optional<Registrar> preferred_platform,
network::mojom::AttributionSupport support) { … }
}