chromium/components/privacy_sandbox/privacy_sandbox_attestations/BUILD.gn

# Copyright 2023 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/config/features.gni")
import("//build/config/sanitizers/sanitizers.gni")
import("//testing/libfuzzer/fuzzer_test.gni")

# These sources depend on targets from "//content/*", which means they cannot
# be loaded on ios.
if (use_blink) {
  source_set("privacy_sandbox_attestations") {
    sources = [
      "privacy_sandbox_attestations.cc",
      "privacy_sandbox_attestations.h",
      "privacy_sandbox_attestations_parser.cc",
      "privacy_sandbox_attestations_parser.h",
    ]

    deps = [
      ":metrics",
      "//components/privacy_sandbox:features",
      "//components/privacy_sandbox:privacy_sandbox_settings_headers",
      "//components/privacy_sandbox/privacy_sandbox_attestations/proto:proto",
      "//content/public/browser",
    ]

    public_deps = [
      "//base",
      "//components/startup_metric_utils",
      "//net:net",
    ]
  }

  source_set("unit_tests") {
    testonly = true
    sources = [
      "privacy_sandbox_attestations_parser_unittest.cc",
      "privacy_sandbox_attestations_unittest.cc",
    ]

    deps = [
      ":metrics",
      ":privacy_sandbox_attestations",
      ":test_support",
      "//base/test:test_support",
      "//components/privacy_sandbox:features",
      "//components/privacy_sandbox/privacy_sandbox_attestations/proto:proto",
      "//content/test:test_support",
      "//net",
      "//testing/gtest",
      "//testing/gtest:gtest",
      "//url:url",
    ]
  }

  source_set("test_support") {
    testonly = true
    sources = [
      "scoped_privacy_sandbox_attestations.cc",
      "scoped_privacy_sandbox_attestations.h",
    ]

    deps = [
      ":privacy_sandbox_attestations",
      "//base",
    ]
  }

  if (use_fuzzing_engine_with_lpm) {
    fuzzer_test("parser_proto_fuzzer") {
      sources = [ "privacy_sandbox_attestations_parser_proto_fuzzer.cc" ]
      deps = [
        ":privacy_sandbox_attestations",
        "//base",
        "//base:i18n",
        "//components/privacy_sandbox/privacy_sandbox_attestations/proto:proto",
        "//third_party/libprotobuf-mutator",
      ]
    }
  }
}

source_set("metrics") {
  sources = [ "privacy_sandbox_attestations_histograms.h" ]
}