#include "third_party/blink/renderer/modules/mediastream/identifiability_metrics.h"
#include "base/functional/callback.h"
#include "third_party/blink/public/common/privacy_budget/identifiability_metric_builder.h"
#include "third_party/blink/public/common/privacy_budget/identifiability_study_settings.h"
#include "third_party/blink/public/common/privacy_budget/identifiable_token.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_union_string_stringsequence.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_constrain_boolean_parameters.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_constrain_dom_string_parameters.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_constrain_double_range.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_constrain_long_range.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_constrain_point_2d_parameters.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_media_stream_constraints.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_media_track_constraint_set.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_media_track_constraints.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_point_2d.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_typedefs.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_union_boolean_constrainbooleanparameters.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_union_boolean_constraindoublerange_double.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_union_boolean_mediatrackconstraints.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_union_constraindomstringparameters_string_stringsequence.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_union_constraindoublerange_double.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_union_constrainlongrange_long.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_union_constrainpoint2dparameters_point2dsequence.h"
#include "third_party/blink/renderer/core/execution_context/execution_context.h"
#include "third_party/blink/renderer/platform/privacy_budget/identifiability_digest_helpers.h"
namespace blink {
namespace {
template <typename T>
void Visit(IdentifiableTokenBuilder& builder, const T* range) { … }
void Visit(IdentifiableTokenBuilder& builder, const V8ConstrainDouble* d) { … }
void Visit(IdentifiableTokenBuilder& builder, const V8ConstrainLong* l) { … }
void Visit(IdentifiableTokenBuilder& builder,
const V8UnionStringOrStringSequence* s) { … }
void Visit(IdentifiableTokenBuilder& builder, const V8ConstrainDOMString* s) { … }
void Visit(IdentifiableTokenBuilder& builder, const V8ConstrainBoolean* b) { … }
void Visit(IdentifiableTokenBuilder& builder,
const V8UnionBooleanOrConstrainDouble* x) { … }
void Visit(IdentifiableTokenBuilder& builder,
const HeapVector<Member<Point2D>>& points) { … }
void Visit(IdentifiableTokenBuilder& builder, const V8ConstrainPoint2D* p) { … }
void Visit(IdentifiableTokenBuilder& builder,
const MediaTrackConstraintSet& set) { … }
void Visit(IdentifiableTokenBuilder& builder,
const V8UnionBooleanOrMediaTrackConstraints* constraint) { … }
}
IdentifiableToken TokenFromConstraints(
const MediaStreamConstraints* constraints) { … }
void RecordIdentifiabilityMetric(const IdentifiableSurface& surface,
ExecutionContext* context,
IdentifiableToken token) { … }
}