blob: 12485fbfbe0ee5436e4c1dd8ed87ea46c650f0ac [file] [log] [blame]
# Copyright 2017 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//third_party/protobuf/proto_library.gni")
import("//testing/libfuzzer/fuzzer_test.gni")
proto_library("safebrowsing_proto") {
sources = [
"safebrowsing.proto",
]
}
proto_library("v4_store_proto") {
sources = [
"v4_store.proto",
]
deps = [
":safebrowsing_proto",
]
}
proto_library("metadata_proto") {
sources = [
"metadata.proto",
]
}
# This target is shared between the desktop and mobile versions.
group("safe_browsing_db_shared") {
deps = [
":database_manager",
":hit_report",
":safebrowsing_proto",
":util",
":v4_feature_list", # Used by SafeBrowsingService
"//components/safe_browsing/common:safe_browsing_prefs",
]
}
# This target is for the desktop version.
group("db") {
deps = [
":safe_browsing_db_shared",
":v4_local_database_manager",
]
}
static_library("database_manager") {
sources = [
"database_manager.cc",
"database_manager.h",
]
deps = [
":hit_report",
":util",
":v4_get_hash_protocol_manager",
":v4_protocol_manager_util",
"//base",
"//content/public/browser",
"//content/public/common",
"//net",
"//url",
]
public_deps = [
":safebrowsing_proto",
]
}
static_library("hit_report") {
sources = [
"hit_report.cc",
"hit_report.h",
]
public_deps = [
":util",
]
deps = [
"//components/metrics",
"//components/safe_browsing/common:safe_browsing_prefs",
"//url",
]
}
static_library("test_database_manager") {
sources = [
"test_database_manager.cc",
"test_database_manager.h",
]
deps = [
":database_manager",
":v4_protocol_manager_util",
"//base:base",
"//net",
"//services/network/public/cpp",
]
}
static_library("util") {
sources = [
"util.cc",
"util.h",
]
public_deps = [
":v4_protocol_manager_util",
"//components/safe_browsing/common:safe_browsing_prefs",
]
deps = [
"//base",
"//components/version_info:version_info",
"//crypto",
"//google_apis:google_apis",
"//net",
"//url",
]
if (is_win) {
# TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
cflags = [ "/wd4267" ] # Conversion from size_t to 'type'.
}
}
static_library("v4_database") {
sources = [
"v4_database.cc",
"v4_database.h",
]
public_deps = [
":safebrowsing_proto",
]
deps = [
":v4_protocol_manager_util",
":v4_store",
"//base",
"//components/safe_browsing:webui_proto",
"//content/public/browser",
]
}
static_library("v4_feature_list") {
sources = [
"v4_feature_list.cc",
"v4_feature_list.h",
]
deps = [
"//base",
"//components/safe_browsing:features",
]
}
static_library("v4_get_hash_protocol_manager") {
sources = [
"v4_get_hash_protocol_manager.cc",
"v4_get_hash_protocol_manager.h",
]
public_deps = [
":safebrowsing_proto",
]
deps = [
":util",
":v4_protocol_manager_util",
"//base",
"//components/data_use_measurement/core",
"//components/safe_browsing:webui_proto",
"//content/public/browser",
"//net",
"//url",
]
}
static_library("v4_local_database_manager") {
sources = [
"v4_local_database_manager.cc",
"v4_local_database_manager.h",
]
deps = [
":database_manager",
":hit_report",
":safebrowsing_proto",
":v4_database",
":v4_feature_list",
":v4_get_hash_protocol_manager",
":v4_protocol_manager_util",
":v4_update_protocol_manager",
"//base",
"//components/safe_browsing:webui_proto",
"//content/public/browser",
"//crypto",
"//net",
"//url",
]
}
source_set("v4_protocol_manager_util") {
sources = [
"v4_protocol_manager_util.cc",
"v4_protocol_manager_util.h",
]
public_deps = [
":safebrowsing_proto",
]
deps = [
"//base",
"//components/safe_browsing/common:safe_browsing_prefs",
"//components/version_info:version_info",
"//google_apis:google_apis",
"//net",
"//url",
]
}
source_set("prefix_iterator") {
sources = [
"prefix_iterator.cc",
"prefix_iterator.h",
]
deps = [
":v4_protocol_manager_util",
"//base",
]
}
if (is_android) {
import("//build/config/android/rules.gni")
java_cpp_enum("sb_threat_values") {
sources = [
"v4_protocol_manager_util.h",
]
}
}
source_set("v4_rice") {
sources = [
"v4_rice.cc",
"v4_rice.h",
]
deps = [
"//base",
"//third_party/protobuf:protobuf_lite",
]
}
source_set("v4_store") {
sources = [
"v4_store.cc",
"v4_store.h",
]
public_deps = [
":safebrowsing_proto",
":v4_store_proto",
]
deps = [
":prefix_iterator",
":v4_protocol_manager_util",
":v4_rice",
"//base",
"//components/safe_browsing:webui_proto",
"//crypto",
]
}
static_library("v4_test_util") {
testonly = true
sources = [
"v4_embedded_test_server_util.cc",
"v4_embedded_test_server_util.h",
"v4_test_util.cc",
"v4_test_util.h",
]
deps = [
":util",
":v4_database",
":v4_get_hash_protocol_manager",
":v4_protocol_manager_util",
"//base",
"//net:test_support",
"//services/network/public/cpp",
]
}
static_library("v4_update_protocol_manager") {
sources = [
"v4_update_protocol_manager.cc",
"v4_update_protocol_manager.h",
]
deps = [
":safebrowsing_proto",
":util",
":v4_protocol_manager_util",
"//base",
"//components/data_use_measurement/core",
"//components/safe_browsing:webui_proto",
"//components/safe_browsing/common:safe_browsing_prefs",
"//net",
"//services/network/public/cpp",
"//url",
]
}
source_set("v4_database_unittest") {
testonly = true
sources = [
"v4_database_unittest.cc",
]
deps = [
":v4_database",
":v4_store",
"//base",
"//base/test:test_support",
"//content/test:test_support",
"//testing/gtest",
]
}
source_set("v4_get_hash_protocol_manager_unittest") {
testonly = true
sources = [
"v4_get_hash_protocol_manager_unittest.cc",
]
deps = [
":safebrowsing_proto",
":util",
":v4_database",
":v4_get_hash_protocol_manager",
":v4_local_database_manager",
":v4_test_util",
"//base",
"//base/test:test_support",
"//content/test:test_support",
"//net",
"//net:test_support",
"//services/network:test_support",
"//testing/gtest",
]
}
source_set("v4_local_database_manager_unittest") {
testonly = true
sources = [
"v4_local_database_manager_unittest.cc",
]
deps = [
":v4_database",
":v4_local_database_manager",
":v4_protocol_manager_util",
":v4_test_util",
"//base",
"//base/test:test_support",
"//content/test:test_support",
"//net",
"//net:test_support",
"//services/network:test_support",
"//testing/gtest",
]
}
source_set("v4_update_protocol_manager_unittest") {
testonly = true
sources = [
"v4_update_protocol_manager_unittest.cc",
]
deps = [
":safebrowsing_proto",
":util",
":v4_test_util",
":v4_update_protocol_manager",
"//base",
"//base/test:test_support",
"//content/public/common",
"//net",
"//net:test_support",
"//services/network:test_support",
"//testing/gtest",
]
}
source_set("unit_tests_shared") {
testonly = true
sources = [
"database_manager_unittest.cc",
"util_unittest.cc",
"v4_get_hash_protocol_manager_unittest.cc",
"v4_protocol_manager_util_unittest.cc",
"whitelist_checker_client_unittest.cc",
]
deps = [
":database_manager",
":safebrowsing_proto",
":test_database_manager",
":util",
":v4_get_hash_protocol_manager",
":v4_protocol_manager_util",
":v4_test_util",
":whitelist_checker_client",
"//base",
"//content/public/browser",
"//content/test:test_support",
"//net",
"//net:test_support",
"//services/network:test_support",
"//testing/gtest",
]
if (is_win) {
# TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
cflags = [ "/wd4267" ] # Conversion from size_t to 'type'.
}
}
source_set("unit_tests_desktop") {
testonly = true
sources = [
"v4_database_unittest.cc",
"v4_local_database_manager_unittest.cc",
"v4_rice_unittest.cc",
"v4_store_unittest.cc",
"v4_update_protocol_manager_unittest.cc",
]
deps = [
":unit_tests_shared",
":util",
":v4_database",
":v4_local_database_manager",
":v4_protocol_manager_util",
":v4_rice",
":v4_store",
":v4_store_proto",
":v4_test_util",
":v4_update_protocol_manager",
"//base",
"//components/prefs:test_support",
"//components/safe_browsing/common:safe_browsing_prefs",
"//content/test:test_support",
"//crypto",
"//net",
"//net:test_support",
"//services/network:test_support",
"//services/network/public/cpp",
"//testing/gtest",
"//url",
]
if (is_win) {
# TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
cflags = [ "/wd4267" ] # Conversion from size_t to 'type'.
}
}
static_library("whitelist_checker_client") {
sources = [
"whitelist_checker_client.cc",
"whitelist_checker_client.h",
]
deps = [
":database_manager",
"//base:base",
]
}
source_set("whitelist_checker_client_unittest") {
testonly = true
sources = [
"whitelist_checker_client_unittest.cc",
]
deps = [
":database_manager",
":test_database_manager",
":whitelist_checker_client",
"//base:base",
"//base/test:test_support",
"//content/public/browser",
"//content/test:test_support",
"//testing/gmock:gmock",
"//testing/gtest:gtest",
]
}
fuzzer_test("v4_get_hash_protocol_manager_fuzzer") {
sources = [
"v4_get_hash_protocol_manager_fuzzer.cc",
]
deps = [
":safebrowsing_proto",
":v4_get_hash_protocol_manager",
]
}