#include "chrome/browser/tpcd/experiment/experiment_manager_impl.h"
#include <optional>
#include <string>
#include <utility>
#include "base/check.h"
#include "base/feature_list.h"
#include "base/functional/bind.h"
#include "base/functional/callback.h"
#include "base/location.h"
#include "base/metrics/field_trial_params.h"
#include "base/no_destructor.h"
#include "base/sequence_checker.h"
#include "base/task/single_thread_task_runner.h"
#include "build/buildflag.h"
#include "build/chromeos_buildflags.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/metrics/chrome_metrics_service_accessor.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/tpcd/experiment/tpcd_experiment_features.h"
#include "components/metrics/metrics_pref_names.h"
#include "components/prefs/pref_service.h"
#include "components/privacy_sandbox/tpcd_pref_names.h"
#include "components/privacy_sandbox/tpcd_utils.h"
#include "components/variations/synthetic_trials.h"
#include "content/public/common/content_features.h"
#if BUILDFLAG(IS_CHROMEOS_ASH)
#include "chromeos/ash/components/browser_context_helper/browser_context_types.h"
#endif
namespace tpcd::experiment {
namespace {
const base::FeatureParam<std::string> kSyntheticTrialGroupOverride{ … };
bool NeedsOnboardingForExperiment() { … }
}
ExperimentManagerImpl* ExperimentManagerImpl::GetForProfile(Profile* profile) { … }
ExperimentManagerImpl* ExperimentManagerImpl::GetInstance() { … }
ExperimentManagerImpl::ExperimentManagerImpl() { … }
ExperimentManagerImpl::~ExperimentManagerImpl() { … }
void ExperimentManagerImpl::SetClientEligibility(
bool is_eligible,
EligibilityDecisionCallback on_eligibility_decision_callback) { … }
void ExperimentManagerImpl::CaptureEligibilityInLocalStatePref() { … }
void ExperimentManagerImpl::MaybeUpdateSyntheticTrialRegistration() { … }
std::optional<bool> ExperimentManagerImpl::IsClientEligible() const { … }
bool ExperimentManagerImpl::DidVersionChange() const { … }
void ExperimentManagerImpl::NotifyProfileTrackingProtectionOnboarded() { … }
bool ExperimentManagerImpl::CanRegisterSyntheticTrial() const { … }
}