blob: acd3b175a8bc9243143b0f65ee5505fd7a287e6d [file] [log] [blame]
# Copyright 2018 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.
if (is_android) {
import("//build/config/android/config.gni")
import("//build/config/android/rules.gni")
}
source_set("internal") {
visibility = [
":for_tests",
"//components/download/public/common:public",
]
configs += [
"//components/download/public/common:components_download_implementation",
]
sources = [
"base_file.cc",
"base_file_win.cc",
"download_create_info.cc",
"download_db_cache.cc",
"download_db_cache.h",
"download_file_factory.cc",
"download_file_impl.cc",
"download_interrupt_reasons_impl.cc",
"download_interrupt_reasons_utils.cc",
"download_item_impl.cc",
"download_item_impl_delegate.cc",
"download_job.cc",
"download_job_factory.cc",
"download_job_impl.cc",
"download_job_impl.h",
"download_path_reservation_tracker.cc",
"download_response_handler.cc",
"download_stats.cc",
"download_task_runner.cc",
"download_ukm_helper.cc",
"download_url_loader_factory_getter.cc",
"download_url_loader_factory_getter_impl.cc",
"download_utils.cc",
"download_worker.cc",
"download_worker.h",
"in_progress_download_manager.cc",
"parallel_download_job.cc",
"parallel_download_job.h",
"parallel_download_utils.cc",
"parallel_download_utils.h",
"rate_estimator.cc",
"resource_downloader.cc",
"resource_downloader.h",
"save_package_download_job.cc",
"save_package_download_job.h",
"simple_download_manager_coordinator.cc",
"stream_handle_input_stream.cc",
"url_download_handler_factory.cc",
"url_download_request_handle.cc",
]
public_deps = [
"//services/network/public/mojom",
]
deps = [
"//base",
"//components/download/database",
"//components/download/public/common:interfaces",
"//components/download/quarantine",
"//components/filename_generation",
"//components/leveldb_proto",
"//mojo/public/c/system",
"//net",
"//services/metrics/public/cpp:ukm_builders",
"//services/network/public/cpp",
]
if (is_android) {
sources += [
"android/download_collection_bridge.cc",
"android/download_collection_bridge.h",
]
deps += [ ":jni_headers" ]
}
if (is_posix || is_fuchsia) {
sources += [ "base_file_posix.cc" ]
}
}
if (is_android) {
android_library("internal_java") {
java_files = [ "android/java/src/org/chromium/components/download/DownloadCollectionBridge.java" ]
deps = [
"//base:base_java",
]
}
generate_jni("jni_headers") {
visibility = [ ":*" ]
sources = [
"android/java/src/org/chromium/components/download/DownloadCollectionBridge.java",
]
jni_package = "components/download/internal/common"
}
}
# tests need to access both public and internal sources. So in the component
# build case, we exclude the internal dependency as it is included in the
# test_support target under public.
group("for_tests") {
visibility = [ ":unit_tests" ]
if (!is_component_build) {
public_deps = [
":internal",
]
}
}
source_set("unit_tests") {
testonly = true
if (is_component_build) {
check_includes = false
}
sources = [
"base_file_unittest.cc",
"base_file_win_unittest.cc",
"download_db_cache_unittest.cc",
"download_file_unittest.cc",
"download_item_impl_unittest.cc",
"download_path_reservation_tracker_unittest.cc",
"download_stats_unittest.cc",
"download_ukm_helper_unittest.cc",
"parallel_download_job_unittest.cc",
"parallel_download_utils_unittest.cc",
"rate_estimator_unittest.cc",
]
deps = [
":for_tests",
"//base/test:test_support",
"//components/download/database",
"//components/download/public/common:test_support",
"//components/leveldb_proto",
"//components/leveldb_proto:test_support",
"//components/ukm:test_support",
"//crypto",
"//net",
"//services/metrics/public/cpp:ukm_builders",
"//testing/gmock",
"//testing/gtest",
]
}