1# Copyright 2014 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") 6import("//extensions/buildflags/buildflags.gni") 7 8static_library("safe_browsing") { 9 sources = [ 10 "chrome_controller_client.cc", 11 "chrome_controller_client.h", 12 "safe_browsing_tab_observer.cc", 13 "safe_browsing_tab_observer.h", 14 "url_checker_delegate_impl.cc", 15 "url_checker_delegate_impl.h", 16 ] 17 18 public_deps = [] 19 20 deps = [ 21 "//chrome/app:generated_resources", 22 "//chrome/common", 23 "//chrome/common:constants", 24 "//components/browser_sync", 25 "//components/enterprise/common:strings", 26 "//components/keyed_service/content", 27 "//components/language/core/browser", 28 "//components/page_info", 29 "//components/password_manager/core/browser", 30 "//components/password_manager/core/browser:hash_password_manager", 31 "//components/pref_registry", 32 "//components/resources:components_resources_grit", 33 "//components/safe_browsing:buildflags", 34 "//components/safe_browsing/content/web_ui", 35 "//components/safe_browsing/core:features", 36 "//components/safe_browsing/core:ping_manager", 37 "//components/safe_browsing/core/browser:referrer_chain_provider", 38 "//components/safe_browsing/core/common:interfaces", 39 "//components/safe_browsing/core/db:database_manager", 40 "//components/safe_browsing/core/db:v4_local_database_manager", 41 "//components/search_engines", 42 "//components/sessions", 43 "//components/signin/public/identity_manager", 44 "//components/url_formatter", 45 "//mojo/public/cpp/platform", 46 "//mojo/public/cpp/system", 47 "//services/preferences/public/cpp", 48 ] 49 50 if (enable_extensions) { 51 sources += [ 52 "settings_reset_prompt/default_settings_fetcher.cc", 53 "settings_reset_prompt/default_settings_fetcher.h", 54 "settings_reset_prompt/settings_reset_prompt_config.cc", 55 "settings_reset_prompt/settings_reset_prompt_config.h", 56 "settings_reset_prompt/settings_reset_prompt_controller.cc", 57 "settings_reset_prompt/settings_reset_prompt_controller.h", 58 "settings_reset_prompt/settings_reset_prompt_model.cc", 59 "settings_reset_prompt/settings_reset_prompt_model.h", 60 "settings_reset_prompt/settings_reset_prompt_prefs_manager.cc", 61 "settings_reset_prompt/settings_reset_prompt_prefs_manager.h", 62 ] 63 if (is_win) { 64 sources += [ 65 "settings_reset_prompt/settings_reset_prompt_util_win.cc", 66 "settings_reset_prompt/settings_reset_prompt_util_win.h", 67 ] 68 } 69 deps += [ "//extensions/browser" ] 70 } 71 72 if (safe_browsing_mode != 0) { 73 # "Safe Browsing Basic" files used for safe browsing in full mode 74 # (safe_browsing=1) and mobile (=2) 75 sources += [ 76 "certificate_reporting_metrics_provider.cc", 77 "certificate_reporting_metrics_provider.h", 78 "certificate_reporting_service.cc", 79 "certificate_reporting_service.h", 80 "certificate_reporting_service_factory.cc", 81 "certificate_reporting_service_factory.h", 82 "chrome_password_protection_service.cc", 83 "chrome_password_protection_service.h", 84 "client_side_detection_host.cc", 85 "client_side_detection_host.h", 86 "client_side_detection_service.cc", 87 "client_side_detection_service.h", 88 "client_side_detection_service_factory.cc", 89 "client_side_detection_service_factory.h", 90 "client_side_model_loader.cc", 91 "client_side_model_loader.h", 92 "delayed_warning_navigation_throttle.cc", 93 "delayed_warning_navigation_throttle.h", 94 "safe_browsing_blocking_page.cc", 95 "safe_browsing_blocking_page.h", 96 "safe_browsing_navigation_observer.cc", 97 "safe_browsing_navigation_observer.h", 98 "safe_browsing_navigation_observer_manager.cc", 99 "safe_browsing_navigation_observer_manager.h", 100 "safe_browsing_navigation_throttle.cc", 101 "safe_browsing_navigation_throttle.h", 102 "safe_browsing_service.cc", 103 "safe_browsing_service.h", 104 "safe_browsing_subresource_tab_helper.cc", 105 "safe_browsing_subresource_tab_helper.h", 106 "services_delegate.cc", 107 "services_delegate.h", 108 "telemetry/telemetry_service.cc", 109 "telemetry/telemetry_service.h", 110 "test_safe_browsing_blocking_page_quiet.cc", 111 "test_safe_browsing_blocking_page_quiet.h", 112 "trigger_creator.cc", 113 "trigger_creator.h", 114 "ui_manager.cc", 115 "ui_manager.h", 116 "user_interaction_observer.cc", 117 "user_interaction_observer.h", 118 ] 119 deps += [ 120 ":metrics_collector", 121 ":url_lookup_service_factory", 122 ":verdict_cache_manager_factory", 123 "//chrome/common/safe_browsing:proto", 124 "//components/safe_browsing/content", 125 "//components/safe_browsing/content/browser", 126 "//components/safe_browsing/content/password_protection", 127 "//components/safe_browsing/content/triggers:ad_popup_trigger", 128 "//components/safe_browsing/content/triggers:ad_redirect_trigger", 129 "//components/safe_browsing/content/triggers:ad_sampler_trigger", 130 "//components/safe_browsing/content/triggers:suspicious_site_trigger", 131 "//components/safe_browsing/core:csd_proto", 132 "//components/safe_browsing/core:file_type_policies", 133 "//components/safe_browsing/core/browser", 134 "//components/safe_browsing/core/common", 135 "//components/safe_browsing/core/common:safe_browsing_prefs", 136 "//components/safe_browsing/core/db:allowlist_checker_client", 137 "//components/safe_browsing/core/db:metadata_proto", 138 "//components/safe_browsing/core/triggers", 139 "//components/safe_browsing/core/triggers:trigger_throttler", 140 "//components/site_engagement/core/mojom:mojo_bindings", 141 "//services/preferences/public/mojom:mojom", 142 ] 143 if (safe_browsing_mode == 1) { 144 # "Safe Browsing Full" files in addition to the "basic" ones to use for 145 # full safe browsing. This has some in common with "mobile." 146 sources += [ 147 "../download/download_completion_blocker.cc", 148 "../download/download_completion_blocker.h", 149 "cloud_content_scanning/binary_fcm_service.cc", 150 "cloud_content_scanning/binary_fcm_service.h", 151 "cloud_content_scanning/binary_upload_service.cc", 152 "cloud_content_scanning/binary_upload_service.h", 153 "cloud_content_scanning/binary_upload_service_factory.cc", 154 "cloud_content_scanning/binary_upload_service_factory.h", 155 "cloud_content_scanning/deep_scanning_utils.cc", 156 "cloud_content_scanning/deep_scanning_utils.h", 157 "cloud_content_scanning/file_analysis_request.cc", 158 "cloud_content_scanning/file_analysis_request.h", 159 "cloud_content_scanning/multipart_uploader.cc", 160 "cloud_content_scanning/multipart_uploader.h", 161 "download_protection/check_client_download_request.cc", 162 "download_protection/check_client_download_request.h", 163 "download_protection/check_client_download_request_base.cc", 164 "download_protection/check_client_download_request_base.h", 165 "download_protection/check_native_file_system_write_request.cc", 166 "download_protection/check_native_file_system_write_request.h", 167 "download_protection/deep_scanning_request.cc", 168 "download_protection/deep_scanning_request.h", 169 "download_protection/download_feedback.cc", 170 "download_protection/download_feedback.h", 171 "download_protection/download_feedback_service.cc", 172 "download_protection/download_feedback_service.h", 173 "download_protection/download_protection_service.cc", 174 "download_protection/download_protection_service.h", 175 "download_protection/download_protection_util.cc", 176 "download_protection/download_protection_util.h", 177 "download_protection/download_reporter.cc", 178 "download_protection/download_reporter.h", 179 "download_protection/download_url_sb_client.cc", 180 "download_protection/download_url_sb_client.h", 181 "download_protection/file_analyzer.cc", 182 "download_protection/file_analyzer.h", 183 "download_protection/path_sanitizer.cc", 184 "download_protection/path_sanitizer.h", 185 "download_protection/ppapi_download_request.cc", 186 "download_protection/ppapi_download_request.h", 187 "download_protection/two_phase_uploader.cc", 188 "download_protection/two_phase_uploader.h", 189 "incident_reporting/binary_integrity_analyzer.cc", 190 "incident_reporting/binary_integrity_analyzer.h", 191 "incident_reporting/binary_integrity_incident.cc", 192 "incident_reporting/binary_integrity_incident.h", 193 "incident_reporting/delayed_analysis_callback.h", 194 "incident_reporting/delayed_callback_runner.cc", 195 "incident_reporting/delayed_callback_runner.h", 196 "incident_reporting/download_metadata_manager.cc", 197 "incident_reporting/download_metadata_manager.h", 198 "incident_reporting/environment_data_collection.cc", 199 "incident_reporting/environment_data_collection.h", 200 "incident_reporting/extension_data_collection.cc", 201 "incident_reporting/extension_data_collection.h", 202 "incident_reporting/incident.cc", 203 "incident_reporting/incident.h", 204 "incident_reporting/incident_handler_util.cc", 205 "incident_reporting/incident_handler_util.h", 206 "incident_reporting/incident_receiver.h", 207 "incident_reporting/incident_report_uploader.cc", 208 "incident_reporting/incident_report_uploader.h", 209 "incident_reporting/incident_report_uploader_impl.cc", 210 "incident_reporting/incident_report_uploader_impl.h", 211 "incident_reporting/incident_reporting_service.cc", 212 "incident_reporting/incident_reporting_service.h", 213 "incident_reporting/last_download_finder.cc", 214 "incident_reporting/last_download_finder.h", 215 "incident_reporting/platform_state_store.cc", 216 "incident_reporting/platform_state_store.h", 217 "incident_reporting/preference_validation_delegate.cc", 218 "incident_reporting/preference_validation_delegate.h", 219 "incident_reporting/resource_request_detector.cc", 220 "incident_reporting/resource_request_detector.h", 221 "incident_reporting/resource_request_incident.cc", 222 "incident_reporting/resource_request_incident.h", 223 "incident_reporting/state_store.cc", 224 "incident_reporting/state_store.h", 225 "incident_reporting/tracked_preference_incident.cc", 226 "incident_reporting/tracked_preference_incident.h", 227 "services_delegate_desktop.cc", 228 "services_delegate_desktop.h", 229 ] 230 if (is_mac) { 231 sources += [ 232 "incident_reporting/binary_integrity_analyzer_mac.cc", 233 "incident_reporting/binary_integrity_analyzer_mac.h", 234 "signature_evaluator_mac.h", 235 "signature_evaluator_mac.mm", 236 ] 237 } else if (is_win) { 238 sources += [ 239 "incident_reporting/binary_integrity_analyzer_win.cc", 240 "incident_reporting/binary_integrity_analyzer_win.h", 241 "incident_reporting/environment_data_collection_win.cc", 242 "incident_reporting/environment_data_collection_win.h", 243 "incident_reporting/module_integrity_verifier_win.cc", 244 "incident_reporting/module_integrity_verifier_win.h", 245 "incident_reporting/platform_state_store_win.cc", 246 ] 247 } 248 public_deps += [ 249 ":chrome_enterprise_url_lookup_service", 250 ":chrome_enterprise_url_lookup_service_factory", 251 ] 252 deps += [ 253 ":advanced_protection", 254 "//chrome/common/safe_browsing:archive_analyzer_results", 255 "//chrome/common/safe_browsing:binary_feature_extractor", 256 "//chrome/common/safe_browsing:download_type_util", 257 "//chrome/services/file_util/public/cpp", 258 "//components/content_settings/core/browser", 259 "//components/language/core/common", 260 "//components/prefs", 261 "//components/safe_browsing/core:client_model_proto", 262 "//components/safe_browsing/core/db", 263 "//components/security_interstitials/content:security_interstitial_page", 264 "//components/security_interstitials/core:unsafe_resource", 265 "//content/public/browser", 266 "//net", 267 ] 268 if (is_mac) { 269 deps += [ "//chrome/common/safe_browsing:disk_image_type_sniffer_mac" ] 270 } else if (is_win) { 271 deps += [ "//chrome/browser/safe_browsing/incident_reporting:state_store_data_proto" ] 272 } 273 } else if (safe_browsing_mode == 2) { 274 if (is_android) { 275 sources += [ 276 "android/services_delegate_android.cc", 277 "android/services_delegate_android.h", 278 "telemetry/android/android_telemetry_service.cc", 279 "telemetry/android/android_telemetry_service.h", 280 ] 281 } 282 deps += [ 283 "//chrome/browser/safe_browsing/android", 284 "//components/safe_browsing:buildflags", 285 "//components/safe_browsing/android:safe_browsing_mobile", 286 ] 287 } 288 } 289} 290 291if (safe_browsing_mode == 1) { 292 source_set("chrome_enterprise_url_lookup_service_factory") { 293 visibility = [ ":*" ] 294 295 sources = [ 296 "chrome_enterprise_url_lookup_service_factory.cc", 297 "chrome_enterprise_url_lookup_service_factory.h", 298 ] 299 300 deps = [ 301 ":chrome_enterprise_url_lookup_service", 302 ":verdict_cache_manager_factory", 303 "//chrome/common", 304 "//components/keyed_service/content", 305 "//content/public/browser", 306 ] 307 } 308 309 source_set("chrome_enterprise_url_lookup_service") { 310 visibility = [ ":*" ] 311 312 sources = [ 313 "chrome_enterprise_url_lookup_service.cc", 314 "chrome_enterprise_url_lookup_service.h", 315 ] 316 317 deps = [ 318 "//components/prefs", 319 "//components/safe_browsing/core:csd_proto", 320 "//components/safe_browsing/core:realtimeapi_proto", 321 "//components/safe_browsing/core:verdict_cache_manager", 322 "//components/safe_browsing/core/realtime:policy_engine", 323 "//components/safe_browsing/core/realtime:url_lookup_service_base", 324 "//components/sync", 325 "//services/network/public/cpp:cpp", 326 ] 327 } 328} 329 330source_set("url_lookup_service_factory") { 331 sources = [ 332 "url_lookup_service_factory.cc", 333 "url_lookup_service_factory.h", 334 ] 335 336 deps = [ 337 ":verdict_cache_manager_factory", 338 "//chrome/common", 339 "//components/keyed_service/content", 340 "//components/safe_browsing:buildflags", 341 "//components/safe_browsing/core/realtime:url_lookup_service", 342 "//components/signin/public/identity_manager", 343 "//content/public/browser", 344 ] 345} 346 347source_set("verdict_cache_manager_factory") { 348 sources = [ 349 "verdict_cache_manager_factory.cc", 350 "verdict_cache_manager_factory.h", 351 ] 352 353 deps = [ 354 "//chrome/common", 355 "//components/content_settings/core/browser", 356 "//components/history/core/browser", 357 "//components/keyed_service/content", 358 "//components/prefs", 359 "//components/safe_browsing/core:verdict_cache_manager", 360 "//content/public/browser", 361 ] 362} 363 364static_library("advanced_protection") { 365 sources = [ 366 "advanced_protection_status_manager.cc", 367 "advanced_protection_status_manager.h", 368 "advanced_protection_status_manager_factory.cc", 369 "advanced_protection_status_manager_factory.h", 370 ] 371 372 deps = [ 373 "//components/keyed_service/content", 374 "//components/prefs", 375 "//components/safe_browsing/core/common", 376 "//components/safe_browsing/core/common:safe_browsing_prefs", 377 "//components/signin/public/identity_manager", 378 "//content/public/browser", 379 ] 380} 381 382source_set("metrics_collector") { 383 sources = [ 384 "safe_browsing_metrics_collector.cc", 385 "safe_browsing_metrics_collector.h", 386 "safe_browsing_metrics_collector_factory.cc", 387 "safe_browsing_metrics_collector_factory.h", 388 ] 389 390 deps = [ 391 "//chrome/common", 392 "//components/keyed_service/content", 393 "//components/prefs", 394 "//components/safe_browsing/core/common", 395 "//components/safe_browsing/core/common:safe_browsing_prefs", 396 "//content/public/browser", 397 ] 398} 399 400source_set("test_support") { 401 if (safe_browsing_mode != 0) { 402 sources = [ 403 "test_safe_browsing_service.cc", 404 "test_safe_browsing_service.h", 405 ] 406 407 deps = [ 408 ":safe_browsing", 409 "//chrome/common/safe_browsing:proto", 410 "//components/safe_browsing:buildflags", 411 "//components/safe_browsing/core/db:database_manager", 412 "//components/safe_browsing/core/db:test_database_manager", 413 "//components/safe_browsing/core/db:v4_protocol_manager_util", 414 "//content/public/browser", 415 ] 416 } 417 418 if (safe_browsing_mode == 1) { 419 sources += [ 420 "cloud_content_scanning/test_binary_upload_service.cc", 421 "cloud_content_scanning/test_binary_upload_service.h", 422 ] 423 } 424} 425