1# Copyright 2018 The Chromium Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5import("//components/safe_browsing/buildflags.gni") 6 7if (is_android) { 8 import("//build/config/android/config.gni") 9 import("//build/config/android/rules.gni") 10} 11 12source_set("internal") { 13 visibility = [ 14 ":for_tests", 15 "//components/download/public/common:public", 16 ] 17 18 configs += [ 19 "//components/download/public/common:components_download_implementation", 20 ] 21 22 sources = [ 23 "all_download_event_notifier.cc", 24 "base_file.cc", 25 "base_file_win.cc", 26 "download_create_info.cc", 27 "download_db_cache.cc", 28 "download_db_cache.h", 29 "download_file_factory.cc", 30 "download_file_impl.cc", 31 "download_interrupt_reasons_impl.cc", 32 "download_interrupt_reasons_utils.cc", 33 "download_item_impl.cc", 34 "download_item_impl_delegate.cc", 35 "download_job.cc", 36 "download_job_factory.cc", 37 "download_job_impl.cc", 38 "download_job_impl.h", 39 "download_path_reservation_tracker.cc", 40 "download_response_handler.cc", 41 "download_stats.cc", 42 "download_task_runner.cc", 43 "download_ukm_helper.cc", 44 "download_utils.cc", 45 "download_worker.cc", 46 "download_worker.h", 47 "in_progress_download_manager.cc", 48 "parallel_download_job.cc", 49 "parallel_download_job.h", 50 "parallel_download_utils.cc", 51 "parallel_download_utils.h", 52 "rate_estimator.cc", 53 "resource_downloader.cc", 54 "resource_downloader.h", 55 "save_package_download_job.cc", 56 "save_package_download_job.h", 57 "simple_download_manager.cc", 58 "simple_download_manager_coordinator.cc", 59 "stream_handle_input_stream.cc", 60 "url_download_handler_factory.cc", 61 "url_download_request_handle.cc", 62 "url_loader_factory_provider.cc", 63 ] 64 65 public_deps = [ 66 "//components/services/quarantine/public/mojom", 67 "//mojo/public/cpp/bindings", 68 "//services/network/public/mojom", 69 ] 70 71 deps = [ 72 "//base", 73 "//components/download/database", 74 "//components/download/public/common:interfaces", 75 "//components/download/quarantine", 76 "//components/filename_generation", 77 "//components/leveldb_proto", 78 "//components/safe_browsing:buildflags", 79 "//mojo/public/c/system", 80 "//net", 81 "//services/device/public/mojom:mojom", 82 "//services/metrics/public/cpp:ukm_builders", 83 "//services/network/public/cpp", 84 "//services/service_manager/public/cpp:cpp", 85 ] 86 87 # TODO(crbug/1056278): Enable this on Fuchsia 88 if (safe_browsing_mode > 0 && !is_fuchsia) { 89 deps += [ "//components/safe_browsing/core:file_type_policies" ] 90 } 91 92 if (is_win) { 93 deps += [ "//components/services/quarantine/public/cpp:features" ] 94 } 95 96 if (is_android) { 97 sources += [ 98 "android/download_collection_bridge.cc", 99 "android/download_collection_bridge.h", 100 ] 101 102 deps += [ ":jni_headers" ] 103 } 104 105 if (is_posix || is_fuchsia) { 106 sources += [ "base_file_posix.cc" ] 107 } 108} 109 110if (is_android) { 111 android_library("internal_java") { 112 sources = [ 113 "android/java/src/org/chromium/components/download/DownloadCollectionBridge.java", 114 "android/java/src/org/chromium/components/download/DownloadDelegate.java", 115 ] 116 117 deps = [ 118 "//base:base_java", 119 "//base:jni_java", 120 "//third_party/android_provider:android_provider_java", 121 ] 122 annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] 123 } 124 125 generate_jni("jni_headers") { 126 visibility = [ ":*" ] 127 sources = [ "android/java/src/org/chromium/components/download/DownloadCollectionBridge.java" ] 128 } 129} 130 131# tests need to access both public and internal sources. So in the component 132# build case, we exclude the internal dependency as it is included in the 133# test_support target under public. 134group("for_tests") { 135 visibility = [ ":unit_tests" ] 136 if (!is_component_build) { 137 public_deps = [ ":internal" ] 138 } 139} 140 141source_set("unit_tests") { 142 testonly = true 143 144 if (is_component_build) { 145 check_includes = false 146 } 147 148 sources = [ 149 "all_download_event_notifier_unittest.cc", 150 "base_file_unittest.cc", 151 "base_file_win_unittest.cc", 152 "download_db_cache_unittest.cc", 153 "download_file_unittest.cc", 154 "download_item_impl_unittest.cc", 155 "download_path_reservation_tracker_unittest.cc", 156 "download_stats_unittest.cc", 157 "download_ukm_helper_unittest.cc", 158 "parallel_download_job_unittest.cc", 159 "parallel_download_utils_unittest.cc", 160 "rate_estimator_unittest.cc", 161 ] 162 163 deps = [ 164 ":for_tests", 165 "//base/test:test_support", 166 "//components/download/database", 167 "//components/download/public/common:test_support", 168 "//components/leveldb_proto", 169 "//components/leveldb_proto:test_support", 170 "//components/ukm:test_support", 171 "//crypto", 172 "//net", 173 "//services/metrics/public/cpp:ukm_builders", 174 "//testing/gmock", 175 "//testing/gtest", 176 ] 177} 178