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

import("//components/proto_extras/proto_extras.gni")
import("//third_party/libprotobuf-mutator/fuzzable_proto_library.gni")
import("//third_party/protobuf/proto_library.gni")

fuzzable_proto_library("browser_events_proto") {
  proto_in_dir = "//"
  sources = [ "synced/browser_events.proto" ]

  deps = [ "//components/safe_browsing/core/common/proto:csd_proto" ]
}

proto_extras("browser_events_proto_extras") {
  sources = [ "synced/browser_events.proto" ]
  deps = [
    ":browser_events_proto",
    "//components/safe_browsing/core/common/proto:csd_proto",
  ]
  extras_deps =
      [ "//components/safe_browsing/core/common/proto:csd_proto_extras" ]
}

fuzzable_proto_library("connectors_proto") {
  proto_in_dir = "//"
  sources = [ "connectors.proto" ]

  deps = [ "//components/safe_browsing/core/common/proto:csd_proto" ]
}

proto_extras("connectors_proto_extras") {
  sources = [ "connectors.proto" ]

  deps = [
    ":connectors_proto",
    "//components/safe_browsing/core/common/proto:csd_proto",
  ]
  extras_deps =
      [ "//components/safe_browsing/core/common/proto:csd_proto_extras" ]
}

proto_library("dlp_policy_event_proto") {
  sources = [ "synced/dlp_policy_event.proto" ]
}

fuzzable_proto_library("extension_install_events") {
  proto_in_dir = "//"
  sources = [ "synced/extension_install_events.proto" ]
}

proto_extras("extension_install_events_extras") {
  sources = [ "synced/extension_install_events.proto" ]
  deps = [ ":extension_install_events" ]
}

proto_library("extensions_workflow_events_proto") {
  proto_in_dir = "//"
  sources = [ "synced/extensions_workflow_events.proto" ]
}

proto_library("legacy_tech_events_proto") {
  proto_in_dir = "//"
  sources = [ "synced/legacy_tech_events.proto" ]
}

fuzzable_proto_library("policy_validation_report") {
  proto_in_dir = "//"
  sources = [ "synced/policy_validation_report.proto" ]
}

proto_extras("policy_validation_report_extras") {
  sources = [ "synced/policy_validation_report.proto" ]
  deps = [ ":policy_validation_report" ]
}

fuzzable_proto_library("saas_usage_report_event") {
  proto_in_dir = "//"
  sources = [ "synced/saas_usage_report_event.proto" ]
}

proto_extras("saas_usage_report_event_extras") {
  sources = [ "synced/saas_usage_report_event.proto" ]
  deps = [ ":saas_usage_report_event" ]
}

# Google3_protos that are not available in the Chromium repository.
fuzzable_proto_library("google3_protos") {
  proto_in_dir = "//"
  sources = [ "google3_protos.proto" ]
}

proto_extras("google3_protos_extras") {
  sources = [ "google3_protos.proto" ]
  deps = [ ":google3_protos" ]
}

fuzzable_proto_library("chrome_reporting_entity") {
  proto_in_dir = "//"
  sources = [ "synced_from_google3/chrome_reporting_entity.proto" ]
  deps = [
    ":browser_events_proto",
    ":extension_install_events",
    ":google3_protos",
    ":policy_validation_report",
    ":saas_usage_report_event",
    "//components/reporting/proto:record_proto",
  ]
}

proto_extras("chrome_reporting_entity_extras") {
  sources = [ "synced_from_google3/chrome_reporting_entity.proto" ]
  deps = [
    ":browser_events_proto",
    ":chrome_reporting_entity",
    ":extension_install_events",
    ":google3_protos",
    ":policy_validation_report",
    ":saas_usage_report_event",
    "//components/reporting/proto:record_proto",
  ]
  extras_deps = [
    ":browser_events_proto_extras",
    ":extension_install_events_extras",
    ":google3_protos_extras",
    ":policy_validation_report_extras",
    ":saas_usage_report_event_extras",
    "//components/reporting/proto:record_proto_extras",
  ]
}

fuzzable_proto_library("upload_request_response") {
  proto_in_dir = "//"
  sources = [ "upload_request_response.proto" ]
  deps = [
    ":chrome_reporting_entity",
    ":google3_protos",
  ]
}

proto_extras("upload_request_response_extras") {
  sources = [ "upload_request_response.proto" ]

  deps = [
    ":chrome_reporting_entity",
    ":google3_protos",
    ":upload_request_response",
    "//components/safe_browsing/core/common/proto:csd_proto",
  ]
  extras_deps = [
    ":chrome_reporting_entity_extras",
    ":google3_protos_extras",
    "//components/safe_browsing/core/common/proto:csd_proto_extras",
  ]
}
