#include "chrome/browser/privacy_budget/identifiability_study_group_settings.h"
#include <algorithm>
#include <numeric>
#include "base/containers/flat_map.h"
#include "base/metrics/histogram_functions.h"
#include "base/ranges/algorithm.h"
#include "chrome/common/privacy_budget/privacy_budget_features.h"
#include "chrome/common/privacy_budget/types.h"
#include "third_party/blink/public/common/privacy_budget/identifiable_surface.h"
namespace {
void UmaHistogramFinchConfigValidation(bool valid) { … }
}
IdentifiabilityStudyGroupSettings
IdentifiabilityStudyGroupSettings::InitFromFeatureParams() { … }
IdentifiabilityStudyGroupSettings IdentifiabilityStudyGroupSettings::InitFrom(
bool enabled,
int expected_surface_count,
int surface_budget,
const std::string& blocks,
const std::string& blocks_weights,
const std::string& allowed_random_types) { … }
IdentifiabilityStudyGroupSettings::IdentifiabilityStudyGroupSettings(
bool enabled,
int expected_surface_count,
int surface_budget,
IdentifiableSurfaceBlocks blocks,
std::vector<double> blocks_weights,
std::vector<blink::IdentifiableSurface::Type> allowed_random_types)
: … { … }
IdentifiabilityStudyGroupSettings::~IdentifiabilityStudyGroupSettings() =
default;
IdentifiabilityStudyGroupSettings::IdentifiabilityStudyGroupSettings(
IdentifiabilityStudyGroupSettings&&) = default;
bool IdentifiabilityStudyGroupSettings::Validate() { … }
bool IdentifiabilityStudyGroupSettings::ValidateAssignedBlockSampling() { … }
const IdentifiableSurfaceBlocks& IdentifiabilityStudyGroupSettings::blocks()
const { … }
const std::vector<double>& IdentifiabilityStudyGroupSettings::blocks_weights()
const { … }
const std::vector<blink::IdentifiableSurface::Type>&
IdentifiabilityStudyGroupSettings::allowed_random_types() const { … }
bool IdentifiabilityStudyGroupSettings::IsUsingAssignedBlockSampling() const { … }
bool IdentifiabilityStudyGroupSettings::IsUsingRandomSampling() const { … }
bool IdentifiabilityStudyGroupSettings::IsUsingSamplingOfSurfaces() const { … }