#include "services/metrics/public/cpp/delegating_ukm_recorder.h"
#include "services/metrics/public/cpp/ukm_source_id.h"
#include "base/functional/bind.h"
#include "base/lazy_instance.h"
#include "services/metrics/public/cpp/ukm_recorder_client_interface_registry.h"
namespace ukm {
namespace {
base::LazyInstance<DelegatingUkmRecorder>::Leaky g_ukm_recorder = …;
}
DelegatingUkmRecorder::DelegatingUkmRecorder() = default;
DelegatingUkmRecorder::~DelegatingUkmRecorder() = default;
DelegatingUkmRecorder* DelegatingUkmRecorder::Get() { … }
void DelegatingUkmRecorder::AddDelegate(base::WeakPtr<UkmRecorder> delegate) { … }
void DelegatingUkmRecorder::RemoveDelegate(UkmRecorder* delegate) { … }
bool DelegatingUkmRecorder::HasMultipleDelegates() { … }
void DelegatingUkmRecorder::UpdateSourceURL(SourceId source_id,
const GURL& url) { … }
void DelegatingUkmRecorder::RecordNavigation(
SourceId source_id,
const UkmSource::NavigationData& navigation_data) { … }
void DelegatingUkmRecorder::UpdateAppURL(SourceId source_id,
const GURL& url,
const AppType app_type) { … }
void DelegatingUkmRecorder::AddEntry(mojom::UkmEntryPtr entry) { … }
void DelegatingUkmRecorder::RecordWebDXFeatures(
SourceId source_id,
const std::set<int32_t>& features,
const size_t max_feature_value) { … }
void DelegatingUkmRecorder::MarkSourceForDeletion(ukm::SourceId source_id) { … }
DelegatingUkmRecorder::Delegate::Delegate(
scoped_refptr<base::SequencedTaskRunner> task_runner,
base::WeakPtr<UkmRecorder> ptr)
: … { … }
DelegatingUkmRecorder::Delegate::Delegate(const Delegate& other)
: … { … }
DelegatingUkmRecorder::Delegate::~Delegate() = default;
void DelegatingUkmRecorder::Delegate::UpdateSourceURL(ukm::SourceId source_id,
const GURL& url) { … }
void DelegatingUkmRecorder::Delegate::UpdateAppURL(ukm::SourceId source_id,
const GURL& url,
const AppType app_type) { … }
void DelegatingUkmRecorder::Delegate::RecordNavigation(
ukm::SourceId source_id,
const UkmSource::NavigationData& navigation_data) { … }
void DelegatingUkmRecorder::Delegate::AddEntry(mojom::UkmEntryPtr entry) { … }
void DelegatingUkmRecorder::Delegate::RecordWebDXFeatures(
SourceId source_id,
const std::set<int32_t>& features,
const size_t max_feature_value) { … }
void DelegatingUkmRecorder::Delegate::MarkSourceForDeletion(
ukm::SourceId source_id) { … }
}