#include "content/browser/attribution_reporting/attribution_os_level_manager.h"
#include <optional>
#include <utility>
#include <vector>
#include "base/dcheck_is_on.h"
#include "base/functional/callback.h"
#include "base/metrics/histogram_functions.h"
#include "base/no_destructor.h"
#include "base/sequence_checker.h"
#include "base/time/time.h"
#include "components/attribution_reporting/os_registration.h"
#include "content/browser/attribution_reporting/os_registration.h"
#include "content/browser/web_contents/web_contents_impl.h"
#include "content/public/browser/content_browser_client.h"
#include "content/public/browser/web_contents.h"
#include "content/public/common/content_client.h"
namespace content {
namespace {
ScopedApiStateForTesting;
ApiState;
#if DCHECK_IS_ON()
const base::SequenceChecker& GetSequenceChecker() { … }
#endif
std::optional<ApiState> g_state GUARDED_BY_CONTEXT(…) …;
}
bool AttributionOsLevelManager::ShouldInitializeApiState() { … }
ApiState AttributionOsLevelManager::GetApiState() { … }
void AttributionOsLevelManager::SetApiState(std::optional<ApiState> state) { … }
ContentBrowserClient::AttributionReportingOsRegistrars
AttributionOsLevelManager::GetAttributionReportingOsRegistrars(
WebContents* web_contents) { … }
ScopedApiStateForTesting::ScopedApiStateForTesting(
std::optional<ApiState> state)
: … { … }
ScopedApiStateForTesting::~ScopedApiStateForTesting() { … }
NoOpAttributionOsLevelManager::~NoOpAttributionOsLevelManager() = default;
void NoOpAttributionOsLevelManager::Register(
OsRegistration registration,
const std::vector<bool>& is_debug_key_allowed,
RegisterCallback callback) { … }
void NoOpAttributionOsLevelManager::ClearData(
base::Time delete_begin,
base::Time delete_end,
const std::set<url::Origin>& origins,
const std::set<std::string>& domains,
BrowsingDataFilterBuilder::Mode mode,
bool delete_rate_limit_data,
base::OnceClosure done) { … }
}