#include "chrome/browser/privacy_budget/surface_set_valuation.h"
#include <algorithm>
#include <functional>
#include <limits>
#include <tuple>
#include <type_traits>
#include "base/check_op.h"
#include "base/containers/contains.h"
#include "base/numerics/safe_conversions.h"
#include "base/rand_util.h"
#include "base/ranges/algorithm.h"
#include "base/stl_util.h"
#include "chrome/browser/privacy_budget/representative_surface_set.h"
#include "chrome/browser/privacy_budget/surface_set_equivalence.h"
#include "chrome/common/privacy_budget/field_trial_param_conversions.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 {
IdentifiableSurfaceCostMap GetPerSurfaceCostsFromFieldTrial() { … }
IdentifiableSurfaceTypeCostMap GetPerTypeCostsFromFieldTrial() { … }
}
SurfaceSetValuation::SurfaceSetValuation(
const SurfaceSetEquivalence& surface_set_equivalence)
: … { … }
SurfaceSetValuation::~SurfaceSetValuation() = default;
const double SurfaceSetValuation::kDefaultCost;
double SurfaceSetValuation::Cost(const IdentifiableSurfaceSet& set) const { … }
double SurfaceSetValuation::Cost(const RepresentativeSurfaceSet& set) const { … }
double SurfaceSetValuation::Cost(blink::IdentifiableSurface surface) const { … }
double SurfaceSetValuation::Cost(RepresentativeSurface surface) const { … }
double SurfaceSetValuation::IncrementalCost(
const RepresentativeSurfaceSet& prior,
RepresentativeSurface new_addition) const { … }
size_t SurfaceSetValuation::ExpectedSurfaceCountForCost(double cost) { … }