1# Copyright 2013 The Chromium Authors 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5# HOW TO WRITE CONDITIONALS IN THIS FILE 6# ====================================== 7# 8# In many other places, one would write a conditional that expresses all the 9# cases when a source file is used or unused, and then either add or subtract 10# it from the sources list in that case 11# 12# Since base includes so many low-level things that vary widely and 13# unpredictably for the various build types, we prefer a slightly different 14# style. Instead, there are big per-platform blocks of inclusions and 15# exclusions. If a given file has an inclusion or exclusion rule that applies 16# for multiple conditions, prefer to duplicate it in both lists. This makes it 17# a bit easier to see which files apply in which cases rather than having a 18# huge sequence of random-looking conditionals. 19 20import("//base/allocator/allocator.gni") 21import("//base/allocator/partition_allocator/partition_alloc.gni") 22import("//base/debug/debug.gni") 23import("//base/trace_event/tracing.gni") 24import("//build/buildflag_header.gni") 25import("//build/config/arm.gni") 26import("//build/config/c++/c++.gni") 27import("//build/config/cast.gni") 28import("//build/config/chromeos/ui_mode.gni") 29import("//build/config/compiler/compiler.gni") 30import("//build/config/cronet/config.gni") 31import("//build/config/dcheck_always_on.gni") 32import("//build/config/ios/config.gni") 33import("//build/config/logging.gni") 34import("//build/config/nacl/config.gni") 35import("//build/config/profiling/profiling.gni") 36import("//build/config/rust.gni") 37import("//build/config/sanitizers/sanitizers.gni") 38import("//build/config/sysroot.gni") 39import("//build/config/ui.gni") 40import("//build/nocompile.gni") 41import("//build/timestamp.gni") 42import("//build_overrides/build.gni") 43import("//testing/libfuzzer/fuzzer_test.gni") 44import("//testing/test.gni") 45 46if (is_mac) { 47 # Used to generate fuzzer corpus :base_mach_port_rendezvous_convert_corpus. 48 import("//third_party/protobuf/proto_library.gni") 49} 50 51if (is_win) { 52 import("//build/config/win/control_flow_guard.gni") 53} 54 55declare_args() { 56 # Unsafe developer build. Has developer-friendly features that may weaken or 57 # disable security measures like sandboxing or ASLR. 58 # IMPORTANT: Unsafe developer builds should never be distributed to end users. 59 is_unsafe_developer_build = !is_official_build 60 61 # Set to true to disable COM init check hooks. 62 com_init_check_hook_disabled = false 63 64 # Set to true to enable mutex priority inheritance. See the comments in 65 # LockImpl::PriorityInheritanceAvailable() in lock_impl_posix.cc for the 66 # platform requirements to safely enable priority inheritance. 67 enable_mutex_priority_inheritance = false 68 69 # Control whether the ios stack sampling profiler is enabled. This flag is 70 # only supported on iOS 64-bit architecture, but some project build //base 71 # for 32-bit architecture. 72 ios_stack_profiler_enabled = true 73} 74 75# Mutex priority inheritance is disabled by default due to security 76# vulnerabilities in older versions of Linux kernel and glibc. However, 77# Chromecast builds have full control over the platform and ensure that 78# the kernel and glibc versions used have patched the vulnerabilities, 79# so it is safe to use mutex priority inheritance on Chromecast platform. 80assert(!enable_mutex_priority_inheritance || is_castos || is_cast_android, 81 "Do not enable PI mutexes without consulting the security team") 82 83assert(!is_nacl || is_nacl_saigo, 84 "base must not be built in most nacl toolchains") 85 86# This is here instead of in //build because //build is DEPS'd in by a few 87# subprojects that still support MSVC. 88assert(!is_win || is_clang, 89 "only clang-cl is supported on Windows, see https://crbug.com/988071") 90 91# Determines whether libevent should be dep. 92dep_libevent = !is_fuchsia && !is_win && !is_mac && !is_nacl 93 94# Determines whether message_pump_libevent should be used. 95use_libevent = dep_libevent && !is_ios 96 97if (is_android || is_robolectric) { 98 import("//build/config/android/rules.gni") 99 import("//third_party/jni_zero/jni_zero.gni") 100} 101 102if (is_fuchsia) { 103 import("//third_party/fuchsia-gn-sdk/src/fidl_library.gni") 104} 105 106# The Rust implementation of base::JSONReader. NaCl depends on base and doesn't 107# have a Rust toolchain, so we need a fallback to C++ for it until it removes 108# its dependency on //base. 109# 110# TODO(crbug.com/1280708): Drop toolchain_has_rust and move the C++ parser into 111# components/nacl to just run in-process there. Don't compile base::JSONReader 112# on NaCL at all. 113build_rust_json_reader = toolchain_has_rust && enable_rust_json 114 115# Rust to C++ type conversions. Also can not be enabled while NaCl depends on 116# //base. 117build_rust_base_conversions = toolchain_has_rust && enable_rust_base_conversions 118 119assert(build_rust_base_conversions || !build_rust_json_reader, 120 "Cannot enable Rust JSON decoder without also base conversions") 121 122buildflag_header("rust_buildflags") { 123 header = "rust_buildflags.h" 124 flags = [ 125 "BUILD_RUST_JSON_READER=$build_rust_json_reader", 126 "BUILD_RUST_BASE_CONVERSIONS=$build_rust_base_conversions", 127 ] 128} 129 130if (is_win) { 131 # This is in a separate config so the flags can be applied to dependents. 132 # ldflags in GN aren't automatically inherited. 133 config("base_win_linker_flags") { 134 ldflags = [ 135 # Linking with shcore.lib causes the shcore api forwarder dll to load. 136 "/DELAYLOAD:api-ms-win-shcore-scaling-l1-1-1.dll", 137 138 # Linking with OneCore.lib causes the next three dlls to load. 139 "/DELAYLOAD:api-ms-win-core-realtime-l1-1-1.dll", 140 "/DELAYLOAD:api-ms-win-power-base-l1-1-0.dll", 141 "/DELAYLOAD:api-ms-win-power-setting-l1-1-0.dll", 142 "/DELAYLOAD:cfgmgr32.dll", 143 "/DELAYLOAD:powrprof.dll", 144 "/DELAYLOAD:setupapi.dll", 145 "/DELAYLOAD:shcore.dll", 146 ] 147 } 148} 149 150if (is_android) { 151 config("android_system_libs") { 152 libs = [ 153 "android", 154 "log", # Used by logging.cc. 155 ] 156 } 157} 158 159if (is_fuchsia) { 160 config("fuchsia_sync_lib") { 161 libs = [ 162 "sync", # Used by spinning_mutex.h. 163 ] 164 } 165} 166 167config("perfetto_config") { 168 if (use_perfetto_client_library) { 169 defines = [ 170 # Use TRACE_EVENT macro implementation from Perfetto. See 171 # trace_event/trace_event_common.h. 172 "BASE_USE_PERFETTO_CLIENT_LIBRARY=1", 173 ] 174 } 175} 176 177if (enable_pkeys && is_debug) { 178 config("no_stack_protector") { 179 cflags = [ "-fno-stack-protector" ] 180 } 181} 182 183buildflag_header("ios_cronet_buildflags") { 184 header = "ios_cronet_buildflags.h" 185 header_dir = "base/message_loop" 186 flags = [ "CRONET_BUILD=$is_cronet_build" ] 187} 188 189enable_message_pump_epoll = is_linux || is_chromeos || is_android 190buildflag_header("message_pump_buildflags") { 191 header = "message_pump_buildflags.h" 192 header_dir = "base/message_loop" 193 flags = [ "ENABLE_MESSAGE_PUMP_EPOLL=$enable_message_pump_epoll" ] 194} 195 196# Base and everything it depends on should be a static library rather than 197# a source set. Base is more of a "library" in the classic sense in that many 198# small parts of it are used in many different contexts. This combined with a 199# few static initializers floating around means that dead code stripping 200# still leaves a lot of code behind that isn't always used. For example, this 201# saves more than 40K for a smaller target like chrome_elf. 202# 203# Use static libraries for the helper stuff as well for things like 204# //base/debug since those targets refer back to base code, which will force 205# base compilation units to be linked in where they wouldn't have otherwise. 206# This does not include test code (test support and anything in the test 207# directory) which should use source_set as is recommended for GN targets). 208component("base") { 209 sources = [ 210 "allocator/allocator_check.cc", 211 "allocator/allocator_check.h", 212 "allocator/allocator_extension.cc", 213 "allocator/allocator_extension.h", 214 "allocator/dispatcher/configuration.h", 215 "allocator/dispatcher/dispatcher.cc", 216 "allocator/dispatcher/dispatcher.h", 217 "allocator/dispatcher/initializer.h", 218 "allocator/dispatcher/internal/dispatch_data.cc", 219 "allocator/dispatcher/internal/dispatch_data.h", 220 "allocator/dispatcher/internal/dispatcher_internal.h", 221 "allocator/dispatcher/internal/tools.h", 222 "allocator/dispatcher/reentry_guard.cc", 223 "allocator/dispatcher/reentry_guard.h", 224 "allocator/dispatcher/subsystem.h", 225 "allocator/dispatcher/tls.cc", 226 "allocator/dispatcher/tls.h", 227 "at_exit.cc", 228 "at_exit.h", 229 "atomic_ref_count.h", 230 "atomic_sequence_num.h", 231 "atomicops.h", 232 "atomicops_internals_atomicword_compat.h", 233 "atomicops_internals_portable.h", 234 "auto_reset.h", 235 "barrier_callback.h", 236 "barrier_closure.cc", 237 "barrier_closure.h", 238 "base64.cc", 239 "base64.h", 240 "base64url.cc", 241 "base64url.h", 242 "base_switches.h", 243 "big_endian.cc", 244 "big_endian.h", 245 "bit_cast.h", 246 "bits.h", 247 "build_time.h", 248 "callback_list.cc", 249 "callback_list.h", 250 "cancelable_callback.h", 251 "check.cc", 252 "check.h", 253 "check_deref.h", 254 "check_is_test.cc", 255 "check_is_test.h", 256 "check_op.cc", 257 "check_op.h", 258 "command_line.cc", 259 "command_line.h", 260 "compiler_specific.h", 261 "component_export.h", 262 "containers/adapters.h", 263 "containers/buffer_iterator.h", 264 "containers/checked_iterators.h", 265 "containers/circular_deque.h", 266 "containers/contains.h", 267 "containers/cxx20_erase.h", 268 "containers/cxx20_erase_internal.h", 269 "containers/cxx20_erase_map.h", 270 "containers/cxx20_erase_vector.h", 271 "containers/enum_set.h", 272 "containers/extend.h", 273 "containers/fixed_flat_map.h", 274 "containers/fixed_flat_set.h", 275 "containers/flat_map.h", 276 "containers/flat_set.h", 277 "containers/flat_tree.h", 278 "containers/id_map.h", 279 "containers/intrusive_heap.cc", 280 "containers/intrusive_heap.h", 281 "containers/linked_list.cc", 282 "containers/linked_list.h", 283 "containers/lru_cache.h", 284 "containers/map_util.h", 285 "containers/small_map.h", 286 "containers/span.h", 287 "containers/stack.h", 288 "containers/unique_ptr_adapters.h", 289 "containers/util.h", 290 "containers/vector_buffer.h", 291 "cpu_reduction_experiment.cc", 292 "cpu_reduction_experiment.h", 293 "critical_closure.h", 294 "dcheck_is_on.h", 295 "debug/alias.cc", 296 "debug/alias.h", 297 "debug/asan_invalid_access.cc", 298 "debug/asan_invalid_access.h", 299 "debug/asan_service.cc", 300 "debug/asan_service.h", 301 "debug/buffered_dwarf_reader.cc", 302 "debug/buffered_dwarf_reader.h", 303 "debug/debugger.cc", 304 "debug/debugger.h", 305 "debug/dump_without_crashing.cc", 306 "debug/dump_without_crashing.h", 307 "debug/dwarf_line_no.cc", 308 "debug/dwarf_line_no.h", 309 "debug/leak_annotations.h", 310 "debug/profiler.cc", 311 "debug/profiler.h", 312 "debug/task_trace.cc", 313 "debug/task_trace.h", 314 "environment.cc", 315 "environment.h", 316 "export_template.h", 317 "feature_list.cc", 318 "feature_list.h", 319 "features.cc", 320 "features.h", 321 "file_version_info.h", 322 "files/block_tests_writing_to_special_dirs.cc", 323 "files/block_tests_writing_to_special_dirs.h", 324 "files/dir_reader_fallback.h", 325 "files/file.cc", 326 "files/file.h", 327 "files/file_error_or.h", 328 "files/file_path.cc", 329 "files/file_path.h", 330 "files/file_tracing.cc", 331 "files/file_tracing.h", 332 "files/memory_mapped_file.cc", 333 "files/memory_mapped_file.h", 334 "files/platform_file.h", 335 "files/safe_base_name.cc", 336 "files/safe_base_name.h", 337 "files/scoped_file.cc", 338 "files/scoped_file.h", 339 "format_macros.h", 340 "functional/bind.h", 341 "functional/bind_internal.h", 342 "functional/callback.h", 343 "functional/callback_forward.h", 344 "functional/callback_helpers.cc", 345 "functional/callback_helpers.h", 346 "functional/callback_internal.cc", 347 "functional/callback_internal.h", 348 "functional/callback_tags.h", 349 "functional/disallow_unretained.h", 350 "functional/function_ref.h", 351 "functional/not_fn.h", 352 "functional/overloaded.h", 353 "functional/unretained_traits.h", 354 "gtest_prod_util.h", 355 "hash/hash.cc", 356 "hash/hash.h", 357 "hash/legacy_hash.cc", 358 "hash/legacy_hash.h", 359 "json/json_common.h", 360 "json/json_parser.cc", 361 "json/json_parser.h", 362 "json/json_reader.cc", 363 "json/json_reader.h", 364 "json/json_string_value_serializer.cc", 365 "json/json_string_value_serializer.h", 366 "json/json_value_converter.cc", 367 "json/json_value_converter.h", 368 "json/json_writer.cc", 369 "json/json_writer.h", 370 "json/string_escape.cc", 371 "json/string_escape.h", 372 "json/values_util.cc", 373 "json/values_util.h", 374 "lazy_instance.h", 375 "lazy_instance_helpers.cc", 376 "lazy_instance_helpers.h", 377 "linux_util.cc", 378 "linux_util.h", 379 "location.cc", 380 "location.h", 381 "logging.cc", 382 "logging.h", 383 "macros/concat.h", 384 "macros/if.h", 385 "macros/remove_parens.h", 386 "macros/uniquify.h", 387 "memory/aligned_memory.cc", 388 "memory/aligned_memory.h", 389 "memory/free_deleter.h", 390 "memory/memory_pressure_listener.cc", 391 "memory/memory_pressure_listener.h", 392 "memory/memory_pressure_monitor.cc", 393 "memory/memory_pressure_monitor.h", 394 "memory/nonscannable_memory.cc", 395 "memory/nonscannable_memory.h", 396 "memory/page_size.h", 397 "memory/platform_shared_memory_handle.cc", 398 "memory/platform_shared_memory_handle.h", 399 "memory/platform_shared_memory_mapper.h", 400 "memory/platform_shared_memory_region.cc", 401 "memory/platform_shared_memory_region.h", 402 "memory/ptr_util.h", 403 "memory/raw_ptr.h", 404 "memory/raw_ptr_asan_bound_arg_tracker.cc", 405 "memory/raw_ptr_asan_bound_arg_tracker.h", 406 "memory/raw_ptr_asan_hooks.cc", 407 "memory/raw_ptr_asan_hooks.h", 408 "memory/raw_ptr_asan_service.cc", 409 "memory/raw_ptr_asan_service.h", 410 "memory/raw_ptr_cast.h", 411 "memory/raw_ptr_exclusion.h", 412 "memory/raw_ref.h", 413 "memory/raw_scoped_refptr_mismatch_checker.h", 414 "memory/raw_span.h", 415 "memory/read_only_shared_memory_region.cc", 416 "memory/read_only_shared_memory_region.h", 417 "memory/ref_counted.cc", 418 "memory/ref_counted.h", 419 "memory/ref_counted_delete_on_sequence.h", 420 "memory/ref_counted_memory.cc", 421 "memory/ref_counted_memory.h", 422 "memory/safe_ref.h", 423 "memory/safe_ref_traits.h", 424 "memory/safety_checks.h", 425 "memory/scoped_policy.h", 426 "memory/scoped_refptr.h", 427 "memory/shared_memory_hooks.h", 428 "memory/shared_memory_mapper.cc", 429 "memory/shared_memory_mapper.h", 430 "memory/shared_memory_mapping.cc", 431 "memory/shared_memory_mapping.h", 432 "memory/shared_memory_security_policy.cc", 433 "memory/shared_memory_security_policy.h", 434 "memory/shared_memory_tracker.cc", 435 "memory/shared_memory_tracker.h", 436 "memory/singleton.h", 437 "memory/stack_allocated.h", 438 "memory/unsafe_shared_memory_pool.cc", 439 "memory/unsafe_shared_memory_pool.h", 440 "memory/unsafe_shared_memory_region.cc", 441 "memory/unsafe_shared_memory_region.h", 442 "memory/values_equivalent.h", 443 "memory/weak_auto_reset.h", 444 "memory/weak_ptr.cc", 445 "memory/weak_ptr.h", 446 "memory/writable_shared_memory_region.cc", 447 "memory/writable_shared_memory_region.h", 448 "message_loop/message_pump.cc", 449 "message_loop/message_pump.h", 450 "message_loop/message_pump_default.cc", 451 "message_loop/message_pump_default.h", 452 "message_loop/message_pump_for_io.h", 453 "message_loop/message_pump_for_ui.h", 454 "message_loop/message_pump_type.h", 455 "message_loop/work_id_provider.cc", 456 "message_loop/work_id_provider.h", 457 "metrics/bucket_ranges.cc", 458 "metrics/bucket_ranges.h", 459 "metrics/crc32.cc", 460 "metrics/crc32.h", 461 "metrics/dummy_histogram.cc", 462 "metrics/dummy_histogram.h", 463 "metrics/field_trial.cc", 464 "metrics/field_trial.h", 465 "metrics/field_trial_list_including_low_anonymity.cc", 466 "metrics/field_trial_list_including_low_anonymity.h", 467 "metrics/field_trial_param_associator.cc", 468 "metrics/field_trial_param_associator.h", 469 "metrics/field_trial_params.cc", 470 "metrics/field_trial_params.h", 471 "metrics/histogram.cc", 472 "metrics/histogram.h", 473 "metrics/histogram_base.cc", 474 "metrics/histogram_base.h", 475 "metrics/histogram_delta_serialization.cc", 476 "metrics/histogram_delta_serialization.h", 477 "metrics/histogram_flattener.h", 478 "metrics/histogram_functions.cc", 479 "metrics/histogram_functions.h", 480 "metrics/histogram_macros.h", 481 "metrics/histogram_macros_internal.h", 482 "metrics/histogram_macros_local.h", 483 "metrics/histogram_samples.cc", 484 "metrics/histogram_samples.h", 485 "metrics/histogram_shared_memory.cc", 486 "metrics/histogram_shared_memory.h", 487 "metrics/histogram_snapshot_manager.cc", 488 "metrics/histogram_snapshot_manager.h", 489 "metrics/metrics_hashes.cc", 490 "metrics/metrics_hashes.h", 491 "metrics/persistent_histogram_allocator.cc", 492 "metrics/persistent_histogram_allocator.h", 493 "metrics/persistent_memory_allocator.cc", 494 "metrics/persistent_memory_allocator.h", 495 "metrics/persistent_sample_map.cc", 496 "metrics/persistent_sample_map.h", 497 "metrics/ranges_manager.cc", 498 "metrics/ranges_manager.h", 499 "metrics/record_histogram_checker.h", 500 "metrics/sample_map.cc", 501 "metrics/sample_map.h", 502 "metrics/sample_vector.cc", 503 "metrics/sample_vector.h", 504 "metrics/single_sample_metrics.cc", 505 "metrics/single_sample_metrics.h", 506 "metrics/sparse_histogram.cc", 507 "metrics/sparse_histogram.h", 508 "metrics/statistics_recorder.cc", 509 "metrics/statistics_recorder.h", 510 "metrics/user_metrics.cc", 511 "metrics/user_metrics.h", 512 "metrics/user_metrics_action.h", 513 "no_destructor.h", 514 "notreached.h", 515 "observer_list.h", 516 "observer_list_internal.cc", 517 "observer_list_internal.h", 518 "observer_list_threadsafe.cc", 519 "observer_list_threadsafe.h", 520 "observer_list_types.cc", 521 "observer_list_types.h", 522 "one_shot_event.cc", 523 "one_shot_event.h", 524 "parameter_pack.h", 525 "pending_task.cc", 526 "pending_task.h", 527 "pickle.cc", 528 "pickle.h", 529 "power_monitor/battery_level_provider.cc", 530 "power_monitor/battery_level_provider.h", 531 "power_monitor/battery_state_sampler.cc", 532 "power_monitor/battery_state_sampler.h", 533 "power_monitor/power_monitor.cc", 534 "power_monitor/power_monitor.h", 535 "power_monitor/power_monitor_device_source.cc", 536 "power_monitor/power_monitor_device_source.h", 537 "power_monitor/power_monitor_features.cc", 538 "power_monitor/power_monitor_features.h", 539 "power_monitor/power_monitor_source.cc", 540 "power_monitor/power_monitor_source.h", 541 "power_monitor/power_observer.h", 542 "power_monitor/sampling_event_source.cc", 543 "power_monitor/sampling_event_source.h", 544 "power_monitor/timer_sampling_event_source.cc", 545 "power_monitor/timer_sampling_event_source.h", 546 "process/current_process.cc", 547 "process/current_process.h", 548 "process/current_process_test.h", 549 "process/environment_internal.cc", 550 "process/environment_internal.h", 551 "process/process.h", 552 "process/process_handle.cc", 553 "process/process_handle.h", 554 "process/process_info.h", 555 "process/process_metrics_iocounters.h", 556 "profiler/frame.cc", 557 "profiler/frame.h", 558 "profiler/metadata_recorder.cc", 559 "profiler/metadata_recorder.h", 560 "profiler/module_cache.cc", 561 "profiler/module_cache.h", 562 "profiler/profile_builder.h", 563 "profiler/register_context.h", 564 "profiler/sample_metadata.cc", 565 "profiler/sample_metadata.h", 566 "profiler/sampling_profiler_thread_token.cc", 567 "profiler/sampling_profiler_thread_token.h", 568 "profiler/stack_buffer.cc", 569 "profiler/stack_buffer.h", 570 "profiler/stack_copier.cc", 571 "profiler/stack_copier.h", 572 "profiler/stack_copier_suspend.cc", 573 "profiler/stack_copier_suspend.h", 574 "profiler/stack_sampler.cc", 575 "profiler/stack_sampler.h", 576 "profiler/stack_sampling_profiler.cc", 577 "profiler/stack_sampling_profiler.h", 578 "profiler/suspendable_thread_delegate.h", 579 "profiler/thread_delegate.h", 580 "profiler/unwinder.cc", 581 "profiler/unwinder.h", 582 "rand_util.cc", 583 "rand_util.h", 584 "ranges/algorithm.h", 585 "ranges/functional.h", 586 "ranges/ranges.h", 587 "run_loop.cc", 588 "run_loop.h", 589 "sampling_heap_profiler/lock_free_address_hash_set.cc", 590 "sampling_heap_profiler/lock_free_address_hash_set.h", 591 "sampling_heap_profiler/poisson_allocation_sampler.cc", 592 "sampling_heap_profiler/poisson_allocation_sampler.h", 593 "sampling_heap_profiler/sampling_heap_profiler.cc", 594 "sampling_heap_profiler/sampling_heap_profiler.h", 595 "scoped_add_feature_flags.cc", 596 "scoped_add_feature_flags.h", 597 "scoped_clear_last_error.h", 598 "scoped_environment_variable_override.cc", 599 "scoped_environment_variable_override.h", 600 "scoped_generic.h", 601 "scoped_multi_source_observation.h", 602 "scoped_observation.h", 603 "scoped_observation_traits.h", 604 "sequence_checker.cc", 605 "sequence_checker.h", 606 "sequence_checker_impl.cc", 607 "sequence_checker_impl.h", 608 "sequence_token.cc", 609 "sequence_token.h", 610 "state_transitions.h", 611 "stl_util.h", 612 "strings/abseil_string_number_conversions.cc", 613 "strings/abseil_string_number_conversions.h", 614 "strings/escape.cc", 615 "strings/escape.h", 616 "strings/latin1_string_conversions.cc", 617 "strings/latin1_string_conversions.h", 618 "strings/levenshtein_distance.cc", 619 "strings/levenshtein_distance.h", 620 "strings/pattern.cc", 621 "strings/pattern.h", 622 "strings/safe_sprintf.cc", 623 "strings/safe_sprintf.h", 624 "strings/strcat.cc", 625 "strings/strcat.h", 626 "strings/strcat_internal.h", 627 "strings/string_number_conversions.cc", 628 "strings/string_number_conversions.h", 629 "strings/string_number_conversions_internal.h", 630 "strings/string_piece.h", 631 "strings/string_split.cc", 632 "strings/string_split.h", 633 "strings/string_split_internal.h", 634 "strings/string_tokenizer.h", 635 "strings/string_util.cc", 636 "strings/string_util.h", 637 "strings/string_util_constants.cc", 638 "strings/string_util_impl_helpers.h", 639 "strings/string_util_internal.h", 640 "strings/stringize_macros.h", 641 "strings/stringprintf.cc", 642 "strings/stringprintf.h", 643 "strings/sys_string_conversions.h", 644 "strings/to_string.h", 645 "strings/utf_offset_string_conversions.cc", 646 "strings/utf_offset_string_conversions.h", 647 "strings/utf_ostream_operators.cc", 648 "strings/utf_ostream_operators.h", 649 "strings/utf_string_conversion_utils.cc", 650 "strings/utf_string_conversion_utils.h", 651 "strings/utf_string_conversions.cc", 652 "strings/utf_string_conversions.h", 653 "substring_set_matcher/matcher_string_pattern.cc", 654 "substring_set_matcher/matcher_string_pattern.h", 655 "substring_set_matcher/substring_set_matcher.cc", 656 "substring_set_matcher/substring_set_matcher.h", 657 "supports_user_data.cc", 658 "supports_user_data.h", 659 "synchronization/atomic_flag.cc", 660 "synchronization/atomic_flag.h", 661 "synchronization/condition_variable.h", 662 "synchronization/lock.cc", 663 "synchronization/lock.h", 664 "synchronization/lock_impl.h", 665 "synchronization/waitable_event.cc", 666 "synchronization/waitable_event.h", 667 "synchronization/waitable_event_watcher.h", 668 "sys_byteorder.h", 669 "syslog_logging.cc", 670 "syslog_logging.h", 671 "system/system_monitor.cc", 672 "system/system_monitor.h", 673 "task/bind_post_task.h", 674 "task/bind_post_task_internal.h", 675 "task/cancelable_task_tracker.cc", 676 "task/cancelable_task_tracker.h", 677 "task/common/checked_lock.h", 678 "task/common/checked_lock_impl.cc", 679 "task/common/checked_lock_impl.h", 680 "task/common/lazy_now.cc", 681 "task/common/lazy_now.h", 682 "task/common/operations_controller.cc", 683 "task/common/operations_controller.h", 684 "task/common/scoped_defer_task_posting.cc", 685 "task/common/scoped_defer_task_posting.h", 686 "task/common/task_annotator.cc", 687 "task/common/task_annotator.h", 688 "task/current_thread.cc", 689 "task/current_thread.h", 690 "task/default_delayed_task_handle_delegate.cc", 691 "task/default_delayed_task_handle_delegate.h", 692 "task/deferred_sequenced_task_runner.cc", 693 "task/deferred_sequenced_task_runner.h", 694 "task/delay_policy.h", 695 "task/delayed_task_handle.cc", 696 "task/delayed_task_handle.h", 697 "task/lazy_thread_pool_task_runner.cc", 698 "task/lazy_thread_pool_task_runner.h", 699 "task/post_job.cc", 700 "task/post_job.h", 701 "task/post_task_and_reply_with_result_internal.h", 702 "task/scoped_set_task_priority_for_current_thread.cc", 703 "task/scoped_set_task_priority_for_current_thread.h", 704 "task/sequence_manager/associated_thread_id.cc", 705 "task/sequence_manager/associated_thread_id.h", 706 "task/sequence_manager/atomic_flag_set.cc", 707 "task/sequence_manager/atomic_flag_set.h", 708 "task/sequence_manager/delayed_task_handle_delegate.cc", 709 "task/sequence_manager/delayed_task_handle_delegate.h", 710 "task/sequence_manager/enqueue_order.h", 711 "task/sequence_manager/enqueue_order_generator.cc", 712 "task/sequence_manager/enqueue_order_generator.h", 713 "task/sequence_manager/fence.cc", 714 "task/sequence_manager/fence.h", 715 "task/sequence_manager/lazily_deallocated_deque.h", 716 "task/sequence_manager/sequence_manager.cc", 717 "task/sequence_manager/sequence_manager.h", 718 "task/sequence_manager/sequence_manager_impl.cc", 719 "task/sequence_manager/sequence_manager_impl.h", 720 "task/sequence_manager/sequenced_task_source.cc", 721 "task/sequence_manager/sequenced_task_source.h", 722 "task/sequence_manager/task_order.cc", 723 "task/sequence_manager/task_order.h", 724 "task/sequence_manager/task_queue.cc", 725 "task/sequence_manager/task_queue.h", 726 "task/sequence_manager/task_queue_impl.cc", 727 "task/sequence_manager/task_queue_impl.h", 728 "task/sequence_manager/task_queue_selector.cc", 729 "task/sequence_manager/task_queue_selector.h", 730 "task/sequence_manager/task_time_observer.h", 731 "task/sequence_manager/tasks.cc", 732 "task/sequence_manager/tasks.h", 733 "task/sequence_manager/thread_controller.cc", 734 "task/sequence_manager/thread_controller.h", 735 "task/sequence_manager/thread_controller_impl.cc", 736 "task/sequence_manager/thread_controller_impl.h", 737 "task/sequence_manager/thread_controller_power_monitor.cc", 738 "task/sequence_manager/thread_controller_power_monitor.h", 739 "task/sequence_manager/thread_controller_with_message_pump_impl.cc", 740 "task/sequence_manager/thread_controller_with_message_pump_impl.h", 741 "task/sequence_manager/time_domain.cc", 742 "task/sequence_manager/time_domain.h", 743 "task/sequence_manager/wake_up_queue.cc", 744 "task/sequence_manager/wake_up_queue.h", 745 "task/sequence_manager/work_deduplicator.cc", 746 "task/sequence_manager/work_deduplicator.h", 747 "task/sequence_manager/work_queue.cc", 748 "task/sequence_manager/work_queue.h", 749 "task/sequence_manager/work_queue_sets.cc", 750 "task/sequence_manager/work_queue_sets.h", 751 "task/sequenced_task_runner.cc", 752 "task/sequenced_task_runner.h", 753 "task/sequenced_task_runner_helpers.h", 754 "task/single_thread_task_executor.cc", 755 "task/single_thread_task_executor.h", 756 "task/single_thread_task_runner.cc", 757 "task/single_thread_task_runner.h", 758 "task/single_thread_task_runner_thread_mode.h", 759 "task/task_features.cc", 760 "task/task_features.h", 761 "task/task_observer.h", 762 "task/task_runner.cc", 763 "task/task_runner.h", 764 "task/task_traits.cc", 765 "task/task_traits.h", 766 "task/thread_pool.cc", 767 "task/thread_pool.h", 768 "task/thread_pool/delayed_priority_queue.cc", 769 "task/thread_pool/delayed_priority_queue.h", 770 "task/thread_pool/delayed_task_manager.cc", 771 "task/thread_pool/delayed_task_manager.h", 772 "task/thread_pool/environment_config.cc", 773 "task/thread_pool/environment_config.h", 774 "task/thread_pool/job_task_source.cc", 775 "task/thread_pool/job_task_source.h", 776 "task/thread_pool/job_task_source_interface.h", 777 "task/thread_pool/job_task_source_old.cc", 778 "task/thread_pool/job_task_source_old.h", 779 "task/thread_pool/pooled_parallel_task_runner.cc", 780 "task/thread_pool/pooled_parallel_task_runner.h", 781 "task/thread_pool/pooled_sequenced_task_runner.cc", 782 "task/thread_pool/pooled_sequenced_task_runner.h", 783 "task/thread_pool/pooled_single_thread_task_runner_manager.cc", 784 "task/thread_pool/pooled_single_thread_task_runner_manager.h", 785 "task/thread_pool/pooled_task_runner_delegate.cc", 786 "task/thread_pool/pooled_task_runner_delegate.h", 787 "task/thread_pool/priority_queue.cc", 788 "task/thread_pool/priority_queue.h", 789 "task/thread_pool/semaphore.h", 790 "task/thread_pool/sequence.cc", 791 "task/thread_pool/sequence.h", 792 "task/thread_pool/service_thread.cc", 793 "task/thread_pool/service_thread.h", 794 "task/thread_pool/task.cc", 795 "task/thread_pool/task.h", 796 "task/thread_pool/task_source.cc", 797 "task/thread_pool/task_source.h", 798 "task/thread_pool/task_source_sort_key.cc", 799 "task/thread_pool/task_source_sort_key.h", 800 "task/thread_pool/task_tracker.cc", 801 "task/thread_pool/task_tracker.h", 802 "task/thread_pool/thread_group.cc", 803 "task/thread_pool/thread_group.h", 804 "task/thread_pool/thread_group_impl.cc", 805 "task/thread_pool/thread_group_impl.h", 806 "task/thread_pool/thread_pool_impl.cc", 807 "task/thread_pool/thread_pool_impl.h", 808 "task/thread_pool/thread_pool_instance.cc", 809 "task/thread_pool/thread_pool_instance.h", 810 "task/thread_pool/tracked_ref.h", 811 "task/thread_pool/worker_thread.cc", 812 "task/thread_pool/worker_thread.h", 813 "task/thread_pool/worker_thread_observer.h", 814 "task/thread_pool/worker_thread_set.cc", 815 "task/thread_pool/worker_thread_set.h", 816 "task/thread_pool/worker_thread_waitable_event.cc", 817 "task/thread_pool/worker_thread_waitable_event.h", 818 "task/updateable_sequenced_task_runner.h", 819 "template_util.h", 820 "test/scoped_logging_settings.h", 821 "test/spin_wait.h", 822 "third_party/cityhash/city.cc", 823 "third_party/cityhash/city.h", 824 "third_party/cityhash_v103/src/city_v103.cc", 825 "third_party/cityhash_v103/src/city_v103.h", 826 "third_party/icu/icu_utf.h", 827 "third_party/nspr/prtime.cc", 828 "third_party/nspr/prtime.h", 829 "third_party/superfasthash/superfasthash.c", 830 "thread_annotations.h", 831 "threading/hang_watcher.cc", 832 "threading/hang_watcher.h", 833 "threading/platform_thread.cc", 834 "threading/platform_thread.h", 835 "threading/platform_thread_ref.cc", 836 "threading/platform_thread_ref.h", 837 "threading/post_task_and_reply_impl.cc", 838 "threading/post_task_and_reply_impl.h", 839 "threading/scoped_blocking_call.cc", 840 "threading/scoped_blocking_call.h", 841 "threading/scoped_blocking_call_internal.cc", 842 "threading/scoped_blocking_call_internal.h", 843 "threading/scoped_thread_priority.cc", 844 "threading/scoped_thread_priority.h", 845 "threading/sequence_bound.h", 846 "threading/sequence_bound_internal.h", 847 "threading/sequence_local_storage_map.cc", 848 "threading/sequence_local_storage_map.h", 849 "threading/sequence_local_storage_slot.cc", 850 "threading/sequence_local_storage_slot.h", 851 "threading/simple_thread.cc", 852 "threading/simple_thread.h", 853 "threading/thread.cc", 854 "threading/thread.h", 855 "threading/thread_checker.cc", 856 "threading/thread_checker.h", 857 "threading/thread_checker_impl.cc", 858 "threading/thread_checker_impl.h", 859 "threading/thread_collision_warner.cc", 860 "threading/thread_collision_warner.h", 861 "threading/thread_id_name_manager.cc", 862 "threading/thread_id_name_manager.h", 863 "threading/thread_local.h", 864 "threading/thread_local_internal.h", 865 "threading/thread_local_storage.cc", 866 "threading/thread_local_storage.h", 867 "threading/thread_restrictions.cc", 868 "threading/thread_restrictions.h", 869 "threading/threading_features.h", 870 "threading/watchdog.cc", 871 "threading/watchdog.h", 872 "time/clock.cc", 873 "time/clock.h", 874 "time/default_clock.cc", 875 "time/default_clock.h", 876 "time/default_tick_clock.cc", 877 "time/default_tick_clock.h", 878 "time/tick_clock.cc", 879 "time/tick_clock.h", 880 "time/time.cc", 881 "time/time.h", 882 "time/time_delta_from_string.cc", 883 "time/time_delta_from_string.h", 884 "time/time_override.cc", 885 "time/time_override.h", 886 "timer/elapsed_timer.cc", 887 "timer/elapsed_timer.h", 888 "timer/hi_res_timer_manager.h", 889 "timer/lap_timer.cc", 890 "timer/lap_timer.h", 891 "timer/timer.cc", 892 "timer/timer.h", 893 "timer/wall_clock_timer.cc", 894 "timer/wall_clock_timer.h", 895 "token.cc", 896 "token.h", 897 "trace_event/base_tracing.h", 898 "trace_event/base_tracing_forward.h", 899 "trace_event/common/trace_event_common.h", 900 "trace_event/heap_profiler_allocation_context.cc", 901 "trace_event/heap_profiler_allocation_context.h", 902 "trace_event/heap_profiler_allocation_context_tracker.cc", 903 "trace_event/heap_profiler_allocation_context_tracker.h", 904 "trace_event/memory_allocator_dump_guid.cc", 905 "trace_event/memory_allocator_dump_guid.h", 906 "trace_event/trace_id_helper.cc", 907 "trace_event/trace_id_helper.h", 908 "traits_bag.h", 909 "tuple.h", 910 "types/always_false.h", 911 "types/cxx23_to_underlying.h", 912 "types/expected.h", 913 "types/expected_internal.h", 914 "types/expected_macros.h", 915 "types/fixed_array.h", 916 "types/id_type.h", 917 "types/is_instantiation.h", 918 "types/optional_ref.h", 919 "types/optional_util.h", 920 "types/pass_key.h", 921 "types/strong_alias.h", 922 "types/supports_ostream_operator.h", 923 "types/token_type.h", 924 "types/variant_util.h", 925 "unguessable_token.cc", 926 "unguessable_token.h", 927 "uuid.cc", 928 "uuid.h", 929 "value_iterators.cc", 930 "value_iterators.h", 931 "values.cc", 932 "values.h", 933 "version.cc", 934 "version.h", 935 "vlog.cc", 936 "vlog.h", 937 ] 938 939 # Various files that are unused in the Chromium build, but presumably here to 940 # make downstream's life easier. They are not included in the main sources 941 # list to avoid breaking GN formatting's auto-sorting. 942 sources += [ 943 #"process/process_handle_freebsd.cc", 944 #"process/process_iterator_freebsd.cc", 945 #"process/process_metrics_freebsd.cc", 946 #"system/sys_info_freebsd.cc", 947 #"process/process_iterator_openbsd.cc", 948 #"process/process_handle_openbsd.cc", 949 #"process/process_metrics_openbsd.cc", 950 #"system/sys_info_openbsd.cc", 951 ] 952 953 if (is_apple || current_os == "freebsd" || current_os == "openbsd") { 954 sources += [ 955 "posix/sysctl.cc", 956 "posix/sysctl.h", 957 ] 958 } 959 960 if (is_posix) { 961 sources += [ 962 "debug/debugger_posix.cc", 963 "file_descriptor_posix.cc", 964 "file_descriptor_posix.h", 965 "files/dir_reader_posix.h", 966 "files/file_posix.cc", 967 "files/memory_mapped_file_posix.cc", 968 "message_loop/watchable_io_message_pump_posix.cc", 969 "message_loop/watchable_io_message_pump_posix.h", 970 "posix/eintr_wrapper.h", 971 "posix/file_descriptor_shuffle.cc", 972 "posix/file_descriptor_shuffle.h", 973 "posix/global_descriptors.cc", 974 "posix/global_descriptors.h", 975 "posix/safe_strerror.cc", 976 "posix/safe_strerror.h", 977 "process/process_handle_posix.cc", 978 "strings/string_util_posix.h", 979 "synchronization/condition_variable_posix.cc", 980 "synchronization/lock_impl_posix.cc", 981 "threading/platform_thread_posix.cc", 982 "threading/thread_local_storage_posix.cc", 983 "time/time_conversion_posix.cc", 984 "timer/hi_res_timer_manager_posix.cc", 985 ] 986 } 987 988 if (is_linux || is_chromeos) { 989 sources += [ 990 "debug/proc_maps_linux.cc", 991 "debug/proc_maps_linux.h", 992 "files/dir_reader_linux.h", 993 "files/scoped_file_linux.cc", 994 "process/internal_linux.cc", 995 "process/internal_linux.h", 996 "process/memory_linux.cc", 997 "process/process_handle_linux.cc", 998 "process/process_iterator_linux.cc", 999 "process/process_linux.cc", 1000 "process/process_metrics_linux.cc", 1001 "threading/platform_thread_linux.cc", 1002 "threading/platform_thread_linux_base.cc", 1003 "threading/thread_type_delegate.cc", 1004 "threading/thread_type_delegate.h", 1005 ] 1006 } 1007 1008 if (is_chromeos) { 1009 sources += [ "threading/platform_thread_cros.cc" ] 1010 } 1011 1012 if (is_linux || is_chromeos || is_android) { 1013 sources += [ 1014 "files/file_path_watcher_inotify.cc", 1015 "files/file_path_watcher_inotify.h", 1016 ] 1017 } 1018 1019 all_dependent_configs = [] 1020 defines = [ "BASE_IMPLEMENTATION" ] 1021 data = [] 1022 data_deps = [] 1023 libs = [] 1024 frameworks = [] 1025 1026 configs += [ 1027 "//build/config:precompiled_headers", 1028 "//build/config/compiler:prevent_unsafe_narrowing", 1029 "//build/config/compiler:wexit_time_destructors", 1030 "//build/config/compiler:wglobal_constructors", 1031 ] 1032 1033 deps = [ 1034 ":message_pump_buildflags", 1035 "//base/allocator:buildflags", 1036 "//base/allocator/partition_allocator:raw_ptr", 1037 "//base/third_party/double_conversion", 1038 "//base/third_party/dynamic_annotations", 1039 "//build:blink_buildflags", 1040 "//build:branding_buildflags", 1041 "//build/config/compiler:compiler_buildflags", 1042 "//third_party/modp_b64", 1043 ] 1044 1045 # `raw_ptr` cannot be made a component due to CRT symbol issues. 1046 # Its gateway to being a component is through `//base`, so we have 1047 # to provide the appropriate `#define` here. 1048 defines += [ "IS_RAW_PTR_IMPL" ] 1049 1050 if (build_rust_json_reader) { 1051 deps += [ "//third_party/rust/serde_json_lenient/v0_1/wrapper" ] 1052 } 1053 1054 # native_unwinder_android is intended for use solely via a dynamic feature 1055 # module, to avoid increasing Chrome's executable size. 1056 assert_no_deps = [ ":native_unwinder_android" ] 1057 1058 public_deps = [ 1059 ":anchor_functions_buildflags", 1060 ":base_static", 1061 ":build_date", 1062 ":cfi_buildflags", 1063 ":clang_profiling_buildflags", 1064 ":debugging_buildflags", 1065 ":feature_list_buildflags", 1066 ":ios_cronet_buildflags", 1067 ":logging_buildflags", 1068 ":orderfile_buildflags", 1069 ":power_monitor_buildflags", 1070 ":profiler_buildflags", 1071 ":rust_buildflags", 1072 ":sanitizer_buildflags", 1073 ":synchronization_buildflags", 1074 ":tracing_buildflags", 1075 "//base/allocator/partition_allocator:buildflags", 1076 "//base/allocator/partition_allocator:raw_ptr", 1077 "//base/numerics:base_numerics", 1078 "//build:chromecast_buildflags", 1079 "//build:chromeos_buildflags", 1080 "//third_party/abseil-cpp:absl", 1081 ] 1082 1083 if (build_rust_base_conversions) { 1084 sources += [ 1085 "containers/span_rust.h", 1086 "strings/string_piece_rust.h", 1087 ] 1088 1089 # Base provides conversions between CXX types and base types (e.g. 1090 # StringPiece). 1091 public_deps += [ "//build/rust:cxx_cppdeps" ] 1092 } 1093 1094 if (use_custom_libcxx && enable_safe_libcxx && !is_debug) { 1095 public_deps += [ ":nodebug_assertion" ] 1096 } 1097 1098 # Needed for <atomic> if using newer C++ library than sysroot, except if 1099 # building inside the cros_sdk environment - use host_toolchain as a 1100 # more robust check for this. 1101 if (!use_sysroot && (is_android || is_chromeos || (is_linux && !is_castos)) && 1102 host_toolchain != "//build/toolchain/cros:host") { 1103 libs += [ "atomic" ] 1104 } 1105 1106 if (use_allocator_shim) { 1107 if (is_apple) { 1108 sources += [ "allocator/early_zone_registration_apple.h" ] 1109 } 1110 } 1111 1112 if (use_clang_profiling) { 1113 # Call-sites use this conditional on the CLANG_PROFILING macro, for clarity. 1114 sources += [ 1115 "test/clang_profiling.cc", 1116 "test/clang_profiling.h", 1117 ] 1118 if (is_android) { 1119 sources += [ "test/clang_profiling_android.cc" ] 1120 } 1121 } 1122 1123 # Allow more direct string conversions on platforms with native utf8 1124 # strings 1125 if (is_apple || is_chromeos || is_castos || is_cast_android || is_fuchsia) { 1126 defines += [ "SYSTEM_NATIVE_UTF8" ] 1127 } 1128 1129 # Android. 1130 if (is_android) { 1131 sources += [ 1132 "android/android_hardware_buffer_compat.cc", 1133 "android/android_hardware_buffer_compat.h", 1134 "android/android_image_reader_abi.h", 1135 "android/android_image_reader_compat.cc", 1136 "android/android_image_reader_compat.h", 1137 "android/apk_assets.cc", 1138 "android/apk_assets.h", 1139 "android/application_status_listener.cc", 1140 "android/application_status_listener.h", 1141 "android/base_feature_map.cc", 1142 "android/base_features.cc", 1143 "android/base_features.h", 1144 "android/build_info.cc", 1145 "android/build_info.h", 1146 "android/bundle_utils.cc", 1147 "android/bundle_utils.h", 1148 "android/child_process_binding_types.h", 1149 "android/child_process_service.cc", 1150 "android/content_uri_utils.cc", 1151 "android/content_uri_utils.h", 1152 "android/cpu_features.cc", 1153 "android/early_trace_event_binding.cc", 1154 "android/early_trace_event_binding.h", 1155 "android/event_log.cc", 1156 "android/event_log.h", 1157 "android/feature_list_jni.cc", 1158 "android/feature_map.cc", 1159 "android/feature_map.h", 1160 "android/features_jni.cc", 1161 "android/field_trial_list.cc", 1162 "android/important_file_writer_android.cc", 1163 "android/int_string_callback.cc", 1164 "android/int_string_callback.h", 1165 "android/jank_metric_uma_recorder.cc", 1166 "android/jank_metric_uma_recorder.h", 1167 "android/java_handler_thread.cc", 1168 "android/java_handler_thread.h", 1169 "android/java_heap_dump_generator.cc", 1170 "android/java_heap_dump_generator.h", 1171 "android/java_runtime.cc", 1172 "android/java_runtime.h", 1173 "android/library_loader/anchor_functions.cc", 1174 "android/library_loader/anchor_functions.h", 1175 "android/library_loader/library_prefetcher.cc", 1176 "android/library_loader/library_prefetcher.h", 1177 "android/library_loader/library_prefetcher_hooks.cc", 1178 "android/locale_utils.cc", 1179 "android/locale_utils.h", 1180 "android/meminfo_dump_provider.cc", 1181 "android/meminfo_dump_provider.h", 1182 "android/memory_pressure_listener_android.cc", 1183 "android/memory_pressure_listener_android.h", 1184 "android/path_service_android.cc", 1185 "android/path_utils.cc", 1186 "android/path_utils.h", 1187 "android/radio_utils.cc", 1188 "android/radio_utils.h", 1189 "android/reached_addresses_bitset.cc", 1190 "android/reached_addresses_bitset.h", 1191 "android/reached_code_profiler.cc", 1192 "android/reached_code_profiler.h", 1193 "android/scoped_hardware_buffer_fence_sync.cc", 1194 "android/scoped_hardware_buffer_fence_sync.h", 1195 "android/scoped_hardware_buffer_handle.cc", 1196 "android/scoped_hardware_buffer_handle.h", 1197 "android/shared_preferences/shared_preferences_manager.cc", 1198 "android/shared_preferences/shared_preferences_manager.h", 1199 "android/statistics_recorder_android.cc", 1200 "android/sys_utils.cc", 1201 "android/sys_utils.h", 1202 "android/task_scheduler/post_task_android.cc", 1203 "android/task_scheduler/post_task_android.h", 1204 "android/task_scheduler/task_runner_android.cc", 1205 "android/task_scheduler/task_runner_android.h", 1206 "android/task_scheduler/task_traits_android.h", 1207 "android/thread_instruction_count.cc", 1208 "android/thread_instruction_count.h", 1209 "android/timezone_utils.cc", 1210 "android/timezone_utils.h", 1211 "android/unguessable_token_android.cc", 1212 "android/unguessable_token_android.h", 1213 "debug/stack_trace_android.cc", 1214 "files/file_util_android.cc", 1215 "files/scoped_file_android.cc", 1216 "memory/platform_shared_memory_mapper_android.cc", 1217 "memory/platform_shared_memory_region_android.cc", 1218 "message_loop/message_pump_android.cc", 1219 "message_loop/message_pump_android.h", 1220 "os_compat_android.cc", 1221 "os_compat_android.h", 1222 "process/process_android.cc", 1223 "profiler/native_unwinder_android_map_delegate.h", 1224 "profiler/native_unwinder_android_memory_regions_map.h", 1225 "profiler/stack_sampler_android.cc", 1226 "system/sys_info_android.cc", 1227 "threading/platform_thread_android.cc", 1228 1229 # Android uses some Linux sources. 1230 "debug/elf_reader.cc", 1231 "debug/elf_reader.h", 1232 "debug/proc_maps_linux.cc", 1233 "debug/proc_maps_linux.h", 1234 "power_monitor/power_monitor_device_source_android.cc", 1235 "process/internal_linux.cc", 1236 "process/internal_linux.h", 1237 "process/memory_linux.cc", 1238 "process/process_handle_linux.cc", 1239 "process/process_iterator_linux.cc", 1240 "process/process_metrics_linux.cc", 1241 "system/sys_info_linux.cc", 1242 ] 1243 1244 deps += [ 1245 ":base_shared_preferences_jni", 1246 "//third_party/ashmem", 1247 "//third_party/cpu_features:ndk_compat", 1248 ] 1249 1250 # Needs to be a public config so that dependent targets link against it as 1251 # well when doing a component build. 1252 public_configs = [ ":android_system_libs" ] 1253 1254 if (can_unwind_with_cfi_table) { 1255 sources += [ 1256 "trace_event/cfi_backtrace_android.cc", 1257 "trace_event/cfi_backtrace_android.h", 1258 ] 1259 } 1260 if (current_cpu == "arm") { 1261 sources += [ 1262 "profiler/chrome_unwind_info_android.cc", 1263 "profiler/chrome_unwind_info_android.h", 1264 "profiler/chrome_unwinder_android.cc", 1265 "profiler/chrome_unwinder_android.h", 1266 ] 1267 } 1268 1269 if (current_cpu == "arm64") { 1270 sources += [ 1271 "profiler/frame_pointer_unwinder.cc", 1272 "profiler/frame_pointer_unwinder.h", 1273 ] 1274 } 1275 1276 if (current_cpu != "arm" && current_cpu != "arm64") { 1277 # The reached code profiler is only supported on Android arm arch. 1278 sources -= [ "android/reached_code_profiler.cc" ] 1279 sources += [ "android/reached_code_profiler_stub.cc" ] 1280 } 1281 1282 # This is actually a linker script, but it can be added to the link in the 1283 # same way as a library. 1284 libs += [ "android/library_loader/anchor_functions.lds" ] 1285 } # is_android 1286 1287 if (build_allocation_stack_trace_recorder) { 1288 sources += [ 1289 "debug/allocation_trace.cc", 1290 "debug/allocation_trace.h", 1291 ] 1292 } 1293 1294 if (is_robolectric) { 1295 # Make jni.h available. 1296 configs += [ "//third_party/jdk" ] 1297 } 1298 if (is_android || is_robolectric) { 1299 sources += [ 1300 "android/base_jni_onload.cc", 1301 "android/base_jni_onload.h", 1302 "android/callback_android.cc", 1303 "android/callback_android.h", 1304 "android/command_line_android.cc", 1305 "android/java_exception_reporter.cc", 1306 "android/java_exception_reporter.h", 1307 "android/jni_android.cc", 1308 "android/jni_android.h", 1309 "android/jni_array.cc", 1310 "android/jni_array.h", 1311 "android/jni_registrar.cc", 1312 "android/jni_registrar.h", 1313 "android/jni_string.cc", 1314 "android/jni_string.h", 1315 "android/jni_utils.cc", 1316 "android/jni_utils.h", 1317 "android/jni_weak_ref.cc", 1318 "android/jni_weak_ref.h", 1319 "android/library_loader/library_loader_hooks.cc", 1320 "android/library_loader/library_loader_hooks.h", 1321 "android/native_uma_recorder.cc", 1322 "android/scoped_java_ref.cc", 1323 "android/scoped_java_ref.h", 1324 "android/trace_event_binding.cc", 1325 "android/trace_event_binding.h", 1326 ] 1327 deps += [ 1328 ":base_jni", 1329 ":process_launcher_jni", 1330 ] 1331 } # is_android || is_robolectric 1332 1333 # Chromeos. 1334 if (is_chromeos) { 1335 sources += [ 1336 "logging_chromeos.cc", 1337 "system/sys_info_chromeos.cc", 1338 ] 1339 1340 sources += [ "power_monitor/power_monitor_device_source_chromeos.cc" ] 1341 1342 if (current_cpu == "x64") { 1343 sources += [ 1344 "profiler/frame_pointer_unwinder.cc", 1345 "profiler/frame_pointer_unwinder.h", 1346 ] 1347 } 1348 } 1349 1350 # Fuchsia. 1351 if (is_fuchsia) { 1352 sources += [ 1353 "base_paths_fuchsia.cc", 1354 "debug/debugger_fuchsia.cc", 1355 "debug/elf_reader.cc", 1356 "debug/elf_reader.h", 1357 "debug/stack_trace_fuchsia.cc", 1358 "file_descriptor_posix.cc", 1359 "file_descriptor_posix.h", 1360 "files/dir_reader_posix.h", 1361 "files/file_path_watcher_stub.cc", # See crbug.com/851641. 1362 "files/file_posix.cc", 1363 "files/file_util_fuchsia.cc", 1364 "files/memory_mapped_file_posix.cc", 1365 "fuchsia/default_job.cc", 1366 "fuchsia/default_job.h", 1367 "fuchsia/fidl_event_handler.h", 1368 "fuchsia/file_utils.cc", 1369 "fuchsia/file_utils.h", 1370 "fuchsia/filtered_service_directory.cc", 1371 "fuchsia/filtered_service_directory.h", 1372 "fuchsia/fuchsia_component_connect.h", 1373 "fuchsia/fuchsia_logging.cc", 1374 "fuchsia/fuchsia_logging.h", 1375 "fuchsia/intl_profile_watcher.cc", 1376 "fuchsia/intl_profile_watcher.h", 1377 "fuchsia/koid.cc", 1378 "fuchsia/koid.h", 1379 "fuchsia/mem_buffer_util.cc", 1380 "fuchsia/mem_buffer_util.h", 1381 "fuchsia/process_context.cc", 1382 "fuchsia/process_context.h", 1383 "fuchsia/process_lifecycle.cc", 1384 "fuchsia/process_lifecycle.h", 1385 "fuchsia/scheduler.h", 1386 "fuchsia/scoped_fx_logger.cc", 1387 "fuchsia/scoped_fx_logger.h", 1388 "fuchsia/scoped_service_binding.h", 1389 "fuchsia/scoped_service_publisher.h", 1390 "fuchsia/startup_context.cc", 1391 "fuchsia/startup_context.h", 1392 "fuchsia/system_info.cc", 1393 "fuchsia/system_info.h", 1394 "memory/platform_shared_memory_mapper_fuchsia.cc", 1395 "memory/platform_shared_memory_region_fuchsia.cc", 1396 "message_loop/message_pump_fuchsia.cc", 1397 "message_loop/message_pump_fuchsia.h", 1398 "message_loop/watchable_io_message_pump_posix.cc", 1399 "message_loop/watchable_io_message_pump_posix.h", 1400 "native_library_fuchsia.cc", 1401 "posix/eintr_wrapper.h", 1402 "posix/file_descriptor_shuffle.cc", 1403 "posix/file_descriptor_shuffle.h", 1404 "posix/global_descriptors.cc", 1405 "posix/global_descriptors.h", 1406 "posix/safe_strerror.cc", 1407 "posix/safe_strerror.h", 1408 "process/kill_fuchsia.cc", 1409 "process/launch_fuchsia.cc", 1410 "process/memory_fuchsia.cc", 1411 "process/process_fuchsia.cc", 1412 "process/process_handle_fuchsia.cc", 1413 "process/process_iterator_fuchsia.cc", 1414 "process/process_metrics_fuchsia.cc", 1415 "profiler/module_cache_posix.cc", 1416 "rand_util_fuchsia.cc", 1417 "strings/string_util_posix.h", 1418 "strings/sys_string_conversions_posix.cc", 1419 "synchronization/condition_variable_posix.cc", 1420 "synchronization/lock_impl_posix.cc", 1421 "synchronization/waitable_event_posix.cc", 1422 "synchronization/waitable_event_watcher_posix.cc", 1423 "system/sys_info_fuchsia.cc", 1424 "threading/platform_thread_fuchsia.cc", 1425 "threading/platform_thread_posix.cc", 1426 "threading/thread_local_storage_posix.cc", 1427 "time/time_conversion_posix.cc", 1428 "time/time_exploded_icu.cc", 1429 "time/time_fuchsia.cc", 1430 "timer/hi_res_timer_manager_posix.cc", 1431 ] 1432 1433 # These only need to be public deps because of includes of their headers 1434 # by public //base headers, which requires they be on the include path. 1435 # TODO(https://crbug.com/841171): Move these back to |deps|. 1436 public_deps += [ 1437 "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.component.runner:fuchsia.component.runner_hlcpp", 1438 "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.intl:fuchsia.intl_hlcpp", 1439 "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.io:fuchsia.io_cpp", 1440 "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.io:fuchsia.io_hlcpp", 1441 "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.logger:fuchsia.logger_cpp", 1442 "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.mem:fuchsia.mem_hlcpp", 1443 "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.process.lifecycle:fuchsia.process.lifecycle_cpp", 1444 "//third_party/fuchsia-sdk/sdk/pkg/async", 1445 "//third_party/fuchsia-sdk/sdk/pkg/component_incoming_cpp", 1446 "//third_party/fuchsia-sdk/sdk/pkg/fdio", 1447 "//third_party/fuchsia-sdk/sdk/pkg/fidl_cpp", 1448 "//third_party/fuchsia-sdk/sdk/pkg/fidl_cpp_wire", 1449 "//third_party/fuchsia-sdk/sdk/pkg/sync", 1450 "//third_party/fuchsia-sdk/sdk/pkg/sys_cpp", 1451 "//third_party/fuchsia-sdk/sdk/pkg/syslog_structured_backend", 1452 "//third_party/fuchsia-sdk/sdk/pkg/vfs_cpp", 1453 "//third_party/fuchsia-sdk/sdk/pkg/zx", 1454 ] 1455 1456 deps += [ 1457 "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.buildinfo:fuchsia.buildinfo_cpp", 1458 "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.hwinfo:fuchsia.hwinfo_cpp", 1459 "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.io:fuchsia.io_cpp_hlcpp_conversion", 1460 "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.media:fuchsia.media_cpp", 1461 "//third_party/fuchsia-sdk/sdk/pkg/async-default", 1462 "//third_party/fuchsia-sdk/sdk/pkg/async-loop-cpp", 1463 "//third_party/fuchsia-sdk/sdk/pkg/async-loop-default", 1464 "//third_party/fuchsia-sdk/sdk/pkg/fidl", 1465 "//third_party/fuchsia-sdk/sdk/pkg/sys_inspect_cpp", 1466 "//third_party/icu", 1467 ] 1468 1469 # Needed for users of spinning_mutex.h, which for performance reasons, 1470 # contains inlined calls to `libsync` inside the header file. 1471 # It appends an entry to the "libs" section of the dependent target. 1472 public_configs = [ ":fuchsia_sync_lib" ] 1473 } 1474 1475 # Several helpers in //base are backed by BoringSSL; however, NaCl builds 1476 # cannot easily depend on BoringSSL due to the nacl_io library, so NaCl builds 1477 # still retain a dedicated local implementation of the functionality. 1478 # 1479 # TODO(crbug.com/702997) Use only boringssl when NaCl is removed. 1480 sources += [ 1481 "hash/md5.h", 1482 "hash/md5_constexpr.h", 1483 "hash/md5_constexpr_internal.h", 1484 "hash/sha1.h", 1485 ] 1486 if (is_nacl) { 1487 sources += [ 1488 "hash/md5_nacl.cc", 1489 "hash/md5_nacl.h", 1490 "hash/sha1_nacl.cc", 1491 "hash/sha1_nacl.h", 1492 ] 1493 } else { 1494 sources += [ 1495 "hash/md5_boringssl.cc", 1496 "hash/md5_boringssl.h", 1497 "hash/sha1_boringssl.cc", 1498 "hash/sha1_boringssl.h", 1499 ] 1500 public_deps += [ "//third_party/boringssl" ] 1501 } 1502 1503 # NaCl. 1504 if (is_nacl) { 1505 # Explicitly include the linux file. 1506 sources += [ 1507 "debug/stack_trace_nacl.cc", 1508 "files/file_path_watcher_stub.cc", 1509 "memory/page_size_nacl.cc", 1510 "os_compat_nacl.cc", 1511 "os_compat_nacl.h", 1512 "process/process_stubs.cc", 1513 "rand_util_nacl.cc", 1514 "sync_socket_nacl.cc", 1515 "system/sys_info_nacl.cc", 1516 "task/thread_pool/semaphore/semaphore_default.cc", 1517 "threading/platform_thread_linux_base.cc", 1518 "threading/platform_thread_nacl.cc", 1519 ] 1520 } else { 1521 sources += [ 1522 "base_paths.cc", 1523 "base_paths.h", 1524 "cpu.cc", 1525 "cpu.h", 1526 "debug/crash_logging.cc", 1527 "debug/crash_logging.h", 1528 "debug/stack_trace.cc", 1529 "debug/stack_trace.h", 1530 "files/file_enumerator.cc", 1531 "files/file_enumerator.h", 1532 "files/file_proxy.cc", 1533 "files/file_proxy.h", 1534 "files/file_util.cc", 1535 "files/file_util.h", 1536 "files/important_file_writer.cc", 1537 "files/important_file_writer.h", 1538 "files/important_file_writer_cleaner.cc", 1539 "files/important_file_writer_cleaner.h", 1540 "files/scoped_temp_dir.cc", 1541 "files/scoped_temp_dir.h", 1542 "files/scoped_temp_file.cc", 1543 "files/scoped_temp_file.h", 1544 "json/json_file_value_serializer.cc", 1545 "json/json_file_value_serializer.h", 1546 "memory/discardable_memory.cc", 1547 "memory/discardable_memory.h", 1548 "memory/discardable_memory_allocator.cc", 1549 "memory/discardable_memory_allocator.h", 1550 "memory/discardable_memory_internal.h", 1551 "metrics/persistent_histogram_storage.cc", 1552 "metrics/persistent_histogram_storage.h", 1553 "native_library.cc", 1554 "native_library.h", 1555 "path_service.cc", 1556 "path_service.h", 1557 "process/process_metrics.cc", 1558 "process/process_metrics.h", 1559 "scoped_native_library.cc", 1560 "scoped_native_library.h", 1561 "system/sys_info.cc", 1562 "system/sys_info.h", 1563 "system/sys_info_internal.h", 1564 "task/thread_pool/initialization_util.cc", 1565 "task/thread_pool/initialization_util.h", 1566 ] 1567 1568 if (is_win) { 1569 sources += [ 1570 "base_paths_win.cc", 1571 "base_paths_win.h", 1572 ] 1573 } 1574 1575 if (is_apple) { 1576 sources += [ 1577 "base_paths_apple.cc", 1578 "base_paths_apple.h", 1579 ] 1580 } 1581 1582 if (is_mac) { 1583 sources += [ 1584 "base_paths_mac.h", 1585 "base_paths_mac.mm", 1586 ] 1587 } 1588 1589 if (is_android) { 1590 sources += [ 1591 "base_paths_android.cc", 1592 "base_paths_android.h", 1593 ] 1594 } 1595 1596 if (is_linux || is_chromeos || is_android || is_fuchsia) { 1597 sources += [ "task/thread_pool/semaphore/semaphore_posix.cc" ] 1598 } 1599 1600 if (is_posix) { 1601 sources += [ 1602 "base_paths_posix.h", 1603 "memory/madv_free_discardable_memory_allocator_posix.cc", 1604 "memory/madv_free_discardable_memory_allocator_posix.h", 1605 "memory/madv_free_discardable_memory_posix.cc", 1606 "memory/madv_free_discardable_memory_posix.h", 1607 "posix/unix_domain_socket.cc", 1608 "posix/unix_domain_socket.h", 1609 "rand_util_posix.cc", 1610 "system/sys_info_posix.cc", 1611 ] 1612 } 1613 1614 if (is_posix || is_fuchsia) { 1615 sources += [ 1616 "files/file_descriptor_watcher_posix.cc", 1617 "files/file_descriptor_watcher_posix.h", 1618 "files/file_enumerator_posix.cc", 1619 "files/file_util_posix.cc", 1620 "memory/page_size_posix.cc", 1621 ] 1622 } 1623 1624 if ((is_posix && !is_ios) || is_fuchsia) { 1625 sources += [ 1626 "process/process_metrics_posix.cc", 1627 "sync_socket_posix.cc", 1628 ] 1629 } 1630 1631 if (is_posix && !is_apple) { 1632 sources += [ 1633 "native_library_posix.cc", 1634 "posix/can_lower_nice_to.cc", 1635 "posix/can_lower_nice_to.h", 1636 "process/launch_posix.cc", 1637 "profiler/module_cache_posix.cc", 1638 "profiler/stack_base_address_posix.cc", 1639 "profiler/stack_base_address_posix.h", 1640 "profiler/stack_copier_signal.cc", 1641 "profiler/stack_copier_signal.h", 1642 "profiler/thread_delegate_posix.cc", 1643 "profiler/thread_delegate_posix.h", 1644 ] 1645 } 1646 1647 if (is_posix && !is_android) { 1648 sources += [ "debug/stack_trace_posix.cc" ] 1649 } 1650 1651 if (is_posix && !is_ios) { 1652 sources += [ "process/process_posix.cc" ] 1653 } 1654 1655 if (use_blink) { 1656 sources += [ 1657 "memory/discardable_shared_memory.cc", 1658 "memory/discardable_shared_memory.h", 1659 "process/kill.cc", 1660 "process/kill.h", 1661 "process/launch.cc", 1662 "process/launch.h", 1663 "process/memory.cc", 1664 "process/memory.h", 1665 "process/process_iterator.cc", 1666 "process/process_iterator.h", 1667 ] 1668 1669 if (is_posix) { 1670 sources += [ "process/kill_posix.cc" ] 1671 } 1672 } 1673 1674 if (is_linux || is_chromeos) { 1675 sources += [ 1676 "base_paths_posix.cc", 1677 "debug/elf_reader.cc", 1678 "debug/elf_reader.h", 1679 "stack_canary_linux.cc", 1680 "stack_canary_linux.h", 1681 ] 1682 } 1683 if (use_partition_alloc) { 1684 # Add stuff that doesn't work in NaCl. 1685 sources += [ 1686 # PartitionAlloc uses SpinLock, which doesn't work in NaCl (see below). 1687 "allocator/miracle_parameter.cc", 1688 "allocator/miracle_parameter.h", 1689 "allocator/partition_alloc_features.cc", 1690 "allocator/partition_alloc_features.h", 1691 "allocator/partition_alloc_support.cc", 1692 "allocator/partition_alloc_support.h", 1693 ] 1694 } 1695 1696 # Need this to pass gn check, because gn check doesn't see 1697 # BUILDFLAG(USE_PARTITION_ALLOC). A linker will remove all 1698 # partition_alloc code if use_partition_alloc = false because no code uses 1699 # partition_alloc. 1700 public_deps += [ 1701 "allocator/partition_allocator:partition_alloc", 1702 "allocator/partition_allocator:raw_ptr", 1703 ] 1704 } 1705 1706 # Windows. 1707 if (is_win) { 1708 sources += [ 1709 "debug/debugger_win.cc", 1710 "debug/gdi_debug_util_win.cc", 1711 "debug/gdi_debug_util_win.h", 1712 "debug/handle_hooks_win.cc", 1713 "debug/handle_hooks_win.h", 1714 "debug/invalid_access_win.cc", 1715 "debug/invalid_access_win.h", 1716 "debug/stack_trace_win.cc", 1717 "enterprise_util.cc", 1718 "enterprise_util.h", 1719 "enterprise_util_win.cc", 1720 "file_version_info_win.cc", 1721 "file_version_info_win.h", 1722 "files/file_enumerator_win.cc", 1723 "files/file_path_watcher_win.cc", 1724 "files/file_util_win.cc", 1725 "files/file_win.cc", 1726 "files/memory_mapped_file_win.cc", 1727 "logging_win.cc", 1728 "logging_win.h", 1729 "memory/page_size_win.cc", 1730 "memory/platform_shared_memory_mapper_win.cc", 1731 "memory/platform_shared_memory_region_win.cc", 1732 "message_loop/message_pump_win.cc", 1733 "message_loop/message_pump_win.h", 1734 "moving_window.h", 1735 "native_library_win.cc", 1736 "power_monitor/battery_level_provider_win.cc", 1737 "power_monitor/power_monitor_device_source_win.cc", 1738 "power_monitor/speed_limit_observer_win.cc", 1739 "power_monitor/speed_limit_observer_win.h", 1740 "process/kill_win.cc", 1741 "process/launch_win.cc", 1742 "process/memory_win.cc", 1743 "process/process_handle_win.cc", 1744 "process/process_info_win.cc", 1745 "process/process_iterator_win.cc", 1746 "process/process_metrics_win.cc", 1747 "process/process_win.cc", 1748 "profiler/module_cache_win.cc", 1749 "profiler/native_unwinder_win.cc", 1750 "profiler/native_unwinder_win.h", 1751 "profiler/stack_sampler_win.cc", 1752 "profiler/suspendable_thread_delegate_win.cc", 1753 "profiler/suspendable_thread_delegate_win.h", 1754 "profiler/win32_stack_frame_unwinder.cc", 1755 "profiler/win32_stack_frame_unwinder.h", 1756 "rand_util_win.cc", 1757 "scoped_clear_last_error_win.cc", 1758 "strings/strcat_win.cc", 1759 "strings/strcat_win.h", 1760 "strings/string_number_conversions_win.cc", 1761 "strings/string_number_conversions_win.h", 1762 "strings/string_split_win.cc", 1763 "strings/string_split_win.h", 1764 "strings/string_util_win.cc", 1765 "strings/string_util_win.h", 1766 "strings/sys_string_conversions_win.cc", 1767 "sync_socket_win.cc", 1768 "synchronization/condition_variable_win.cc", 1769 "synchronization/lock_impl_win.cc", 1770 "synchronization/waitable_event_watcher_win.cc", 1771 "synchronization/waitable_event_win.cc", 1772 "system/sys_info_win.cc", 1773 "task/thread_pool/semaphore/semaphore_win.cc", 1774 "threading/platform_thread_win.cc", 1775 "threading/platform_thread_win.h", 1776 "threading/thread_local_storage_win.cc", 1777 "time/time_win.cc", 1778 "timer/hi_res_timer_manager_win.cc", 1779 "win/access_control_list.cc", 1780 "win/access_control_list.h", 1781 "win/access_token.cc", 1782 "win/access_token.h", 1783 "win/async_operation.h", 1784 "win/atl.h", 1785 "win/atl_throw.cc", 1786 "win/atl_throw.h", 1787 "win/com_init_balancer.cc", 1788 "win/com_init_balancer.h", 1789 "win/com_init_check_hook.cc", 1790 "win/com_init_check_hook.h", 1791 "win/com_init_util.cc", 1792 "win/com_init_util.h", 1793 "win/core_winrt_util.cc", 1794 "win/core_winrt_util.h", 1795 "win/current_module.h", 1796 "win/dark_mode_support.cc", 1797 "win/dark_mode_support.h", 1798 "win/default_apps_util.cc", 1799 "win/default_apps_util.h", 1800 "win/embedded_i18n/language_selector.cc", 1801 "win/embedded_i18n/language_selector.h", 1802 "win/enum_variant.cc", 1803 "win/enum_variant.h", 1804 "win/event_trace_consumer.h", 1805 "win/event_trace_controller.cc", 1806 "win/event_trace_controller.h", 1807 "win/event_trace_provider.cc", 1808 "win/event_trace_provider.h", 1809 "win/hstring_reference.cc", 1810 "win/hstring_reference.h", 1811 "win/i18n.cc", 1812 "win/i18n.h", 1813 "win/iat_patch_function.cc", 1814 "win/iat_patch_function.h", 1815 "win/map.h", 1816 "win/message_window.cc", 1817 "win/message_window.h", 1818 "win/nt_status.cc", 1819 "win/nt_status.h", 1820 "win/object_watcher.cc", 1821 "win/object_watcher.h", 1822 "win/patch_util.cc", 1823 "win/patch_util.h", 1824 "win/pe_image_reader.cc", 1825 "win/pe_image_reader.h", 1826 "win/post_async_results.h", 1827 "win/process_startup_helper.cc", 1828 "win/process_startup_helper.h", 1829 "win/propvarutil.h", 1830 "win/reference.h", 1831 "win/registry.cc", 1832 "win/registry.h", 1833 "win/resource_exhaustion.cc", 1834 "win/resource_exhaustion.h", 1835 "win/resource_util.cc", 1836 "win/resource_util.h", 1837 "win/scoped_bstr.cc", 1838 "win/scoped_bstr.h", 1839 "win/scoped_co_mem.h", 1840 "win/scoped_com_initializer.cc", 1841 "win/scoped_com_initializer.h", 1842 "win/scoped_gdi_object.h", 1843 "win/scoped_handle.cc", 1844 "win/scoped_handle.h", 1845 "win/scoped_handle_verifier.cc", 1846 "win/scoped_handle_verifier.h", 1847 "win/scoped_hdc.h", 1848 "win/scoped_hglobal.h", 1849 "win/scoped_hstring.cc", 1850 "win/scoped_hstring.h", 1851 "win/scoped_localalloc.h", 1852 "win/scoped_pdh_query.cc", 1853 "win/scoped_pdh_query.h", 1854 "win/scoped_process_information.cc", 1855 "win/scoped_process_information.h", 1856 "win/scoped_propvariant.h", 1857 "win/scoped_safearray.h", 1858 "win/scoped_select_object.h", 1859 "win/scoped_variant.cc", 1860 "win/scoped_variant.h", 1861 "win/scoped_windows_thread_environment.h", 1862 "win/scoped_winrt_initializer.cc", 1863 "win/scoped_winrt_initializer.h", 1864 "win/security_descriptor.cc", 1865 "win/security_descriptor.h", 1866 "win/security_util.cc", 1867 "win/security_util.h", 1868 "win/shlwapi.h", 1869 "win/shortcut.cc", 1870 "win/shortcut.h", 1871 "win/sid.cc", 1872 "win/sid.h", 1873 "win/sphelper.h", 1874 "win/startup_information.cc", 1875 "win/startup_information.h", 1876 "win/variant_conversions.h", 1877 "win/variant_vector.cc", 1878 "win/variant_vector.h", 1879 "win/vector.cc", 1880 "win/vector.h", 1881 "win/win_handle_types.h", 1882 "win/win_handle_types_list.inc", 1883 "win/win_util.cc", 1884 "win/win_util.h", 1885 "win/wincrypt_shim.h", 1886 "win/window_enumerator.cc", 1887 "win/window_enumerator.h", 1888 "win/windows_defines.inc", 1889 "win/windows_h_disallowed.h", 1890 "win/windows_types.h", 1891 "win/windows_undefines.inc", 1892 "win/windows_version.cc", 1893 "win/windows_version.h", 1894 "win/windowsx_shim.h", 1895 "win/winrt_foundation_helpers.h", 1896 "win/winrt_storage_util.cc", 1897 "win/winrt_storage_util.h", 1898 "win/wmi.cc", 1899 "win/wmi.h", 1900 "win/wrapped_window_proc.cc", 1901 "win/wrapped_window_proc.h", 1902 ] 1903 1904 deps += [ "//base/win:base_win_buildflags" ] 1905 1906 if (com_init_check_hook_disabled) { 1907 defines += [ "COM_INIT_CHECK_HOOK_DISABLED" ] 1908 } 1909 1910 libs += [ 1911 "cfgmgr32.lib", 1912 "ntdll.lib", 1913 "onecore.lib", 1914 "pdh.lib", 1915 "powrprof.lib", 1916 "propsys.lib", 1917 "setupapi.lib", 1918 "shcore.lib", 1919 "userenv.lib", 1920 "wbemuuid.lib", 1921 "winmm.lib", 1922 ] 1923 all_dependent_configs += [ 1924 ":base_win_linker_flags", 1925 "//tools/win/DebugVisualizers:chrome", 1926 ] 1927 inputs = [ 1928 # chrome.natvis listed as an input here instead of in 1929 # //tools/win/DebugVisualizers:chrome to prevent unnecessary size increase 1930 # in generated build files. 1931 "//tools/win/DebugVisualizers/chrome.natvis", 1932 ] 1933 } 1934 1935 if (!is_win) { 1936 sources += [ 1937 "file_descriptor_store.cc", 1938 "file_descriptor_store.h", 1939 ] 1940 } 1941 1942 # Mac or iOS. 1943 if (is_apple) { 1944 sources += [ 1945 "apple/backup_util.h", 1946 "apple/backup_util.mm", 1947 "apple/bridging.h", 1948 "apple/bundle_locations.h", 1949 "apple/bundle_locations.mm", 1950 "apple/call_with_eh_frame.cc", 1951 "apple/call_with_eh_frame.h", 1952 "apple/call_with_eh_frame_asm.S", 1953 "apple/dispatch_source_mach.cc", 1954 "apple/dispatch_source_mach.h", 1955 "apple/foundation_util.h", 1956 "apple/foundation_util.mm", 1957 "apple/mach_logging.cc", 1958 "apple/mach_logging.h", 1959 "apple/osstatus_logging.h", 1960 "apple/osstatus_logging.mm", 1961 "apple/owned_objc.h", 1962 "apple/owned_objc.mm", 1963 "apple/scoped_cffiledescriptorref.h", 1964 "apple/scoped_cftyperef.h", 1965 "apple/scoped_dispatch_object.h", 1966 "apple/scoped_mach_port.cc", 1967 "apple/scoped_mach_port.h", 1968 "apple/scoped_mach_vm.cc", 1969 "apple/scoped_mach_vm.h", 1970 "apple/scoped_nsautorelease_pool.h", 1971 "apple/scoped_nsautorelease_pool.mm", 1972 "apple/scoped_nsobject.h", 1973 "apple/scoped_objc_class_swizzler.h", 1974 "apple/scoped_objc_class_swizzler.mm", 1975 "apple/scoped_typeref.h", 1976 "file_version_info_apple.h", 1977 "file_version_info_apple.mm", 1978 "files/file_util_apple.mm", 1979 "memory/platform_shared_memory_mapper_apple.cc", 1980 "memory/platform_shared_memory_region_apple.cc", 1981 "message_loop/message_pump_apple.h", 1982 "message_loop/message_pump_apple.mm", 1983 "process/process_metrics_apple.cc", 1984 "profiler/module_cache_apple.cc", 1985 "strings/sys_string_conversions_apple.mm", 1986 "synchronization/waitable_event_apple.cc", 1987 "system/sys_info_apple.mm", 1988 "task/thread_pool/semaphore/semaphore_apple.cc", 1989 "threading/platform_thread_apple.mm", 1990 "time/time_apple.mm", 1991 ] 1992 frameworks += [ 1993 "CoreFoundation.framework", 1994 "CoreGraphics.framework", 1995 "CoreText.framework", 1996 "Foundation.framework", 1997 "Security.framework", 1998 ] 1999 } 2000 2001 # Desktop Mac. 2002 if (is_mac) { 2003 sources += [ 2004 "enterprise_util.cc", 2005 "enterprise_util.h", 2006 "enterprise_util_mac.mm", 2007 "files/file_path_watcher_fsevents.cc", 2008 "files/file_path_watcher_fsevents.h", 2009 "files/file_path_watcher_kqueue.cc", 2010 "files/file_path_watcher_kqueue.h", 2011 "files/file_path_watcher_mac.cc", 2012 "mac/authorization_util.h", 2013 "mac/authorization_util.mm", 2014 "mac/close_nocancel.cc", 2015 "mac/launch_application.h", 2016 "mac/launch_application.mm", 2017 "mac/launch_services_spi.h", 2018 "mac/launchd.cc", 2019 "mac/launchd.h", 2020 "mac/mac_util.h", 2021 "mac/mac_util.mm", 2022 "mac/mach_port_rendezvous.cc", 2023 "mac/mach_port_rendezvous.h", 2024 "mac/os_crash_dumps.cc", 2025 "mac/os_crash_dumps.h", 2026 "mac/scoped_aedesc.h", 2027 "mac/scoped_authorizationref.h", 2028 "mac/scoped_authorizationref.mm", 2029 "mac/scoped_ionotificationportref.h", 2030 "mac/scoped_ioobject.h", 2031 "mac/scoped_ioplugininterface.h", 2032 "mac/scoped_launch_data.h", 2033 "mac/scoped_mach_msg_destroy.h", 2034 "mac/scoped_sending_event.h", 2035 "mac/scoped_sending_event.mm", 2036 "message_loop/message_pump_kqueue.cc", 2037 "message_loop/message_pump_kqueue.h", 2038 "native_library_mac.mm", 2039 "power_monitor/battery_level_provider_mac.mm", 2040 "power_monitor/battery_state_sampler_mac.cc", 2041 "power_monitor/iopm_power_source_sampling_event_source.cc", 2042 "power_monitor/iopm_power_source_sampling_event_source.h", 2043 "power_monitor/power_monitor_device_source_mac.mm", 2044 "power_monitor/thermal_state_observer_mac.h", 2045 "power_monitor/thermal_state_observer_mac.mm", 2046 "process/kill_mac.cc", 2047 "process/launch_mac.cc", 2048 "process/memory_mac.mm", 2049 "process/port_provider_mac.cc", 2050 "process/port_provider_mac.h", 2051 "process/process_handle_mac.cc", 2052 "process/process_info_mac.cc", 2053 "process/process_iterator_mac.cc", 2054 "process/process_mac.cc", 2055 "process/process_metrics_mac.cc", 2056 "profiler/frame_pointer_unwinder.cc", 2057 "profiler/frame_pointer_unwinder.h", 2058 "profiler/stack_sampler_mac.cc", 2059 "profiler/suspendable_thread_delegate_mac.cc", 2060 "profiler/suspendable_thread_delegate_mac.h", 2061 "synchronization/waitable_event_watcher_mac.cc", 2062 "system/sys_info_mac.mm", 2063 "time/time_exploded_posix.cc", 2064 ] 2065 2066 libs += [ 2067 "bsm", 2068 "pmenergy", 2069 "pmsample", 2070 ] 2071 frameworks += [ 2072 "ApplicationServices.framework", 2073 "AppKit.framework", 2074 "CoreFoundation.framework", 2075 "IOKit.framework", 2076 "OpenDirectory.framework", 2077 ] 2078 } 2079 2080 # iOS 2081 if (is_ios) { 2082 sources += [ 2083 "base_paths_ios.h", 2084 "base_paths_ios.mm", 2085 "critical_closure_internal_ios.mm", 2086 "ios/block_types.h", 2087 "ios/crb_protocol_observers.h", 2088 "ios/crb_protocol_observers.mm", 2089 "ios/device_util.h", 2090 "ios/device_util.mm", 2091 "ios/ios_util.h", 2092 "ios/ios_util.mm", 2093 "ios/ns_error_util.h", 2094 "ios/ns_error_util.mm", 2095 "ios/ns_range.h", 2096 "ios/scoped_critical_action.h", 2097 "ios/scoped_critical_action.mm", 2098 "native_library_ios.mm", 2099 "power_monitor/power_monitor_device_source_ios.mm", 2100 "process/process_metrics_ios.cc", 2101 "process/process_metrics_posix.cc", 2102 "profiler/stack_sampler_ios.cc", 2103 "system/sys_info_ios.mm", 2104 ] 2105 2106 if (use_blink) { 2107 sources += [ 2108 "files/file_path_watcher_kqueue.cc", 2109 "files/file_path_watcher_kqueue.h", 2110 "files/file_path_watcher_mac.cc", 2111 "ios/sim_header_shims.h", 2112 "mac/mach_port_rendezvous.cc", 2113 "mac/mach_port_rendezvous.h", 2114 "process/kill_mac.cc", 2115 "process/launch_mac.cc", 2116 "process/memory_mac.mm", 2117 "process/port_provider_mac.cc", 2118 "process/port_provider_mac.h", 2119 "process/process_handle_mac.cc", 2120 "process/process_iterator_mac.cc", 2121 "process/process_mac.cc", 2122 "process/process_posix.cc", 2123 "sync_socket_posix.cc", 2124 "synchronization/waitable_event_watcher_mac.cc", 2125 ] 2126 libs += [ "bsm" ] 2127 } else { 2128 sources += [ 2129 "process/launch_ios.cc", 2130 "process/memory_stubs.cc", 2131 "process/process_stubs.cc", 2132 ] 2133 } 2134 2135 if (is_cronet_build) { 2136 sources += [ 2137 "message_loop/message_pump_io_ios.cc", 2138 "message_loop/message_pump_io_ios.h", 2139 ] 2140 } else { 2141 sources += [ 2142 "message_loop/message_pump_kqueue.cc", 2143 "message_loop/message_pump_kqueue.h", 2144 ] 2145 } 2146 2147 if (ios_stack_profiler_enabled) { 2148 sources += [ 2149 "profiler/frame_pointer_unwinder.cc", 2150 "profiler/frame_pointer_unwinder.h", 2151 "profiler/suspendable_thread_delegate_mac.cc", 2152 "profiler/suspendable_thread_delegate_mac.h", 2153 ] 2154 } 2155 if (!use_allocator_shim) { 2156 sources -= [ 2157 "sampling_heap_profiler/poisson_allocation_sampler.cc", 2158 "sampling_heap_profiler/poisson_allocation_sampler.h", 2159 "sampling_heap_profiler/sampling_heap_profiler.cc", 2160 "sampling_heap_profiler/sampling_heap_profiler.h", 2161 ] 2162 } 2163 2164 if (current_cpu == "x64" || current_cpu == "arm64") { 2165 sources += [ "time/time_exploded_posix.cc" ] 2166 } else { 2167 sources += [ "time/time_exploded_ios.cc" ] 2168 } 2169 2170 frameworks += [ 2171 "Foundation.framework", 2172 "UIKit.framework", 2173 ] 2174 } 2175 2176 # Linux. 2177 if (is_linux || is_chromeos) { 2178 # TODO(brettw) this will need to be parameterized at some point. 2179 linux_configs = [] 2180 if (use_glib) { 2181 linux_configs += [ "//build/config/linux:glib" ] 2182 } 2183 2184 configs += linux_configs 2185 all_dependent_configs += linux_configs 2186 sources += [ "system/sys_info_linux.cc" ] 2187 if (!is_cronet_build) { 2188 # These dependencies are not required on Android. 2189 sources += [ 2190 "nix/mime_util_xdg.cc", 2191 "nix/mime_util_xdg.h", 2192 "nix/xdg_util.cc", 2193 "nix/xdg_util.h", 2194 ] 2195 defines += [ "USE_SYMBOLIZE" ] 2196 deps += [ 2197 "//base/third_party/symbolize", 2198 "//base/third_party/xdg_user_dirs", 2199 ] 2200 } 2201 } else { 2202 if (!is_android) { 2203 sources -= [ 2204 "linux_util.cc", 2205 "linux_util.h", 2206 ] 2207 } 2208 } 2209 2210 if (use_blink) { 2211 sources += [ 2212 "files/file_path_watcher.cc", 2213 "files/file_path_watcher.h", 2214 "sync_socket.cc", 2215 "sync_socket.h", 2216 ] 2217 } 2218 2219 if (dep_libevent) { 2220 deps += [ "//third_party/libevent" ] 2221 } 2222 2223 if (use_libevent) { 2224 sources += [ 2225 "message_loop/message_pump_libevent.cc", 2226 "message_loop/message_pump_libevent.h", 2227 ] 2228 } 2229 2230 if (enable_message_pump_epoll) { 2231 sources += [ 2232 "message_loop/message_pump_epoll.cc", 2233 "message_loop/message_pump_epoll.h", 2234 ] 2235 } 2236 2237 # Android and MacOS have their own custom shared memory handle 2238 # implementations. e.g. due to supporting both POSIX and native handles. 2239 if (is_posix && !is_android && !is_apple) { 2240 sources += [ 2241 "memory/platform_shared_memory_mapper_posix.cc", 2242 "memory/platform_shared_memory_region_posix.cc", 2243 ] 2244 } 2245 2246 if (is_posix && !is_apple) { 2247 sources += [ 2248 "strings/sys_string_conversions_posix.cc", 2249 "synchronization/waitable_event_posix.cc", 2250 "synchronization/waitable_event_watcher_posix.cc", 2251 "threading/platform_thread_internal_posix.cc", 2252 "threading/platform_thread_internal_posix.h", 2253 "time/time_exploded_posix.cc", 2254 "time/time_now_posix.cc", 2255 ] 2256 2257 # TODO(b/167763382) Find an alternate solution for Chromecast devices, since 2258 # adding the icui18n and icuuc deps significantly increases the binary size. 2259 if (!is_castos && !is_cast_android) { 2260 sources += [ "time/time_exploded_icu.cc" ] 2261 2262 # The ICU dependency is only needed on systems with a 32-bit time_t. 2263 # However, that cannot be determined from build variables, like 2264 # |current_cpu|, since some 32-bit systems have a 64-bit time_t (and vice 2265 # versa). Thus, the dependency is taken here for all POSIX platforms and 2266 # the compiler+linker should be able to easily detect when the ICU 2267 # routines will not be called and delete them in the final linking. 2268 deps += [ 2269 "//third_party/icu:icui18n", 2270 "//third_party/icu:icuuc", 2271 ] 2272 } 2273 } 2274 2275 if ((is_posix && !is_apple && !is_android) || is_fuchsia) { 2276 sources += [ "profiler/stack_sampler_posix.cc" ] 2277 } 2278 2279 if ((is_posix && !is_apple && !is_android && !is_chromeos) || is_fuchsia) { 2280 sources += [ "power_monitor/power_monitor_device_source_stub.cc" ] 2281 } 2282 2283 # On ARC++-enabled ChromeOS system, we need TimeTicks::FromUptimeMillis to 2284 # interpret time values sent from Android container. 2285 if (is_android || is_chromeos_ash) { 2286 sources += [ "time/time_android.cc" ] 2287 } 2288 2289 if (use_glib) { 2290 sources += [ 2291 "message_loop/message_pump_glib.cc", 2292 "message_loop/message_pump_glib.h", 2293 ] 2294 } 2295 2296 if (enable_base_tracing) { 2297 sources += [ 2298 "trace_event/auto_open_close_event.h", 2299 "trace_event/builtin_categories.cc", 2300 "trace_event/builtin_categories.h", 2301 "trace_event/category_registry.cc", 2302 "trace_event/category_registry.h", 2303 "trace_event/heap_profiler.h", 2304 "trace_event/interned_args_helper.cc", 2305 "trace_event/interned_args_helper.h", 2306 "trace_event/log_message.cc", 2307 "trace_event/log_message.h", 2308 "trace_event/malloc_dump_provider.cc", 2309 "trace_event/malloc_dump_provider.h", 2310 "trace_event/memory_allocator_dump.cc", 2311 "trace_event/memory_allocator_dump.h", 2312 "trace_event/memory_dump_manager.cc", 2313 "trace_event/memory_dump_manager.h", 2314 "trace_event/memory_dump_manager_test_utils.h", 2315 "trace_event/memory_dump_provider.h", 2316 "trace_event/memory_dump_provider_info.cc", 2317 "trace_event/memory_dump_provider_info.h", 2318 "trace_event/memory_dump_request_args.cc", 2319 "trace_event/memory_dump_request_args.h", 2320 "trace_event/memory_dump_scheduler.cc", 2321 "trace_event/memory_dump_scheduler.h", 2322 "trace_event/memory_infra_background_allowlist.cc", 2323 "trace_event/memory_infra_background_allowlist.h", 2324 "trace_event/memory_pressure_level_proto.cc", 2325 "trace_event/memory_pressure_level_proto.h", 2326 "trace_event/memory_usage_estimator.cc", 2327 "trace_event/memory_usage_estimator.h", 2328 "trace_event/optional_trace_event.h", 2329 "trace_event/process_memory_dump.cc", 2330 "trace_event/process_memory_dump.h", 2331 "trace_event/trace_arguments.cc", 2332 "trace_event/trace_arguments.h", 2333 "trace_event/trace_buffer.cc", 2334 "trace_event/trace_buffer.h", 2335 "trace_event/trace_category.h", 2336 "trace_event/trace_config.cc", 2337 "trace_event/trace_config.h", 2338 "trace_event/trace_config_category_filter.cc", 2339 "trace_event/trace_config_category_filter.h", 2340 "trace_event/trace_conversion_helper.h", 2341 "trace_event/trace_event.h", 2342 "trace_event/trace_event_impl.cc", 2343 "trace_event/trace_event_impl.h", 2344 "trace_event/trace_event_memory_overhead.cc", 2345 "trace_event/trace_event_memory_overhead.h", 2346 "trace_event/trace_log.cc", 2347 "trace_event/trace_log.h", 2348 "trace_event/trace_log_constants.cc", 2349 "trace_event/traced_value.cc", 2350 "trace_event/traced_value.h", 2351 "trace_event/traced_value_support.h", 2352 "trace_event/tracing_agent.cc", 2353 "trace_event/tracing_agent.h", 2354 "trace_event/typed_macros.h", 2355 "trace_event/typed_macros_embedder_support.h", 2356 "trace_event/typed_macros_internal.cc", 2357 "trace_event/typed_macros_internal.h", 2358 "tracing/perfetto_platform.cc", 2359 "tracing/perfetto_platform.h", 2360 "tracing/perfetto_task_runner.cc", 2361 "tracing/perfetto_task_runner.h", 2362 "tracing/trace_time.cc", 2363 "tracing/trace_time.h", 2364 "tracing/tracing_tls.cc", 2365 "tracing/tracing_tls.h", 2366 ] 2367 2368 public_deps += [ 2369 "//base/tracing/protos:chrome_track_event_zero", 2370 "//third_party/perfetto:libperfetto", 2371 ] 2372 2373 deps += [ 2374 "//base/tracing/protos:chrome_track_event", 2375 "//third_party/perfetto/include/perfetto/protozero", 2376 ] 2377 2378 all_dependent_configs += [ 2379 ":perfetto_config", 2380 "//third_party/perfetto/gn:public_config", 2381 ] 2382 2383 if (is_win) { 2384 sources += [ 2385 "trace_event/trace_event_etw_export_win.cc", 2386 "trace_event/trace_event_etw_export_win.h", 2387 "trace_event/trace_logging_minimal_win.cc", 2388 "trace_event/trace_logging_minimal_win.h", 2389 ] 2390 if (use_perfetto_client_library) { 2391 sources += [ 2392 "trace_event/etw_interceptor_win.cc", 2393 "trace_event/etw_interceptor_win.h", 2394 ] 2395 } 2396 } 2397 2398 if (is_android) { 2399 sources += [ 2400 "trace_event/application_state_proto_android.cc", 2401 "trace_event/application_state_proto_android.h", 2402 "trace_event/cpufreq_monitor_android.cc", 2403 "trace_event/cpufreq_monitor_android.h", 2404 "trace_event/java_heap_dump_provider_android.cc", 2405 "trace_event/java_heap_dump_provider_android.h", 2406 ] 2407 } 2408 2409 if (use_partition_alloc_as_malloc) { 2410 sources += [ 2411 "trace_event/address_space_dump_provider.cc", 2412 "trace_event/address_space_dump_provider.h", 2413 ] 2414 } 2415 } else { 2416 sources += [ 2417 "trace_event/trace_event_stub.cc", 2418 "trace_event/trace_event_stub.h", 2419 ] 2420 } 2421 2422 if (using_sanitizer && !is_fuchsia) { 2423 data += [ "//tools/valgrind/asan/" ] 2424 data_deps += 2425 [ "//build/config/clang:llvm-symbolizer_data($host_toolchain)" ] 2426 } 2427 2428 if (!is_debug) { 2429 configs -= [ "//build/config/compiler:default_optimization" ] 2430 configs += [ "//build/config/compiler:optimize_max" ] 2431 } 2432} 2433 2434# Build flags for Control Flow Integrity 2435# https://www.chromium.org/developers/testing/control-flow-integrity 2436buildflag_header("cfi_buildflags") { 2437 header = "cfi_buildflags.h" 2438 2439 flags = [ 2440 # TODO(pcc): remove CFI_CAST_CHECK, see https://crbug.com/626794. 2441 "CFI_CAST_CHECK=$is_cfi && $use_cfi_cast", 2442 "CFI_DIAG=$is_cfi && $use_cfi_diag", 2443 "CFI_ICALL_CHECK=$is_cfi && $use_cfi_icall", 2444 "CFI_ENFORCEMENT_TRAP=$is_cfi && !$use_cfi_diag", 2445 "CFI_ENFORCEMENT_DIAGNOSTIC=$is_cfi && $use_cfi_diag && !$use_cfi_recover", 2446 ] 2447} 2448 2449buildflag_header("debugging_buildflags") { 2450 header = "debugging_buildflags.h" 2451 header_dir = "base/debug" 2452 enable_gdbinit_warning = 2453 is_debug && (strip_absolute_paths_from_debug_symbols || use_custom_libcxx) 2454 enable_lldbinit_warning = 2455 is_debug && strip_absolute_paths_from_debug_symbols && is_mac 2456 2457 # TODO(crbug.com/1420774): Try and enable these checks on Android too. 2458 enable_commandline_sequence_checks = 2459 (is_debug || dcheck_always_on) && !is_android 2460 2461 flags = [ 2462 "DCHECK_IS_CONFIGURABLE=$dcheck_is_configurable", 2463 "ENABLE_PROFILING=$enable_profiling", 2464 "CAN_UNWIND_WITH_FRAME_POINTERS=$can_unwind_with_frame_pointers", 2465 "UNSAFE_DEVELOPER_BUILD=$is_unsafe_developer_build", 2466 "CAN_UNWIND_WITH_CFI_TABLE=$can_unwind_with_cfi_table", 2467 "EXCLUDE_UNWIND_TABLES=$exclude_unwind_tables", 2468 "ENABLE_GDBINIT_WARNING=$enable_gdbinit_warning", 2469 "ENABLE_LLDBINIT_WARNING=$enable_lldbinit_warning", 2470 "EXPENSIVE_DCHECKS_ARE_ON=$enable_expensive_dchecks", 2471 "ENABLE_STACK_TRACE_LINE_NUMBERS=$enable_stack_trace_line_numbers", 2472 "ENABLE_COMMANDLINE_SEQUENCE_CHECKS=$enable_commandline_sequence_checks", 2473 "ENABLE_ALLOCATION_STACK_TRACE_RECORDER=$build_allocation_stack_trace_recorder", 2474 "ENABLE_ALLOCATION_TRACE_RECORDER_FULL_REPORTING=$build_allocation_trace_recorder_full_reporting", 2475 ] 2476} 2477 2478buildflag_header("feature_list_buildflags") { 2479 header = "feature_list_buildflags.h" 2480 2481 if (is_chromeos_ash) { 2482 flags = [ 2483 "ENABLE_BANNED_BASE_FEATURE_PREFIX=true", 2484 "BANNED_BASE_FEATURE_PREFIX=\"CrOSLateBoot\"", 2485 ] 2486 } else { 2487 flags = [ "ENABLE_BANNED_BASE_FEATURE_PREFIX=false" ] 2488 } 2489} 2490 2491buildflag_header("logging_buildflags") { 2492 header = "logging_buildflags.h" 2493 2494 flags = [ "ENABLE_LOG_ERROR_NOT_REACHED=$enable_log_error_not_reached" ] 2495} 2496 2497buildflag_header("orderfile_buildflags") { 2498 header = "orderfile_buildflags.h" 2499 header_dir = "base/android/orderfile" 2500 using_order_profiling = is_android && use_order_profiling 2501 using_devtools_dumping = 2502 is_android && devtools_instrumentation_dumping && enable_base_tracing 2503 2504 flags = [ 2505 "DEVTOOLS_INSTRUMENTATION_DUMPING=$using_devtools_dumping", 2506 "ORDERFILE_INSTRUMENTATION=$using_order_profiling", 2507 ] 2508} 2509 2510buildflag_header("synchronization_buildflags") { 2511 header = "synchronization_buildflags.h" 2512 header_dir = "base/synchronization" 2513 2514 flags = 2515 [ "ENABLE_MUTEX_PRIORITY_INHERITANCE=$enable_mutex_priority_inheritance" ] 2516} 2517 2518buildflag_header("anchor_functions_buildflags") { 2519 header = "anchor_functions_buildflags.h" 2520 header_dir = "base/android/library_loader" 2521 _supports_code_ordering = 2522 is_android && (current_cpu == "arm" || current_cpu == "arm64" || 2523 current_cpu == "x86" || current_cpu == "x64") 2524 2525 flags = [ 2526 "USE_LLD=$use_lld", 2527 "SUPPORTS_CODE_ORDERING=$_supports_code_ordering", 2528 ] 2529} 2530 2531buildflag_header("clang_profiling_buildflags") { 2532 header = "clang_profiling_buildflags.h" 2533 header_dir = "base" 2534 2535 flags = [ 2536 "CLANG_PROFILING=$use_clang_profiling", 2537 "CLANG_PROFILING_INSIDE_SANDBOX=$use_clang_profiling_inside_sandbox", 2538 "USE_CLANG_COVERAGE=$use_clang_coverage", 2539 ] 2540} 2541 2542buildflag_header("sanitizer_buildflags") { 2543 header = "sanitizer_buildflags.h" 2544 header_dir = "base" 2545 2546 flags = [ 2547 "IS_HWASAN=$is_hwasan", 2548 "USING_SANITIZER=$using_sanitizer", 2549 ] 2550} 2551 2552buildflag_header("tracing_buildflags") { 2553 header = "tracing_buildflags.h" 2554 2555 flags = [ 2556 "ENABLE_BASE_TRACING=$enable_base_tracing", 2557 "USE_PERFETTO_CLIENT_LIBRARY=$use_perfetto_client_library", 2558 "USE_PERFETTO_TRACE_PROCESSOR=$use_perfetto_trace_processor", 2559 "OPTIONAL_TRACE_EVENTS_ENABLED=$optional_trace_events_enabled", 2560 ] 2561} 2562 2563buildflag_header("profiler_buildflags") { 2564 header = "profiler_buildflags.h" 2565 header_dir = "base/profiler" 2566 2567 flags = [ 2568 "ENABLE_ARM_CFI_TABLE=$enable_arm_cfi_table", 2569 "IOS_STACK_PROFILER_ENABLED=$ios_stack_profiler_enabled", 2570 ] 2571} 2572 2573buildflag_header("power_monitor_buildflags") { 2574 header = "power_monitor_buildflags.h" 2575 header_dir = "base/power_monitor" 2576 _has_battery_provider_impl = is_win || is_mac 2577 2578 flags = [ "HAS_BATTERY_LEVEL_PROVIDER_IMPL=$_has_battery_provider_impl" ] 2579} 2580 2581buildflag_header("fuzzing_buildflags") { 2582 header = "fuzzing_buildflags.h" 2583 flags = [ "USE_FUZZING_ENGINE=$use_fuzzing_engine" ] 2584} 2585 2586# This is the subset of files from base that should not be used with a dynamic 2587# library. Note that this library cannot depend on base because base depends on 2588# base_static. 2589static_library("base_static") { 2590 sources = [ 2591 "base_export.h", 2592 "base_switches.cc", 2593 "base_switches.h", 2594 "immediate_crash.h", 2595 ] 2596 2597 deps = [ 2598 ":fuzzing_buildflags", 2599 "//build:chromeos_buildflags", 2600 ] 2601 2602 if (is_win) { 2603 sources += [ 2604 "win/static_constants.cc", 2605 "win/static_constants.h", 2606 ] 2607 2608 public_deps = [ "//base/win:pe_image" ] 2609 2610 # Disable sanitizer coverage in win/pe_image.cc. It is called by the sandbox 2611 # before sanitizer coverage can initialize. http://crbug.com/484711 2612 configs -= [ "//build/config/sanitizers:default_sanitizer_flags" ] 2613 configs += 2614 [ "//build/config/sanitizers:default_sanitizer_flags_but_coverage" ] 2615 } 2616 2617 if (!is_debug) { 2618 configs -= [ "//build/config/compiler:default_optimization" ] 2619 configs += [ "//build/config/compiler:optimize_max" ] 2620 } 2621} 2622 2623if (use_safe_libcxx && !is_debug) { 2624 # nodebug_assertion.cc has to be in its own source_set instead of being 2625 # included as a source in //base as otherwise its symbols won't be linked in 2626 # if they end up in an archive. 2627 source_set("nodebug_assertion") { 2628 defines = [ "BASE_IMPLEMENTATION" ] 2629 sources = [ "nodebug_assertion.cc" ] 2630 deps = [ ":base_static" ] 2631 } 2632} 2633 2634component("i18n") { 2635 output_name = "base_i18n" 2636 sources = [ 2637 "i18n/base_i18n_export.h", 2638 "i18n/base_i18n_switches.cc", 2639 "i18n/base_i18n_switches.h", 2640 "i18n/break_iterator.cc", 2641 "i18n/break_iterator.h", 2642 "i18n/case_conversion.cc", 2643 "i18n/case_conversion.h", 2644 "i18n/char_iterator.cc", 2645 "i18n/char_iterator.h", 2646 "i18n/character_encoding.cc", 2647 "i18n/character_encoding.h", 2648 "i18n/encoding_detection.cc", 2649 "i18n/encoding_detection.h", 2650 "i18n/file_util_icu.cc", 2651 "i18n/file_util_icu.h", 2652 "i18n/i18n_constants.cc", 2653 "i18n/i18n_constants.h", 2654 "i18n/icu_string_conversions.cc", 2655 "i18n/icu_string_conversions.h", 2656 "i18n/icu_util.cc", 2657 "i18n/icu_util.h", 2658 "i18n/message_formatter.cc", 2659 "i18n/message_formatter.h", 2660 "i18n/number_formatting.cc", 2661 "i18n/number_formatting.h", 2662 "i18n/rtl.cc", 2663 "i18n/rtl.h", 2664 "i18n/streaming_utf8_validator.cc", 2665 "i18n/streaming_utf8_validator.h", 2666 "i18n/string_compare.cc", 2667 "i18n/string_compare.h", 2668 "i18n/string_search.cc", 2669 "i18n/string_search.h", 2670 "i18n/time_formatting.cc", 2671 "i18n/time_formatting.h", 2672 "i18n/timezone.cc", 2673 "i18n/timezone.h", 2674 "i18n/unicodestring.h", 2675 "i18n/utf8_validator_tables.cc", 2676 "i18n/utf8_validator_tables.h", 2677 ] 2678 defines = [ "BASE_I18N_IMPLEMENTATION" ] 2679 configs += [ "//build/config/compiler:wexit_time_destructors" ] 2680 public_deps = [ 2681 ":base", 2682 "//third_party/ced", 2683 "//third_party/icu", 2684 ] 2685 deps = [ 2686 "//base/third_party/dynamic_annotations", 2687 "//build:chromecast_buildflags", 2688 "//build:chromeos_buildflags", 2689 ] 2690 2691 if (!is_debug) { 2692 configs -= [ "//build/config/compiler:default_optimization" ] 2693 configs += [ "//build/config/compiler:optimize_max" ] 2694 } 2695 2696 if (is_chromeos_lacros) { 2697 sources += [ 2698 "i18n/icu_mergeable_data_file.cc", 2699 "i18n/icu_mergeable_data_file.h", 2700 ] 2701 } 2702 2703 if (is_mac) { 2704 frameworks = [ "CoreFoundation.framework" ] 2705 } 2706} 2707 2708executable("containers_memory_benchmark") { 2709 sources = [ "containers/containers_memory_benchmark.cc" ] 2710 deps = [ ":base" ] 2711 testonly = true 2712} 2713 2714test("base_perftests") { 2715 sources = [ 2716 "big_endian_perftest.cc", 2717 "hash/hash_perftest.cc", 2718 "json/json_perftest.cc", 2719 "message_loop/message_pump_perftest.cc", 2720 "observer_list_perftest.cc", 2721 "rand_util_perftest.cc", 2722 "strings/string_util_perftest.cc", 2723 "substring_set_matcher/substring_set_matcher_perftest.cc", 2724 "synchronization/lock_perftest.cc", 2725 "synchronization/waitable_event_perftest.cc", 2726 "task/job_perftest.cc", 2727 "task/sequence_manager/sequence_manager_perftest.cc", 2728 "task/thread_pool/thread_pool_perftest.cc", 2729 "threading/counter_perftest.cc", 2730 "threading/thread_local_storage_perftest.cc", 2731 "threading/thread_perftest.cc", 2732 "types/expected_macros_perftest.cc", 2733 ] 2734 2735 deps = [ 2736 ":base", 2737 ":debugging_buildflags", 2738 "//base/test:test_support", 2739 "//base/test:test_support_perf", 2740 "//testing/gtest", 2741 "//testing/perf", 2742 "//third_party/google_benchmark", 2743 ] 2744 2745 if (use_partition_alloc) { 2746 sources += [ 2747 "allocator/partition_allocator/src/partition_alloc/partition_alloc_perftest.cc", 2748 "allocator/partition_allocator/src/partition_alloc/partition_lock_perftest.cc", 2749 ] 2750 deps += [ ":partition_alloc_test_support" ] 2751 } 2752 2753 data_deps = [ 2754 # Needed for isolate script to execute. 2755 "//testing:run_perf_test", 2756 ] 2757 2758 if (is_android) { 2759 deps += [ "//testing/android/native_test:native_test_native_code" ] 2760 shard_timeout = 600 2761 } 2762 2763 if (is_fuchsia) { 2764 # Run these performance tests against the actual system. 2765 run_as_chromium_system_test = true 2766 } 2767 2768 if (!is_official_build) { 2769 # The extra data tables required by stack traces are turned off for official 2770 # build, only do stack trace perftest for unofficial build 2771 sources += [ "debug/stack_trace_perftest.cc" ] 2772 } 2773 2774 if (build_allocation_stack_trace_recorder) { 2775 sources += [ "debug/allocation_trace_perftest.cc" ] 2776 } 2777} 2778 2779test("base_i18n_perftests") { 2780 sources = [ "i18n/streaming_utf8_validator_perftest.cc" ] 2781 deps = [ 2782 ":base", 2783 ":i18n", 2784 "//base/test:test_support", 2785 "//base/test:test_support_perf", 2786 "//testing/gtest", 2787 ] 2788} 2789 2790if (!is_ios) { 2791 executable("build_utf8_validator_tables") { 2792 sources = [ "i18n/build_utf8_validator_tables.cc" ] 2793 deps = [ 2794 ":base", 2795 "//build/win:default_exe_manifest", 2796 "//third_party/icu:icuuc", 2797 ] 2798 } 2799 2800 executable("check_example") { 2801 sources = [ "check_example.cc" ] 2802 deps = [ 2803 ":base", 2804 "//build/win:default_exe_manifest", 2805 ] 2806 } 2807 2808 executable("json_perftest_decodebench") { 2809 sources = [ "json/json_perftest_decodebench.cc" ] 2810 deps = [ ":base" ] 2811 } 2812} 2813 2814if (is_win) { 2815 # Target to manually rebuild pe_image_test.dll which is checked into 2816 # base/test/data/pe_image. 2817 shared_library("pe_image_test") { 2818 sources = [ "win/pe_image_test.cc" ] 2819 ldflags = [ 2820 "/DELAYLOAD:cfgmgr32.dll", 2821 "/DELAYLOAD:shell32.dll", 2822 "/SUBSYSTEM:WINDOWS", 2823 ] 2824 libs = [ 2825 "cfgmgr32.lib", 2826 "shell32.lib", 2827 ] 2828 } 2829 2830 loadable_module("scoped_handle_test_dll") { 2831 sources = [ "win/scoped_handle_test_dll.cc" ] 2832 deps = [ 2833 ":base", 2834 "//base/win:base_win_buildflags", 2835 ] 2836 } 2837} 2838 2839if ((is_win && (current_cpu == "x64" || current_cpu == "arm64")) || is_mac || 2840 (is_android && (current_cpu == "arm" || current_cpu == "arm64")) || 2841 (is_chromeos && current_cpu == "x64")) { 2842 # Must be a loadable module so that it can be loaded/unloaded at runtime 2843 # during testing. 2844 loadable_module("base_profiler_test_support_library") { 2845 testonly = true 2846 sources = [ "profiler/test_support_library.cc" ] 2847 } 2848} 2849 2850if (is_android && (current_cpu == "arm" || current_cpu == "arm64")) { 2851 # Use separate library for 2852 # |LibunwindstackUnwinderAndroidTest.ReparsesMapsOnNewDynamicLibraryLoad| 2853 # testcase. We can't use the existing `base_profiler_test_support_library` 2854 # library for this test since this gets loaded by other tests and unloading 2855 # a library in Android doesn't guarantee it will actually be unloaded. 2856 # And in the test we would like to observe the change in /proc/self/maps 2857 # on loading a dynamic library. 2858 loadable_module("base_profiler_reparsing_test_support_library") { 2859 testonly = true 2860 sources = [ "profiler/test_support_library.cc" ] 2861 } 2862} 2863 2864if (is_android) { 2865 source_set("native_unwinder_android") { 2866 # This target is intended to be used only within the stack_unwinder dynamic 2867 # feature module, to avoid binary size increase in Chrome due to the 2868 # libunwindstack dependency. The additional :* visibility is needed to allow 2869 # use by base test targets. 2870 visibility = [ 2871 ":*", 2872 "//chrome/android/modules/stack_unwinder/internal:*", 2873 ] 2874 sources = [ 2875 "profiler/libunwindstack_unwinder_android.cc", 2876 "profiler/libunwindstack_unwinder_android.h", 2877 "profiler/native_unwinder_android.cc", 2878 "profiler/native_unwinder_android.h", 2879 "profiler/native_unwinder_android_memory_regions_map_impl.cc", 2880 "profiler/native_unwinder_android_memory_regions_map_impl.h", 2881 ] 2882 2883 public_deps = [ 2884 ":base", 2885 "//third_party/libunwindstack", 2886 ] 2887 } 2888} 2889 2890source_set("base_stack_sampling_profiler_test_util") { 2891 testonly = true 2892 sources = [ 2893 "profiler/stack_sampling_profiler_test_util.cc", 2894 "profiler/stack_sampling_profiler_test_util.h", 2895 ] 2896 deps = [ 2897 ":base", 2898 "//base/test:test_support", 2899 "//testing/gtest", 2900 ] 2901 if (is_android) { 2902 sources += [ 2903 "profiler/stack_sampling_profiler_java_test_util.cc", 2904 "profiler/stack_sampling_profiler_java_test_util.h", 2905 ] 2906 deps += [ 2907 ":base_profiler_test_support_jni", 2908 ":native_unwinder_android", 2909 ] 2910 } 2911} 2912 2913if (is_apple) { 2914 bundle_data("base_unittests_bundle_data") { 2915 testonly = true 2916 sources = [ 2917 "//tools/metrics/histograms/enums.xml", 2918 "test/data/file_util/binary_file.bin", 2919 "test/data/file_util/binary_file_diff.bin", 2920 "test/data/file_util/binary_file_same.bin", 2921 "test/data/file_util/blank_line.txt", 2922 "test/data/file_util/blank_line_crlf.txt", 2923 "test/data/file_util/crlf.txt", 2924 "test/data/file_util/different.txt", 2925 "test/data/file_util/different_first.txt", 2926 "test/data/file_util/different_last.txt", 2927 "test/data/file_util/empty1.txt", 2928 "test/data/file_util/empty2.txt", 2929 "test/data/file_util/first1.txt", 2930 "test/data/file_util/first2.txt", 2931 "test/data/file_util/original.txt", 2932 "test/data/file_util/same.txt", 2933 "test/data/file_util/same_length.txt", 2934 "test/data/file_util/shortened.txt", 2935 "test/data/json/bom_feff.json", 2936 "test/data/pe_image_reader/signed.exe", 2937 "test/data/serializer_nested_test.json", 2938 "test/data/serializer_test.json", 2939 "test/data/serializer_test_nowhitespace.json", 2940 ] 2941 outputs = [ "{{bundle_resources_dir}}/" + 2942 "{{source_root_relative_dir}}/{{source_file_part}}" ] 2943 } 2944} 2945 2946# Generated file whose location is verified in DIR_GEN_TEST_DATA_ROOT test. 2947generated_file("generate_file_for_test") { 2948 testonly = true 2949 outputs = [ "$target_gen_dir/generated_file_for_test.txt" ] 2950 data = [ "$target_gen_dir/generated_file_for_test.txt" ] 2951 contents = "Hello world" 2952} 2953 2954if (is_ios) { 2955 bundle_data("base_test_proto_bundle_data") { 2956 testonly = true 2957 public_deps = [ "//base/test:test_proto_descriptor" ] 2958 sources = [ "$root_gen_dir/base/test/test_proto.descriptor" ] 2959 outputs = [ "{{bundle_resources_dir}}/gen/base/test/{{source_file_part}}" ] 2960 } 2961 2962 bundle_data("base_generated_test_file_bundle_data") { 2963 testonly = true 2964 public_deps = [ ":generate_file_for_test" ] 2965 sources = [ "$target_gen_dir/generated_file_for_test.txt" ] 2966 outputs = [ "{{bundle_resources_dir}}/gen/base/{{source_file_part}}" ] 2967 } 2968} 2969 2970if (is_apple) { 2971 source_set("base_unittests_noarc") { 2972 testonly = true 2973 sources = [ "apple/scoped_nsobject_unittest.mm" ] 2974 2975 # Do not compile with ARC because this target has tests for code that does 2976 # not compile with ARC. 2977 configs -= [ "//build/config/compiler:enable_arc" ] 2978 deps = [ 2979 ":base", 2980 "//base/test:test_support", 2981 "//testing/gtest", 2982 ] 2983 } 2984} 2985 2986if (!is_nacl && (is_linux || is_chromeos)) { 2987 # This test must compile with -fstack-protector-all 2988 source_set("stack_canary_linux_unittests") { 2989 testonly = true 2990 2991 sources = [ "stack_canary_linux_unittest.cc" ] 2992 cflags = [ "-fstack-protector-all" ] 2993 2994 deps = [ 2995 "//base", 2996 "//testing/gtest", 2997 ] 2998 } 2999} 3000 3001if (is_fuchsia) { 3002 fidl_library("testfidl") { 3003 library_name = "base.testfidl" 3004 3005 sources = [ "fuchsia/test.test-fidl" ] 3006 } 3007 3008 # TODO(crbug.com/1416553): remove this once all users are migrated to natural bindings. 3009 source_set("test_interface_impl") { 3010 testonly = true 3011 sources = [ 3012 "fuchsia/test_interface_impl.cc", 3013 "fuchsia/test_interface_impl.h", 3014 ] 3015 deps = [ 3016 ":base", 3017 "//testing/gtest", 3018 ] 3019 public_deps = [ 3020 ":testfidl_hlcpp", 3021 "//third_party/fuchsia-sdk/sdk/pkg/fidl_cpp", 3022 "//third_party/fuchsia-sdk/sdk/pkg/zx", 3023 ] 3024 } 3025 3026 source_set("test_interface_natural_impl") { 3027 testonly = true 3028 public = [ "fuchsia/test_interface_natural_impl.h" ] 3029 sources = [ "fuchsia/test_interface_natural_impl.cc" ] 3030 deps = [ 3031 ":base", 3032 "//testing/gtest", 3033 "//third_party/fuchsia-sdk/sdk/pkg/async", 3034 ] 3035 public_deps = [ 3036 ":testfidl_cpp", 3037 "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.io:fuchsia.io_cpp_common", 3038 "//third_party/fuchsia-sdk/sdk/pkg/fidl_cpp_wire", 3039 "//third_party/fuchsia-sdk/sdk/pkg/sys_cpp", 3040 ] 3041 } 3042 3043 source_set("test_log_listener_safe") { 3044 testonly = true 3045 sources = [ 3046 "fuchsia/test_log_listener_safe.cc", 3047 "fuchsia/test_log_listener_safe.h", 3048 ] 3049 deps = [ 3050 ":base", 3051 "//base/test:test_support", 3052 "//testing/gtest", 3053 ] 3054 public_deps = [ 3055 "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.logger:fuchsia.logger_hlcpp", 3056 ] 3057 } 3058} 3059 3060source_set("arm_bti_testfunctions") { 3061 testonly = true 3062 3063 sources = [] 3064 3065 if (target_cpu == "arm64" && (is_linux || is_android)) { 3066 sources = [ 3067 "allocator/partition_allocator/src/partition_alloc/arm_bti_test_functions.S", 3068 "allocator/partition_allocator/src/partition_alloc/arm_bti_test_functions.h", 3069 ] 3070 } 3071} 3072 3073source_set("path_service_unittest") { 3074 testonly = true 3075 3076 sources = [ "path_service_unittest.cc" ] 3077 3078 deps = [ 3079 ":base", 3080 "//base/test:test_support", 3081 "//testing/gtest", 3082 ] 3083 3084 if (is_ios) { 3085 deps += [ ":base_generated_test_file_bundle_data" ] 3086 } else { 3087 data_deps = [ ":generate_file_for_test" ] 3088 } 3089} 3090 3091test("base_unittests") { 3092 sources = [ 3093 "allocator/dispatcher/dispatcher_unittest.cc", 3094 "allocator/dispatcher/initializer_unittest.cc", 3095 "allocator/dispatcher/internal/dispatcher_internal_unittest.cc", 3096 "allocator/dispatcher/testing/dispatcher_test.cc", 3097 "allocator/dispatcher/testing/dispatcher_test.h", 3098 "allocator/dispatcher/testing/observer_mock.h", 3099 "allocator/dispatcher/testing/tools.h", 3100 "allocator/dispatcher/tls_unittest.cc", 3101 "allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_test_support.h", 3102 "allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_unittest.cc", 3103 "allocator/partition_allocator/src/partition_alloc/pointers/raw_ref_unittest.cc", 3104 "at_exit_unittest.cc", 3105 "atomicops_unittest.cc", 3106 "auto_reset_unittest.cc", 3107 "barrier_callback_unittest.cc", 3108 "barrier_closure_unittest.cc", 3109 "base64_unittest.cc", 3110 "base64url_unittest.cc", 3111 "big_endian_unittest.cc", 3112 "bit_cast_unittest.cc", 3113 "bits_unittest.cc", 3114 "build_time_unittest.cc", 3115 "callback_list_unittest.cc", 3116 "cancelable_callback_unittest.cc", 3117 "check_is_test_unittest.cc", 3118 "check_unittest.cc", 3119 "command_line_unittest.cc", 3120 "component_export_unittest.cc", 3121 "containers/adapters_unittest.cc", 3122 "containers/buffer_iterator_unittest.cc", 3123 "containers/checked_iterators_unittest.cc", 3124 "containers/circular_deque_unittest.cc", 3125 "containers/contains_unittest.cc", 3126 "containers/enum_set_unittest.cc", 3127 "containers/erase_unittest.cc", 3128 "containers/extend_unittest.cc", 3129 "containers/fixed_flat_map_unittest.cc", 3130 "containers/fixed_flat_set_unittest.cc", 3131 "containers/flat_map_unittest.cc", 3132 "containers/flat_set_unittest.cc", 3133 "containers/flat_tree_unittest.cc", 3134 "containers/id_map_unittest.cc", 3135 "containers/intrusive_heap_unittest.cc", 3136 "containers/linked_list_unittest.cc", 3137 "containers/lru_cache_unittest.cc", 3138 "containers/map_util_unittest.cc", 3139 "containers/small_map_unittest.cc", 3140 "containers/span_unittest.cc", 3141 "containers/unique_ptr_adapters_unittest.cc", 3142 "containers/vector_buffer_unittest.cc", 3143 "cpu_unittest.cc", 3144 "debug/alias_unittest.cc", 3145 "debug/asan_service_unittest.cc", 3146 "debug/crash_logging_unittest.cc", 3147 "debug/debugger_unittest.cc", 3148 "debug/dump_without_crashing_unittest.cc", 3149 "debug/stack_trace_unittest.cc", 3150 "debug/task_trace_unittest.cc", 3151 "environment_unittest.cc", 3152 "feature_list_unittest.cc", 3153 "files/block_tests_writing_to_special_dirs_unittest.cc", 3154 "files/file_enumerator_unittest.cc", 3155 "files/file_error_or_unittest.cc", 3156 "files/file_path_unittest.cc", 3157 "files/file_path_watcher_unittest.cc", 3158 "files/file_proxy_unittest.cc", 3159 "files/file_unittest.cc", 3160 "files/file_util_unittest.cc", 3161 "files/important_file_writer_cleaner_unittest.cc", 3162 "files/important_file_writer_unittest.cc", 3163 "files/memory_mapped_file_unittest.cc", 3164 "files/safe_base_name_unittest.cc", 3165 "files/scoped_temp_dir_unittest.cc", 3166 "files/scoped_temp_file_unittest.cc", 3167 "functional/bind_unittest.cc", 3168 "functional/callback_helpers_unittest.cc", 3169 "functional/callback_unittest.cc", 3170 "functional/function_ref_unittest.cc", 3171 "functional/not_fn_unittest.cc", 3172 "functional/overloaded_unittest.cc", 3173 "gmock_unittest.cc", 3174 "hash/hash_unittest.cc", 3175 "hash/legacy_hash_unittest.cc", 3176 "hash/md5_constexpr_unittest.cc", 3177 "hash/md5_unittest.cc", 3178 "hash/sha1_unittest.cc", 3179 "i18n/break_iterator_unittest.cc", 3180 "i18n/case_conversion_unittest.cc", 3181 "i18n/char_iterator_unittest.cc", 3182 "i18n/character_encoding_unittest.cc", 3183 "i18n/file_util_icu_unittest.cc", 3184 "i18n/icu_string_conversions_unittest.cc", 3185 "i18n/icu_util_unittest.cc", 3186 "i18n/message_formatter_unittest.cc", 3187 "i18n/number_formatting_unittest.cc", 3188 "i18n/rtl_unittest.cc", 3189 "i18n/streaming_utf8_validator_unittest.cc", 3190 "i18n/string_search_unittest.cc", 3191 "i18n/time_formatting_unittest.cc", 3192 "i18n/timezone_unittest.cc", 3193 "i18n/transliterator_unittest.cc", 3194 "immediate_crash_unittest.cc", 3195 "json/json_parser_unittest.cc", 3196 "json/json_reader_unittest.cc", 3197 "json/json_value_converter_unittest.cc", 3198 "json/json_value_serializer_unittest.cc", 3199 "json/json_writer_unittest.cc", 3200 "json/string_escape_unittest.cc", 3201 "json/values_util_unittest.cc", 3202 "lazy_instance_unittest.cc", 3203 "logging_unittest.cc", 3204 "memory/aligned_memory_unittest.cc", 3205 "memory/discardable_memory_backing_field_trial_unittest.cc", 3206 "memory/discardable_shared_memory_unittest.cc", 3207 "memory/memory_pressure_listener_unittest.cc", 3208 "memory/platform_shared_memory_region_unittest.cc", 3209 "memory/ptr_util_unittest.cc", 3210 "memory/raw_ptr_asan_unittest.cc", 3211 "memory/raw_ptr_chromium_unittest.cc", 3212 "memory/raw_span_unittest.cc", 3213 "memory/ref_counted_memory_unittest.cc", 3214 "memory/ref_counted_unittest.cc", 3215 "memory/safe_ref_unittest.cc", 3216 "memory/safety_checks_unittest.cc", 3217 "memory/shared_memory_hooks_unittest.cc", 3218 "memory/shared_memory_mapping_unittest.cc", 3219 "memory/shared_memory_region_unittest.cc", 3220 "memory/singleton_unittest.cc", 3221 "memory/unsafe_shared_memory_pool_unittest.cc", 3222 "memory/values_equivalent_unittest.cc", 3223 "memory/weak_auto_reset_unittest.cc", 3224 "memory/weak_ptr_unittest.cc", 3225 "message_loop/message_pump_glib_unittest.cc", 3226 "message_loop/message_pump_unittest.cc", 3227 "message_loop/work_id_provider_unittest.cc", 3228 "metrics/bucket_ranges_unittest.cc", 3229 "metrics/crc32_unittest.cc", 3230 "metrics/field_trial_params_unittest.cc", 3231 "metrics/field_trial_unittest.cc", 3232 "metrics/histogram_base_unittest.cc", 3233 "metrics/histogram_delta_serialization_unittest.cc", 3234 "metrics/histogram_functions_unittest.cc", 3235 "metrics/histogram_macros_unittest.cc", 3236 "metrics/histogram_samples_unittest.cc", 3237 "metrics/histogram_shared_memory_unittest.cc", 3238 "metrics/histogram_snapshot_manager_unittest.cc", 3239 "metrics/histogram_threadsafe_unittest.cc", 3240 "metrics/histogram_unittest.cc", 3241 "metrics/metrics_hashes_unittest.cc", 3242 "metrics/persistent_histogram_allocator_unittest.cc", 3243 "metrics/persistent_histogram_storage_unittest.cc", 3244 "metrics/persistent_memory_allocator_unittest.cc", 3245 "metrics/persistent_sample_map_unittest.cc", 3246 "metrics/ranges_manager_unittest.cc", 3247 "metrics/sample_map_unittest.cc", 3248 "metrics/sample_vector_unittest.cc", 3249 "metrics/single_sample_metrics_unittest.cc", 3250 "metrics/sparse_histogram_unittest.cc", 3251 "metrics/statistics_recorder_starvation_unittest.cc", 3252 "metrics/statistics_recorder_unittest.cc", 3253 "moving_window_unittest.cc", 3254 "native_library_unittest.cc", 3255 "no_destructor_unittest.cc", 3256 "observer_list_threadsafe_unittest.cc", 3257 "observer_list_unittest.cc", 3258 "one_shot_event_unittest.cc", 3259 "parameter_pack_unittest.cc", 3260 "pickle_unittest.cc", 3261 "power_monitor/battery_level_provider_unittest.cc", 3262 "power_monitor/battery_state_sampler_unittest.cc", 3263 "power_monitor/power_monitor_device_source_unittest.cc", 3264 "power_monitor/power_monitor_unittest.cc", 3265 "power_monitor/timer_sampling_event_source_unittest.cc", 3266 "process/environment_internal_unittest.cc", 3267 "process/memory_unittest.cc", 3268 "process/process_metrics_unittest.cc", 3269 "process/process_unittest.cc", 3270 "process/process_util_unittest.cc", 3271 "profiler/metadata_recorder_unittest.cc", 3272 "profiler/module_cache_unittest.cc", 3273 "profiler/sample_metadata_unittest.cc", 3274 "profiler/stack_buffer_unittest.cc", 3275 "profiler/stack_copier_suspend_unittest.cc", 3276 "profiler/stack_copier_unittest.cc", 3277 "profiler/stack_sampler_unittest.cc", 3278 "profiler/stack_sampling_profiler_unittest.cc", 3279 "rand_util_unittest.cc", 3280 "ranges/algorithm_unittest.cc", 3281 "ranges/functional_unittest.cc", 3282 "ranges/ranges_unittest.cc", 3283 "run_loop_unittest.cc", 3284 "safe_numerics_unittest.cc", 3285 "sampling_heap_profiler/lock_free_address_hash_set_unittest.cc", 3286 "scoped_add_feature_flags_unittest.cc", 3287 "scoped_clear_last_error_unittest.cc", 3288 "scoped_generic_unittest.cc", 3289 "scoped_multi_source_observation_unittest.cc", 3290 "scoped_native_library_unittest.cc", 3291 "scoped_observation_unittest.cc", 3292 "security_unittest.cc", 3293 "sequence_checker_unittest.cc", 3294 "sequence_token_unittest.cc", 3295 "state_transitions_unittest.cc", 3296 "std_clamp_unittest.cc", 3297 "stl_util_unittest.cc", 3298 "strings/abseil_string_number_conversions_unittest.cc", 3299 "strings/escape_unittest.cc", 3300 "strings/levenshtein_distance_unittest.cc", 3301 "strings/no_trigraphs_unittest.cc", 3302 "strings/pattern_unittest.cc", 3303 "strings/safe_sprintf_unittest.cc", 3304 "strings/strcat_unittest.cc", 3305 "strings/string_number_conversions_unittest.cc", 3306 "strings/string_piece_unittest.cc", 3307 "strings/string_split_unittest.cc", 3308 "strings/string_tokenizer_unittest.cc", 3309 "strings/string_util_unittest.cc", 3310 "strings/stringize_macros_unittest.cc", 3311 "strings/stringprintf_unittest.cc", 3312 "strings/sys_string_conversions_unittest.cc", 3313 "strings/to_string_unittest.cc", 3314 "strings/utf_offset_string_conversions_unittest.cc", 3315 "strings/utf_string_conversion_utils_unittest.cc", 3316 "strings/utf_string_conversions_unittest.cc", 3317 "substring_set_matcher/string_pattern_unittest.cc", 3318 "substring_set_matcher/substring_set_matcher_unittest.cc", 3319 "supports_user_data_unittest.cc", 3320 "sync_socket_unittest.cc", 3321 "synchronization/atomic_flag_unittest.cc", 3322 "synchronization/condition_variable_unittest.cc", 3323 "synchronization/lock_unittest.cc", 3324 "synchronization/waitable_event_unittest.cc", 3325 "synchronization/waitable_event_watcher_unittest.cc", 3326 "sys_byteorder_unittest.cc", 3327 "system/sys_info_unittest.cc", 3328 "system/system_monitor_unittest.cc", 3329 "task/bind_post_task_unittest.cc", 3330 "task/cancelable_task_tracker_unittest.cc", 3331 "task/common/checked_lock_unittest.cc", 3332 "task/common/operations_controller_unittest.cc", 3333 "task/common/task_annotator_unittest.cc", 3334 "task/default_delayed_task_handle_delegate_unittest.cc", 3335 "task/deferred_sequenced_task_runner_unittest.cc", 3336 "task/delayed_task_handle_unittest.cc", 3337 "task/lazy_thread_pool_task_runner_unittest.cc", 3338 "task/post_job_unittest.cc", 3339 "task/scoped_set_task_priority_for_current_thread_unittest.cc", 3340 "task/sequence_manager/atomic_flag_set_unittest.cc", 3341 "task/sequence_manager/lazily_deallocated_deque_unittest.cc", 3342 "task/sequence_manager/sequence_manager_impl_unittest.cc", 3343 "task/sequence_manager/task_order_unittest.cc", 3344 "task/sequence_manager/task_queue_selector_unittest.cc", 3345 "task/sequence_manager/task_queue_unittest.cc", 3346 "task/sequence_manager/test/mock_time_message_pump_unittest.cc", 3347 "task/sequence_manager/thread_controller_power_monitor_unittest.cc", 3348 "task/sequence_manager/thread_controller_with_message_pump_impl_unittest.cc", 3349 "task/sequence_manager/wake_up_queue_unittest.cc", 3350 "task/sequence_manager/work_deduplicator_unittest.cc", 3351 "task/sequence_manager/work_queue_sets_unittest.cc", 3352 "task/sequence_manager/work_queue_unittest.cc", 3353 "task/sequenced_task_runner_unittest.cc", 3354 "task/single_thread_task_executor_unittest.cc", 3355 "task/single_thread_task_runner_unittest.cc", 3356 "task/task_runner_unittest.cc", 3357 "task/task_traits_unittest.cc", 3358 "task/thread_pool/can_run_policy_test.h", 3359 "task/thread_pool/delayed_priority_queue_unittest.cc", 3360 "task/thread_pool/delayed_task_manager_unittest.cc", 3361 "task/thread_pool/environment_config_unittest.cc", 3362 "task/thread_pool/job_task_source_unittest.cc", 3363 "task/thread_pool/pooled_single_thread_task_runner_manager_unittest.cc", 3364 "task/thread_pool/priority_queue_unittest.cc", 3365 "task/thread_pool/semaphore/semaphore_unittest.cc", 3366 "task/thread_pool/sequence_unittest.cc", 3367 "task/thread_pool/service_thread_unittest.cc", 3368 "task/thread_pool/task_source_sort_key_unittest.cc", 3369 "task/thread_pool/task_tracker_unittest.cc", 3370 "task/thread_pool/test_task_factory.cc", 3371 "task/thread_pool/test_task_factory.h", 3372 "task/thread_pool/test_utils.cc", 3373 "task/thread_pool/test_utils.h", 3374 "task/thread_pool/thread_group_impl_unittest.cc", 3375 "task/thread_pool/thread_group_unittest.cc", 3376 "task/thread_pool/thread_pool_impl_unittest.cc", 3377 "task/thread_pool/tracked_ref_unittest.cc", 3378 "task/thread_pool/worker_thread_set_unittest.cc", 3379 "task/thread_pool/worker_thread_waitable_event_unittest.cc", 3380 "task/thread_pool_unittest.cc", 3381 "template_util_unittest.cc", 3382 "test/gmock_callback_support_unittest.cc", 3383 "test/gmock_expected_support_unittest.cc", 3384 "test/gmock_move_support_unittest.cc", 3385 "test/gtest_links_unittest.cc", 3386 "test/gtest_tags_unittest.cc", 3387 "test/gtest_xml_unittest_result_printer_unittest.cc", 3388 "test/launcher/test_launcher_unittest.cc", 3389 "test/launcher/test_results_tracker_unittest.cc", 3390 "test/memory/dangling_ptr_instrumentation.cc", 3391 "test/memory/dangling_ptr_instrumentation.h", 3392 "test/metrics/histogram_enum_reader_unittest.cc", 3393 "test/metrics/histogram_tester_unittest.cc", 3394 "test/metrics/user_action_tester_unittest.cc", 3395 "test/mock_callback_unittest.cc", 3396 "test/rectify_callback_unittest.cc", 3397 "test/repeating_test_future_unittest.cc", 3398 "test/run_until_unittest.cc", 3399 "test/scoped_feature_list_unittest.cc", 3400 "test/scoped_logging_settings.h", 3401 "test/scoped_mock_clock_override_unittest.cc", 3402 "test/scoped_mock_time_message_loop_task_runner_unittest.cc", 3403 "test/scoped_run_loop_timeout_unittest.cc", 3404 "test/task_environment_unittest.cc", 3405 "test/test_future_unittest.cc", 3406 "test/test_mock_time_task_runner_unittest.cc", 3407 "test/test_pending_task_unittest.cc", 3408 "test/test_proto_loader_unittest.cc", 3409 "test/test_waitable_event_unittest.cc", 3410 "test/to_vector_unittest.cc", 3411 "third_party/dynamic_annotations/dynamic_annotations_compiletest.cc", 3412 "thread_annotations_unittest.cc", 3413 "threading/hang_watcher_unittest.cc", 3414 "threading/platform_thread_unittest.cc", 3415 "threading/post_task_and_reply_impl_unittest.cc", 3416 "threading/scoped_blocking_call_unittest.cc", 3417 "threading/scoped_thread_priority_unittest.cc", 3418 "threading/sequence_bound_unittest.cc", 3419 "threading/sequence_local_storage_map_unittest.cc", 3420 "threading/sequence_local_storage_slot_unittest.cc", 3421 "threading/simple_thread_unittest.cc", 3422 "threading/thread_checker_unittest.cc", 3423 "threading/thread_collision_warner_unittest.cc", 3424 "threading/thread_id_name_manager_unittest.cc", 3425 "threading/thread_local_storage_unittest.cc", 3426 "threading/thread_local_unittest.cc", 3427 "threading/thread_restrictions_unittest.cc", 3428 "threading/thread_unittest.cc", 3429 "threading/watchdog_unittest.cc", 3430 "time/pr_time_unittest.cc", 3431 "time/time_delta_from_string_unittest.cc", 3432 "time/time_unittest.cc", 3433 "timer/elapsed_timer_unittest.cc", 3434 "timer/hi_res_timer_manager_unittest.cc", 3435 "timer/lap_timer_unittest.cc", 3436 "timer/mock_timer_unittest.cc", 3437 "timer/timer_unittest.cc", 3438 "timer/wall_clock_timer_unittest.cc", 3439 "token_unittest.cc", 3440 "tools_sanity_unittest.cc", 3441 "traits_bag_unittest.cc", 3442 "tuple_unittest.cc", 3443 "types/cxx23_to_underlying_unittest.cc", 3444 "types/expected_macros_unittest.cc", 3445 "types/expected_unittest.cc", 3446 "types/fixed_array_unittest.cc", 3447 "types/id_type_unittest.cc", 3448 "types/is_instantiation_unittest.cc", 3449 "types/optional_ref_unittest.cc", 3450 "types/optional_unittest.cc", 3451 "types/optional_util_unittest.cc", 3452 "types/pass_key_unittest.cc", 3453 "types/strong_alias_unittest.cc", 3454 "types/supports_ostream_operator_unittest.cc", 3455 "types/token_type_unittest.cc", 3456 "types/variant_util_unittest.cc", 3457 "unguessable_token_unittest.cc", 3458 "uuid_unittest.cc", 3459 "value_iterators_unittest.cc", 3460 "values_unittest.cc", 3461 "version_unittest.cc", 3462 "vlog_unittest.cc", 3463 ] 3464 3465 if (!is_cronet_build) { 3466 # location_unittest.cc fails gn check for tracing-shimmed Cronet builds. 3467 # Cronet buildbot do not run base_unittests, so exclusing this test 3468 # instead of adding a nogncheck is preferred (crbug.com/1400235). 3469 sources += [ "location_unittest.cc" ] 3470 } 3471 3472 if (build_rust_base_conversions) { 3473 sources += [ 3474 "containers/span_rust_unittest.cc", 3475 "strings/string_piece_rust_unittest.cc", 3476 ] 3477 } 3478 3479 if (use_safe_libcxx) { 3480 sources += [ "libcpp_hardening_test.cc" ] 3481 } 3482 3483 defines = [] 3484 3485 deps = [ 3486 ":arm_bti_testfunctions", 3487 ":base", 3488 ":base_stack_sampling_profiler_test_util", 3489 ":feature_list_buildflags", 3490 ":i18n", 3491 ":partition_alloc_test_support", 3492 ":path_service_unittest", 3493 ":sanitizer_buildflags", 3494 "//base/allocator:buildflags", 3495 "//base/test:native_library_test_utils", 3496 "//base/test:proto_test_support", 3497 "//base/test:run_all_unittests", 3498 "//base/test:test_proto", 3499 "//base/test:test_support", 3500 "//base/third_party/dynamic_annotations", 3501 "//build:blink_buildflags", 3502 "//build:chromecast_buildflags", 3503 "//build:chromeos_buildflags", 3504 "//testing/gmock", 3505 "//testing/gtest", 3506 "//third_party/icu", 3507 "//third_party/modp_b64", 3508 ] 3509 3510 data_deps = [ 3511 "//base/test:immediate_crash_test_helper", 3512 "//base/test:test_child_process", 3513 "//base/test:test_shared_library", 3514 "//testing/buildbot/filters:base_unittests_filters", 3515 ] 3516 3517 if (is_android && enable_chrome_android_internal) { 3518 data_deps += [ "//clank/build/bot/filters:base_unittests_filters" ] 3519 } 3520 3521 if (build_rust_base_conversions) { 3522 deps += [ "//build/rust:cxx_cppdeps" ] 3523 } 3524 3525 if (is_apple) { 3526 public_deps = [ 3527 ":base_unittests_bundle_data", 3528 ":base_unittests_noarc", 3529 ] 3530 } 3531 3532 data = [ 3533 "test/data/", 3534 "//tools/metrics/histograms/enums.xml", 3535 ] 3536 3537 if (!is_ios) { 3538 sources += [ 3539 "allocator/partition_allocator/src/partition_alloc/tagging_unittest.cc", 3540 ] 3541 3542 data_deps += [ "//base/test:test_proto_descriptor" ] 3543 data += [ "$root_gen_dir/base/test/test_proto.descriptor" ] 3544 } 3545 3546 if (is_win) { 3547 deps += [ "//base/win:base_win_buildflags" ] 3548 3549 sources += [ 3550 "debug/gdi_debug_util_win_unittest.cc", 3551 "file_version_info_win_unittest.cc", 3552 "process/launch_unittest_win.cc", 3553 "test/fake_iasync_operation_win_unittest.cc", 3554 "test/test_file_util_win_unittest.cc", 3555 "test/test_reg_util_win_unittest.cc", 3556 "threading/platform_thread_win_unittest.cc", 3557 "time/time_win_unittest.cc", 3558 "win/access_control_list_unittest.cc", 3559 "win/access_token_unittest.cc", 3560 "win/async_operation_unittest.cc", 3561 "win/com_init_balancer_unittest.cc", 3562 "win/com_init_check_hook_unittest.cc", 3563 "win/com_init_util_unittest.cc", 3564 "win/dark_mode_support_unittest.cc", 3565 "win/dispatch_stub.cc", 3566 "win/dispatch_stub.h", 3567 "win/dllmain.cc", 3568 "win/embedded_i18n/language_selector_unittest.cc", 3569 "win/enum_variant_unittest.cc", 3570 "win/event_trace_consumer_unittest.cc", 3571 "win/event_trace_controller_unittest.cc", 3572 "win/event_trace_provider_unittest.cc", 3573 "win/hstring_reference_unittest.cc", 3574 "win/i18n_unittest.cc", 3575 "win/map_unittest.cc", 3576 "win/message_window_unittest.cc", 3577 "win/object_watcher_unittest.cc", 3578 "win/pe_image_reader_unittest.cc", 3579 "win/pe_image_unittest.cc", 3580 "win/post_async_results_unittest.cc", 3581 "win/reference_unittest.cc", 3582 "win/registry_unittest.cc", 3583 "win/scoped_bstr_unittest.cc", 3584 "win/scoped_handle_unittest.cc", 3585 "win/scoped_hstring_unittest.cc", 3586 "win/scoped_localalloc_unittest.cc", 3587 "win/scoped_process_information_unittest.cc", 3588 "win/scoped_safearray_unittest.cc", 3589 "win/scoped_variant_unittest.cc", 3590 "win/scoped_winrt_initializer_unittest.cc", 3591 "win/security_descriptor_unittest.cc", 3592 "win/security_util_unittest.cc", 3593 "win/shortcut_unittest.cc", 3594 "win/sid_unittest.cc", 3595 "win/startup_information_unittest.cc", 3596 "win/variant_conversions_unittest.cc", 3597 "win/variant_vector_unittest.cc", 3598 "win/vector_unittest.cc", 3599 "win/win_includes_unittest.cc", 3600 "win/win_util_unittest.cc", 3601 "win/window_enumerator_unittest.cc", 3602 "win/windows_version_unittest.cc", 3603 "win/winrt_storage_util_unittest.cc", 3604 "win/wmi_unittest.cc", 3605 "win/wrapped_window_proc_unittest.cc", 3606 ] 3607 3608 if (enable_cet_shadow_stack) { 3609 sources += [ "win/cet_shadow_stack_unittest.cc" ] 3610 } 3611 3612 libs = [ 3613 "ntdll.lib", 3614 "onecore.lib", 3615 ] 3616 } 3617 3618 if (is_linux || is_chromeos) { 3619 sources += [ 3620 "debug/proc_maps_linux_unittest.cc", 3621 "files/scoped_file_linux_unittest.cc", 3622 "nix/mime_util_xdg_unittest.cc", 3623 ] 3624 3625 if (!is_nacl) { 3626 deps += [ ":stack_canary_linux_unittests" ] 3627 } 3628 } 3629 3630 if (is_posix) { 3631 sources += [ 3632 "files/dir_reader_posix_unittest.cc", 3633 "files/file_descriptor_watcher_posix_unittest.cc", 3634 "memory/madv_free_discardable_memory_allocator_posix_unittest.cc", 3635 "memory/madv_free_discardable_memory_posix_unittest.cc", 3636 "message_loop/fd_watch_controller_posix_unittest.cc", 3637 "posix/file_descriptor_shuffle_unittest.cc", 3638 "posix/unix_domain_socket_unittest.cc", 3639 ] 3640 if (!is_nacl && !is_apple) { 3641 sources += [ 3642 "profiler/stack_base_address_posix_unittest.cc", 3643 "profiler/stack_copier_signal_unittest.cc", 3644 "profiler/thread_delegate_posix_unittest.cc", 3645 ] 3646 } 3647 } 3648 3649 # Allow more direct string conversions on platforms with native utf8 3650 # strings 3651 if (is_apple || is_chromeos || is_castos || is_cast_android || is_fuchsia) { 3652 defines += [ "SYSTEM_NATIVE_UTF8" ] 3653 } 3654 3655 if (is_android) { 3656 # Add unwind tables in base_unittests_apk test apk. The unwind tables are 3657 # generated from debug info in the binary. Removing "default_symbols" and 3658 # adding symbols config removes the "strip_debug" config that strips the 3659 # debug info, on base unittests apk. 3660 if (can_unwind_with_cfi_table || enable_arm_cfi_table) { 3661 configs -= [ "//build/config/compiler:default_symbols" ] 3662 if (symbol_level == 2) { 3663 configs += [ "//build/config/compiler:symbols" ] 3664 } else { 3665 configs += [ "//build/config/compiler:minimal_symbols" ] 3666 } 3667 add_unwind_tables_in_apk = true 3668 } 3669 if (can_unwind_with_cfi_table) { 3670 sources += [ "trace_event/cfi_backtrace_android_unittest.cc" ] 3671 } 3672 if (current_cpu == "arm") { 3673 sources += [ 3674 "profiler/chrome_unwind_info_android_unittest.cc", 3675 "profiler/chrome_unwinder_android_unittest.cc", 3676 ] 3677 } 3678 if (current_cpu == "arm64") { 3679 sources += [ "profiler/frame_pointer_unwinder_unittest.cc" ] 3680 } 3681 if (!exclude_unwind_tables && 3682 (current_cpu == "arm" || current_cpu == "arm64")) { 3683 sources += [ 3684 "profiler/libunwindstack_unwinder_android_unittest.cc", 3685 "profiler/native_unwinder_android_unittest.cc", 3686 ] 3687 deps += [ 3688 ":base_profiler_reparsing_test_support_library", 3689 ":base_profiler_test_support_java", 3690 ":base_profiler_test_support_jni", 3691 ":base_profiler_test_support_library", 3692 ":native_unwinder_android", 3693 ] 3694 } 3695 3696 sources += [ 3697 "android/android_image_reader_compat_unittest.cc", 3698 "android/application_status_listener_unittest.cc", 3699 "android/child_process_unittest.cc", 3700 "android/content_uri_utils_unittest.cc", 3701 "android/jank_metric_uma_recorder_unittest.cc", 3702 "android/java_handler_thread_unittest.cc", 3703 "android/jni_android_unittest.cc", 3704 "android/jni_array_unittest.cc", 3705 "android/jni_string_unittest.cc", 3706 "android/library_loader/library_prefetcher_unittest.cc", 3707 "android/linker/linker_jni.cc", 3708 "android/linker/linker_jni.h", 3709 "android/linker/linker_unittest.cc", 3710 "android/meminfo_dump_provider_unittest.cc", 3711 "android/path_utils_unittest.cc", 3712 "android/radio_utils_unittest.cc", 3713 "android/reached_addresses_bitset_unittest.cc", 3714 "android/scoped_java_ref_unittest.cc", 3715 "android/sys_utils_unittest.cc", 3716 "android/unguessable_token_android_unittest.cc", 3717 "os_compat_android_unittest.cc", 3718 ] 3719 3720 # Android does not use test_launcher to run gtests. 3721 sources -= [ 3722 "process/process_unittest.cc", 3723 "process/process_util_unittest.cc", 3724 "test/gtest_links_unittest.cc", 3725 "test/gtest_tags_unittest.cc", 3726 "test/gtest_xml_unittest_result_printer_unittest.cc", 3727 "test/launcher/test_launcher_unittest.cc", 3728 "test/launcher/test_results_tracker_unittest.cc", 3729 ] 3730 deps += [ 3731 ":base_java_unittest_support", 3732 "//base/test:test_support_java", 3733 "//third_party/jni_zero", 3734 ] 3735 } 3736 3737 if (build_allocation_stack_trace_recorder) { 3738 sources += [ "debug/allocation_trace_unittest.cc" ] 3739 } 3740 3741 if (is_apple || current_os == "freebsd" || current_os == "openbsd") { 3742 sources += [ "posix/sysctl_unittest.cc" ] 3743 } 3744 if (is_apple) { 3745 sources += [ 3746 "apple/backup_util_unittest.mm", 3747 "apple/bind_objc_block_unittest.mm", 3748 "apple/dispatch_source_mach_unittest.cc", 3749 "apple/foundation_util_unittest.mm", 3750 "strings/sys_string_conversions_apple_unittest.mm", 3751 ] 3752 } 3753 3754 if (is_apple) { 3755 sources += [ "time/time_apple_unittest.mm" ] 3756 } 3757 3758 if (is_mac) { 3759 sources += [ 3760 "apple/call_with_eh_frame_unittest.mm", 3761 "apple/scoped_cftyperef_unittest.cc", 3762 "apple/scoped_mach_vm_unittest.cc", 3763 "apple/scoped_nsautorelease_pool_unittest.mm", 3764 "apple/scoped_objc_class_swizzler_unittest.mm", 3765 "enterprise_util_mac_unittest.mm", 3766 "mac/launch_application_unittest.mm", 3767 "mac/mac_util_unittest.mm", 3768 "mac/mach_port_rendezvous_unittest.cc", 3769 "mac/scoped_sending_event_unittest.mm", 3770 "message_loop/message_pump_apple_unittest.mm", 3771 "power_monitor/thermal_state_observer_mac_unittest.mm", 3772 "process/memory_unittest_mac.h", 3773 "process/memory_unittest_mac.mm", 3774 "system/sys_info_mac_unittest.mm", 3775 ] 3776 data_deps += [ "//base/mac:launch_application_test_helper" ] 3777 } 3778 3779 if (is_ios) { 3780 sources += [ 3781 "ios/crb_protocol_observers_unittest.mm", 3782 "ios/device_util_unittest.mm", 3783 "ios/scoped_critical_action_unittest.mm", 3784 ] 3785 3786 bundle_deps = [ ":base_test_proto_bundle_data" ] 3787 3788 if (is_cronet_build) { 3789 sources += [ "message_loop/message_pump_io_ios_unittest.cc" ] 3790 } else { 3791 sources += [ "message_loop/message_pump_kqueue_unittest.cc" ] 3792 } 3793 3794 # ios does not use test_launcher to run gtests. 3795 sources -= [ 3796 "files/file_path_watcher_unittest.cc", 3797 "memory/discardable_shared_memory_unittest.cc", 3798 "process/memory_unittest.cc", 3799 "process/process_unittest.cc", 3800 "process/process_util_unittest.cc", 3801 "sync_socket_unittest.cc", 3802 "synchronization/waitable_event_watcher_unittest.cc", 3803 "test/gtest_links_unittest.cc", 3804 "test/gtest_tags_unittest.cc", 3805 "test/gtest_xml_unittest_result_printer_unittest.cc", 3806 "test/launcher/test_launcher_unittest.cc", 3807 "test/launcher/test_results_tracker_unittest.cc", 3808 ] 3809 3810 sources -= [ 3811 # The immediate crash tests require shared libraries, which we don't 3812 # support loading on iOS. 3813 "immediate_crash_unittest.cc", 3814 ] 3815 3816 if (use_allocator_shim) { 3817 sources += [ 3818 "allocator/partition_allocator/src/partition_alloc/shim/allocator_interception_apple_unittest.mm", 3819 "allocator/partition_allocator/src/partition_alloc/shim/malloc_zone_functions_apple_unittest.cc", 3820 ] 3821 } 3822 3823 if (use_blink) { 3824 sources += [ "files/file_path_watcher_unittest.cc" ] 3825 } 3826 } 3827 3828 if (use_partition_alloc) { 3829 sources += [ 3830 "allocator/partition_allocator/src/partition_alloc/address_pool_manager_unittest.cc", 3831 "allocator/partition_allocator/src/partition_alloc/address_space_randomization_unittest.cc", 3832 "allocator/partition_allocator/src/partition_alloc/compressed_pointer_unittest.cc", 3833 "allocator/partition_allocator/src/partition_alloc/freeslot_bitmap_unittest.cc", 3834 "allocator/partition_allocator/src/partition_alloc/hardening_unittest.cc", 3835 "allocator/partition_allocator/src/partition_alloc/lightweight_quarantine_unittest.cc", 3836 "allocator/partition_allocator/src/partition_alloc/memory_reclaimer_unittest.cc", 3837 "allocator/partition_allocator/src/partition_alloc/page_allocator_unittest.cc", 3838 "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits_pa_unittest.cc", 3839 "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export_pa_unittest.cc", 3840 "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/cpu_pa_unittest.cc", 3841 "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging_pa_unittest.cc", 3842 "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util_pa_unittest.cc", 3843 "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/scoped_clear_last_error_pa_unittest.cc", 3844 "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/cstring_builder_pa_unittest.cc", 3845 "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/safe_sprintf_pa_unittest.cc", 3846 "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/string_util_pa_unittest.cc", 3847 "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/stringprintf_pa_unittest.cc", 3848 "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations_pa_unittest.cc", 3849 "allocator/partition_allocator/src/partition_alloc/partition_alloc_unittest.cc", 3850 "allocator/partition_allocator/src/partition_alloc/partition_lock_unittest.cc", 3851 "allocator/partition_allocator/src/partition_alloc/reverse_bytes_unittest.cc", 3852 "allocator/partition_allocator/src/partition_alloc/thread_cache_unittest.cc", 3853 ] 3854 3855 if (use_starscan) { 3856 sources += [ 3857 "allocator/partition_allocator/src/partition_alloc/starscan/pcscan_scheduling_unittest.cc", 3858 "allocator/partition_allocator/src/partition_alloc/starscan/pcscan_unittest.cc", 3859 "allocator/partition_allocator/src/partition_alloc/starscan/scan_loop_unittest.cc", 3860 "allocator/partition_allocator/src/partition_alloc/starscan/stack/stack_unittest.cc", 3861 "allocator/partition_allocator/src/partition_alloc/starscan/state_bitmap_unittest.cc", 3862 ] 3863 } 3864 3865 if ((is_android || is_linux) && target_cpu == "arm64") { 3866 cflags = [ 3867 "-Xclang", 3868 "-target-feature", 3869 "-Xclang", 3870 "+mte", 3871 ] 3872 } 3873 3874 if (is_android) { 3875 sources += [ 3876 "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/files/file_path_pa_unittest.cc", 3877 "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/native_library_pa_unittest.cc", 3878 ] 3879 } else if (is_fuchsia) { 3880 sources += [ "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/fuchsia/fuchsia_logging_pa_unittest.cc" ] 3881 } 3882 3883 if (enable_pkeys && is_debug && !is_component_build) { 3884 # This test requires RELRO, which is not enabled in component builds. 3885 # Also, require a debug build, since we only disable stack protectors in 3886 # debug builds in partition alloc (see below why it's needed). 3887 sources += [ "allocator/partition_allocator/src/partition_alloc/thread_isolation/pkey_unittest.cc" ] 3888 3889 # We want to test the pkey code without access to memory that is not 3890 # pkey-tagged. This will allow us to catch unintended memory accesses 3891 # that could break our security assumptions. The stack protector reads a 3892 # value from the TLS which won't be pkey-tagged, hence disabling it for 3893 # the test. 3894 configs += [ ":no_stack_protector" ] 3895 } 3896 3897 deps += [ ":partition_alloc_test_support" ] 3898 } 3899 3900 if (is_mac) { 3901 sources += [ "message_loop/message_pump_kqueue_unittest.cc" ] 3902 frameworks = [ 3903 "CoreFoundation.framework", 3904 "Foundation.framework", 3905 "OpenCL.framework", 3906 ] 3907 if (current_cpu == "x64") { 3908 deps += [ ":base_profiler_test_support_library" ] 3909 } 3910 } 3911 3912 if (is_fuchsia || is_linux || is_chromeos) { 3913 sources += [ 3914 "debug/elf_reader_unittest.cc", 3915 "debug/test_elf_image_builder.cc", 3916 "debug/test_elf_image_builder.h", 3917 ] 3918 3919 deps += [ "//base/test:malloc_wrapper" ] 3920 defines += [ 3921 # This library is used by ElfReaderTest to test reading elf files. 3922 "MALLOC_WRAPPER_LIB=\"${shlib_prefix}malloc_wrapper${shlib_extension}\"", 3923 ] 3924 3925 if (!is_component_build) { 3926 # Set rpath to find libmalloc_wrapper.so even in a non-component build. 3927 configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ] 3928 } 3929 } 3930 3931 if (is_chromeos_lacros) { 3932 sources += [ "i18n/icu_mergeable_data_file_unittest.cc" ] 3933 } 3934 3935 if (is_linux || is_chromeos_lacros) { 3936 sources += [ 3937 "linux_util_unittest.cc", 3938 "nix/xdg_util_unittest.cc", 3939 ] 3940 } 3941 3942 if (!use_glib) { 3943 sources -= [ "message_loop/message_pump_glib_unittest.cc" ] 3944 } 3945 3946 if (use_libevent) { 3947 sources += [ "message_loop/message_pump_libevent_unittest.cc" ] 3948 deps += [ 3949 ":message_pump_buildflags", 3950 "//third_party/libevent", 3951 ] 3952 } 3953 3954 if (is_fuchsia) { 3955 sources += [ 3956 "files/dir_reader_posix_unittest.cc", 3957 "files/file_descriptor_watcher_posix_unittest.cc", 3958 "fuchsia/fidl_event_handler_unittest.cc", 3959 "fuchsia/file_utils_unittest.cc", 3960 "fuchsia/filtered_service_directory_unittest.cc", 3961 "fuchsia/fuchsia_logging_unittest.cc", 3962 "fuchsia/intl_profile_watcher_unittest.cc", 3963 "fuchsia/mem_buffer_util_unittest.cc", 3964 "fuchsia/scoped_natural_service_binding_unittest.cc", 3965 "fuchsia/scoped_natural_service_publisher_unittest.cc", 3966 "fuchsia/scoped_service_binding_unittest.cc", 3967 "fuchsia/scoped_service_publisher_unittest.cc", 3968 "fuchsia/system_build_info_unittest.cc", 3969 "fuchsia/system_product_info_unittest.cc", 3970 "fuchsia/test_component_context_for_process_unittest.cc", 3971 "fuchsia/time_zone_data_unittest.cc", 3972 "message_loop/fd_watch_controller_posix_unittest.cc", 3973 "posix/file_descriptor_shuffle_unittest.cc", 3974 ] 3975 3976 deps += [ 3977 ":test_interface_impl", 3978 ":test_interface_natural_impl", 3979 ":test_log_listener_safe", 3980 "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.buildinfo:fuchsia.buildinfo_cpp", 3981 "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.buildinfo:fuchsia.buildinfo_hlcpp", 3982 "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.hwinfo:fuchsia.hwinfo_cpp", 3983 "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.intl:fuchsia.intl_hlcpp", 3984 "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.logger:fuchsia.logger_cpp", 3985 "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.mem:fuchsia.mem_hlcpp", 3986 "//third_party/fuchsia-sdk/sdk/pkg/async", 3987 "//third_party/fuchsia-sdk/sdk/pkg/async-default", 3988 "//third_party/fuchsia-sdk/sdk/pkg/component_incoming_cpp", 3989 "//third_party/fuchsia-sdk/sdk/pkg/fdio", 3990 "//third_party/fuchsia-sdk/sdk/pkg/sys_cpp", 3991 ] 3992 3993 additional_manifest_fragments = [ 3994 "//build/config/fuchsia/test/logger.shard.test-cml", 3995 3996 # Required by PartitionAllocPageAllocatorTest tests with exec capability. 3997 "//build/config/fuchsia/test/mark_vmo_executable.shard.test-cml", 3998 ] 3999 } 4000 4001 if (!is_fuchsia && !is_ios) { 4002 sources += [ "files/file_locking_unittest.cc" ] 4003 } 4004 4005 if (is_android) { 4006 deps += [ "//testing/android/native_test:native_test_native_code" ] 4007 sources += [ 4008 "debug/elf_reader_unittest.cc", 4009 "debug/proc_maps_linux_unittest.cc", 4010 "debug/test_elf_image_builder.cc", 4011 "debug/test_elf_image_builder.h", 4012 ] 4013 } 4014 4015 if (is_win) { 4016 deps += [ "//base:scoped_handle_test_dll" ] 4017 if (current_cpu == "x64" || current_cpu == "arm64") { 4018 sources += [ "profiler/win32_stack_frame_unwinder_unittest.cc" ] 4019 deps += [ ":base_profiler_test_support_library" ] 4020 } 4021 4022 # These tests are not built by default because they make heavy use of 4023 # parameterized tests. Even when disabled, they incur a startup penalty on 4024 # base_unittests. See comments in the file as for why they are disabled by 4025 # default, and https://crbug.com/1475518 for one consequence of the process 4026 # startup penalty. 4027 # sources += [ "files/os_validation_win_unittest.cc" ] 4028 4029 if (toolchain_has_rust && win_enable_cfg_guards) { 4030 deps += [ ":rust_cfg_win_test" ] 4031 } 4032 } 4033 if (is_apple) { 4034 sources += [ "profiler/frame_pointer_unwinder_unittest.cc" ] 4035 } 4036 if (is_chromeos && current_cpu == "x64") { 4037 sources += [ "profiler/frame_pointer_unwinder_unittest.cc" ] 4038 deps += [ ":base_profiler_test_support_library" ] 4039 } 4040 4041 if (use_allocator_shim) { 4042 sources += [ 4043 "allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_unittest.cc", 4044 "sampling_heap_profiler/poisson_allocation_sampler_unittest.cc", 4045 "sampling_heap_profiler/sampling_heap_profiler_unittest.cc", 4046 ] 4047 4048 if (is_win) { 4049 sources += [ "allocator/partition_allocator/src/partition_alloc/shim/winheap_stubs_win_unittest.cc" ] 4050 } 4051 4052 sources += [ 4053 "allocator/partition_alloc_support_unittest.cc", 4054 "allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc_unittest.cc", 4055 ] 4056 } 4057 4058 if (enable_base_tracing) { 4059 sources += [ 4060 "test/trace_event_analyzer_unittest.cc", 4061 "trace_event/memory_allocator_dump_unittest.cc", 4062 "trace_event/memory_dump_manager_unittest.cc", 4063 "trace_event/memory_dump_scheduler_unittest.cc", 4064 "trace_event/memory_infra_background_allowlist_unittest.cc", 4065 "trace_event/memory_usage_estimator_unittest.cc", 4066 "trace_event/process_memory_dump_unittest.cc", 4067 "trace_event/trace_arguments_unittest.cc", 4068 "trace_event/trace_category_unittest.cc", 4069 "trace_event/trace_config_unittest.cc", 4070 "trace_event/trace_conversion_helper_unittest.cc", 4071 "trace_event/trace_event_unittest.cc", 4072 "trace_event/traced_value_support_unittest.cc", 4073 "trace_event/traced_value_unittest.cc", 4074 "trace_event/typed_macros_unittest.cc", 4075 "tracing/perfetto_task_runner_unittest.cc", 4076 ] 4077 4078 if (is_android) { 4079 sources += [ 4080 "trace_event/cpufreq_monitor_android_unittest.cc", 4081 "trace_event/java_heap_dump_provider_android_unittest.cc", 4082 ] 4083 } 4084 4085 deps += [ 4086 "//third_party/perfetto/include/perfetto/trace_processor:storage", 4087 "//third_party/perfetto/protos/perfetto/trace:lite", 4088 "//third_party/perfetto/protos/perfetto/trace/interned_data:lite", 4089 "//third_party/perfetto/protos/perfetto/trace/track_event:lite", 4090 ] 4091 } 4092 4093 if (enable_nocompile_tests_new) { 4094 deps += [ ":base_nocompile_tests_new" ] 4095 } 4096} 4097 4098# Test that CFG is enabled in Rust code. 4099if (is_win && toolchain_has_rust) { 4100 source_set("rust_cfg_win_test") { 4101 testonly = true 4102 deps = [ 4103 ":base", 4104 "//testing/gtest", 4105 ] 4106 data_deps = [ "//build/rust/tests/test_control_flow_guard" ] 4107 sources = [ "memory/rust_cfg_win_unittest.cc" ] 4108 } 4109} 4110 4111action("build_date") { 4112 script = "write_build_date_header.py" 4113 4114 outputs = [ "$target_gen_dir/generated_build_date.h" ] 4115 4116 args = [ 4117 rebase_path("$target_gen_dir/generated_build_date.h", root_build_dir), 4118 build_timestamp, 4119 ] 4120} 4121 4122if (enable_nocompile_tests_new) { 4123 nocompile_source_set("base_nocompile_tests_new") { 4124 sources = [ 4125 "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations_pa_nocompile.nc", 4126 "allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_nocompile.nc", 4127 "allocator/partition_allocator/src/partition_alloc/pointers/raw_ref_nocompile.nc", 4128 "callback_list_nocompile.nc", 4129 "containers/buffer_iterator_nocompile.nc", 4130 "containers/checked_iterators_nocompile.nc", 4131 "containers/contains_nocompile.nc", 4132 "containers/enum_set_nocompile.nc", 4133 "containers/span_nocompile.nc", 4134 "debug/crash_logging_nocompile.nc", 4135 "memory/ref_counted_nocompile.nc", 4136 "memory/weak_ptr_nocompile.nc", 4137 "metrics/field_trial_params_nocompile.nc", 4138 "metrics/histogram_nocompile.nc", 4139 "no_destructor_nocompile.nc", 4140 "observer_list_nocompile.nc", 4141 "sequence_checker_nocompile.nc", 4142 "strings/string_piece_nocompile.nc", 4143 "strings/stringprintf_nocompile.nc", 4144 "task/bind_post_task_nocompile.nc", 4145 "task/task_traits_nocompile.nc", 4146 "thread_annotations_nocompile.nc", 4147 "traits_bag_nocompile.nc", 4148 "types/pass_key_nocompile.nc", 4149 "types/variant_util_nocompile.nc", 4150 "values_nocompile.nc", 4151 ] 4152 deps = [ ":base" ] 4153 } 4154} 4155 4156if (enable_nocompile_tests) { 4157 nocompile_test("base_nocompile_tests") { 4158 sources = [ 4159 "functional/bind_nocompile.nc", 4160 "functional/callback_nocompile.nc", 4161 "functional/function_ref_nocompile.nc", 4162 "functional/overloaded_nocompile.nc", 4163 ] 4164 4165 deps = [ 4166 ":base", 4167 "//base/test:run_all_unittests", 4168 "//testing/gtest", 4169 ] 4170 4171 # Since the nocompile test is not able to inspect the contents of 4172 # include_dirs, we need to specify the Abseil and PartitionAlloc include dir 4173 # manually. 4174 include_dirs = [ 4175 "${root_gen_dir}/base/allocator/partition_allocator/src", 4176 "//base/allocator/partition_allocator/src", 4177 "//third_party/abseil-cpp", 4178 ] 4179 } 4180} 4181 4182if (is_android || is_robolectric) { 4183 generate_jni("base_jni") { 4184 sources = [ 4185 "android/java/src/org/chromium/base/ApkAssets.java", 4186 "android/java/src/org/chromium/base/ApplicationStatus.java", 4187 "android/java/src/org/chromium/base/BaseFeatureMap.java", 4188 "android/java/src/org/chromium/base/BuildInfo.java", 4189 "android/java/src/org/chromium/base/BundleUtils.java", 4190 "android/java/src/org/chromium/base/Callback.java", 4191 "android/java/src/org/chromium/base/CommandLine.java", 4192 "android/java/src/org/chromium/base/ContentUriUtils.java", 4193 "android/java/src/org/chromium/base/CpuFeatures.java", 4194 "android/java/src/org/chromium/base/EarlyTraceEvent.java", 4195 "android/java/src/org/chromium/base/EventLog.java", 4196 "android/java/src/org/chromium/base/FeatureList.java", 4197 "android/java/src/org/chromium/base/FeatureMap.java", 4198 "android/java/src/org/chromium/base/Features.java", 4199 "android/java/src/org/chromium/base/FieldTrialList.java", 4200 "android/java/src/org/chromium/base/FileUtils.java", 4201 "android/java/src/org/chromium/base/ImportantFileWriterAndroid.java", 4202 "android/java/src/org/chromium/base/IntStringCallback.java", 4203 "android/java/src/org/chromium/base/JNIUtils.java", 4204 "android/java/src/org/chromium/base/JavaExceptionReporter.java", 4205 "android/java/src/org/chromium/base/JavaHandlerThread.java", 4206 "android/java/src/org/chromium/base/JniAndroid.java", 4207 "android/java/src/org/chromium/base/LocaleUtils.java", 4208 "android/java/src/org/chromium/base/MemoryPressureListener.java", 4209 "android/java/src/org/chromium/base/PathService.java", 4210 "android/java/src/org/chromium/base/PathUtils.java", 4211 "android/java/src/org/chromium/base/PowerMonitor.java", 4212 "android/java/src/org/chromium/base/RadioUtils.java", 4213 "android/java/src/org/chromium/base/SysUtils.java", 4214 "android/java/src/org/chromium/base/ThreadUtils.java", 4215 "android/java/src/org/chromium/base/TimezoneUtils.java", 4216 "android/java/src/org/chromium/base/TraceEvent.java", 4217 "android/java/src/org/chromium/base/UnguessableToken.java", 4218 "android/java/src/org/chromium/base/jank_tracker/JankMetricUMARecorder.java", 4219 "android/java/src/org/chromium/base/library_loader/LibraryLoader.java", 4220 "android/java/src/org/chromium/base/library_loader/LibraryPrefetcher.java", 4221 "android/java/src/org/chromium/base/memory/JavaHeapDumpGenerator.java", 4222 "android/java/src/org/chromium/base/memory/MemoryInfoBridge.java", 4223 "android/java/src/org/chromium/base/metrics/NativeUmaRecorder.java", 4224 "android/java/src/org/chromium/base/metrics/StatisticsRecorderAndroid.java", 4225 "android/java/src/org/chromium/base/task/PostTask.java", 4226 "android/java/src/org/chromium/base/task/TaskRunnerImpl.java", 4227 ] 4228 4229 if (use_clang_profiling) { 4230 sources += [ 4231 "test/android/javatests/src/org/chromium/base/test/ClangProfiler.java", 4232 ] 4233 } 4234 4235 public_deps = [ 4236 ":android_runtime_jni_headers", 4237 ":android_runtime_unchecked_jni_headers", 4238 ] 4239 } 4240 4241 generate_jar_jni("android_runtime_jni_headers") { 4242 classes = [ 4243 "java/lang/Runtime.class", 4244 "java/lang/Throwable.class", 4245 ] 4246 } 4247 4248 generate_jar_jni("android_runtime_unchecked_jni_headers") { 4249 classes = [ "java/lang/Runnable.class" ] 4250 unchecked_exceptions = true 4251 } 4252 4253 generate_jni("process_launcher_jni") { 4254 sources = [ "android/java/src/org/chromium/base/process_launcher/ChildProcessService.java" ] 4255 } 4256 4257 generate_jni("base_shared_preferences_jni") { 4258 sources = [ "android/java/src/org/chromium/base/shared_preferences/SharedPreferencesManager.java" ] 4259 } 4260} # is_android || is_robolectric 4261 4262if (is_android) { 4263 java_cpp_features("java_features_srcjar") { 4264 # External code should depend on ":base_java" instead. 4265 visibility = [ ":*" ] 4266 sources = [ 4267 "allocator/partition_alloc_features.cc", 4268 "android/base_features.cc", 4269 "features.cc", 4270 "task/task_features.cc", 4271 ] 4272 template = "android/java/src/org/chromium/base/BaseFeatures.java.tmpl" 4273 } 4274 4275 java_cpp_strings("java_switches_srcjar") { 4276 # External code should depend on ":base_java" instead. 4277 visibility = [ ":*" ] 4278 sources = [ "base_switches.cc" ] 4279 template = "android/java/src/org/chromium/base/BaseSwitches.java.tmpl" 4280 } 4281 4282 android_library("process_launcher_java") { 4283 srcjar_deps = [ 4284 ":process_launcher_aidl", 4285 ":process_launcher_jni", 4286 ] 4287 deps = [ 4288 ":base_java", 4289 "//build/android:build_java", 4290 "//third_party/android_deps:com_google_code_findbugs_jsr305_java", 4291 "//third_party/androidx:androidx_annotation_annotation_experimental_java", 4292 "//third_party/androidx:androidx_annotation_annotation_java", 4293 "//third_party/androidx:androidx_collection_collection_java", 4294 "//third_party/androidx:androidx_core_core_java", 4295 "//third_party/jni_zero:jni_zero_java", 4296 ] 4297 sources = [ 4298 "android/java/src/org/chromium/base/process_launcher/BindService.java", 4299 "android/java/src/org/chromium/base/process_launcher/ChildConnectionAllocator.java", 4300 "android/java/src/org/chromium/base/process_launcher/ChildProcessConnection.java", 4301 "android/java/src/org/chromium/base/process_launcher/ChildProcessConstants.java", 4302 "android/java/src/org/chromium/base/process_launcher/ChildProcessLauncher.java", 4303 "android/java/src/org/chromium/base/process_launcher/ChildProcessService.java", 4304 "android/java/src/org/chromium/base/process_launcher/ChildProcessServiceDelegate.java", 4305 "android/java/src/org/chromium/base/process_launcher/ChildServiceConnection.java", 4306 "android/java/src/org/chromium/base/process_launcher/ChildServiceConnectionDelegate.java", 4307 "android/java/src/org/chromium/base/process_launcher/ChildServiceConnectionFactory.java", 4308 "android/java/src/org/chromium/base/process_launcher/ChildServiceConnectionImpl.java", 4309 "android/java/src/org/chromium/base/process_launcher/FileDescriptorInfo.java", 4310 ] 4311 } 4312 4313 android_library("base_java") { 4314 srcjar_deps = [ 4315 ":base_android_java_enums_srcjar", 4316 ":base_jni", 4317 ":java_features_srcjar", 4318 ":java_switches_srcjar", 4319 ] 4320 4321 deps = [ 4322 "//build/android:build_java", 4323 "//third_party/android_deps:com_google_code_findbugs_jsr305_java", 4324 "//third_party/android_deps:com_google_errorprone_error_prone_annotations_java", 4325 "//third_party/android_deps:guava_android_java", 4326 "//third_party/androidx:androidx_annotation_annotation_experimental_java", 4327 "//third_party/androidx:androidx_annotation_annotation_java", 4328 "//third_party/jni_zero:jni_zero_java", 4329 ] 4330 4331 sources = [ 4332 "android/java/src/org/chromium/base/ActivityState.java", 4333 "android/java/src/org/chromium/base/ApiCompatibilityUtils.java", 4334 "android/java/src/org/chromium/base/ApkAssets.java", 4335 "android/java/src/org/chromium/base/ApplicationStatus.java", 4336 "android/java/src/org/chromium/base/BaseFeatureMap.java", 4337 "android/java/src/org/chromium/base/BuildInfo.java", 4338 "android/java/src/org/chromium/base/BundleUtils.java", 4339 "android/java/src/org/chromium/base/Callback.java", 4340 "android/java/src/org/chromium/base/CallbackController.java", 4341 "android/java/src/org/chromium/base/CollectionUtil.java", 4342 "android/java/src/org/chromium/base/CommandLine.java", 4343 "android/java/src/org/chromium/base/CommandLineInitUtil.java", 4344 "android/java/src/org/chromium/base/ContentUriUtils.java", 4345 "android/java/src/org/chromium/base/ContextUtils.java", 4346 "android/java/src/org/chromium/base/CpuFeatures.java", 4347 "android/java/src/org/chromium/base/DiscardableReferencePool.java", 4348 "android/java/src/org/chromium/base/EarlyTraceEvent.java", 4349 "android/java/src/org/chromium/base/EventLog.java", 4350 "android/java/src/org/chromium/base/FeatureList.java", 4351 "android/java/src/org/chromium/base/FeatureMap.java", 4352 "android/java/src/org/chromium/base/Features.java", 4353 "android/java/src/org/chromium/base/FieldTrialList.java", 4354 "android/java/src/org/chromium/base/FileUtils.java", 4355 "android/java/src/org/chromium/base/Flag.java", 4356 "android/java/src/org/chromium/base/ImportantFileWriterAndroid.java", 4357 "android/java/src/org/chromium/base/IntStringCallback.java", 4358 "android/java/src/org/chromium/base/IntentUtils.java", 4359 "android/java/src/org/chromium/base/JNIUtils.java", 4360 "android/java/src/org/chromium/base/JavaExceptionReporter.java", 4361 "android/java/src/org/chromium/base/JavaHandlerThread.java", 4362 "android/java/src/org/chromium/base/JniAndroid.java", 4363 "android/java/src/org/chromium/base/LifetimeAssert.java", 4364 "android/java/src/org/chromium/base/LocaleUtils.java", 4365 "android/java/src/org/chromium/base/Log.java", 4366 "android/java/src/org/chromium/base/MathUtils.java", 4367 "android/java/src/org/chromium/base/MemoryPressureListener.java", 4368 "android/java/src/org/chromium/base/MutableFlagWithSafeDefault.java", 4369 "android/java/src/org/chromium/base/ObserverList.java", 4370 "android/java/src/org/chromium/base/PackageManagerUtils.java", 4371 "android/java/src/org/chromium/base/PackageUtils.java", 4372 "android/java/src/org/chromium/base/PathService.java", 4373 "android/java/src/org/chromium/base/PathUtils.java", 4374 "android/java/src/org/chromium/base/PiiElider.java", 4375 "android/java/src/org/chromium/base/PowerMonitor.java", 4376 "android/java/src/org/chromium/base/PowerMonitorForQ.java", 4377 "android/java/src/org/chromium/base/Promise.java", 4378 "android/java/src/org/chromium/base/RadioUtils.java", 4379 "android/java/src/org/chromium/base/RequiredCallback.java", 4380 "android/java/src/org/chromium/base/ResettersForTesting.java", 4381 "android/java/src/org/chromium/base/StreamUtil.java", 4382 "android/java/src/org/chromium/base/StrictModeContext.java", 4383 "android/java/src/org/chromium/base/SysUtils.java", 4384 "android/java/src/org/chromium/base/ThreadUtils.java", 4385 "android/java/src/org/chromium/base/TimeUtils.java", 4386 "android/java/src/org/chromium/base/TimezoneUtils.java", 4387 "android/java/src/org/chromium/base/TraceEvent.java", 4388 "android/java/src/org/chromium/base/UnguessableToken.java", 4389 "android/java/src/org/chromium/base/UnownedUserData.java", 4390 "android/java/src/org/chromium/base/UnownedUserDataHost.java", 4391 "android/java/src/org/chromium/base/UnownedUserDataKey.java", 4392 "android/java/src/org/chromium/base/UserData.java", 4393 "android/java/src/org/chromium/base/UserDataHost.java", 4394 "android/java/src/org/chromium/base/WrappedClassLoader.java", 4395 "android/java/src/org/chromium/base/compat/ApiHelperForM.java", 4396 "android/java/src/org/chromium/base/compat/ApiHelperForN.java", 4397 "android/java/src/org/chromium/base/compat/ApiHelperForO.java", 4398 "android/java/src/org/chromium/base/compat/ApiHelperForOMR1.java", 4399 "android/java/src/org/chromium/base/compat/ApiHelperForP.java", 4400 "android/java/src/org/chromium/base/compat/ApiHelperForQ.java", 4401 "android/java/src/org/chromium/base/compat/ApiHelperForR.java", 4402 "android/java/src/org/chromium/base/compat/ApiHelperForS.java", 4403 "android/java/src/org/chromium/base/jank_tracker/FrameMetricsListener.java", 4404 "android/java/src/org/chromium/base/jank_tracker/FrameMetricsStore.java", 4405 "android/java/src/org/chromium/base/jank_tracker/JankActivityTracker.java", 4406 "android/java/src/org/chromium/base/jank_tracker/JankEndScenarioTime.java", 4407 "android/java/src/org/chromium/base/jank_tracker/JankMetricUMARecorder.java", 4408 "android/java/src/org/chromium/base/jank_tracker/JankMetrics.java", 4409 "android/java/src/org/chromium/base/jank_tracker/JankReportingRunnable.java", 4410 "android/java/src/org/chromium/base/jank_tracker/JankReportingScheduler.java", 4411 "android/java/src/org/chromium/base/jank_tracker/JankScenario.java", 4412 "android/java/src/org/chromium/base/jank_tracker/JankTracker.java", 4413 "android/java/src/org/chromium/base/jank_tracker/JankTrackerImpl.java", 4414 "android/java/src/org/chromium/base/jank_tracker/JankTrackerStateController.java", 4415 "android/java/src/org/chromium/base/jank_tracker/PlaceholderJankTracker.java", 4416 "android/java/src/org/chromium/base/library_loader/LibraryLoader.java", 4417 "android/java/src/org/chromium/base/library_loader/LibraryPrefetcher.java", 4418 "android/java/src/org/chromium/base/library_loader/Linker.java", 4419 "android/java/src/org/chromium/base/library_loader/LinkerJni.java", 4420 "android/java/src/org/chromium/base/library_loader/LoaderErrors.java", 4421 "android/java/src/org/chromium/base/library_loader/NativeLibraryPreloader.java", 4422 "android/java/src/org/chromium/base/library_loader/ProcessInitException.java", 4423 "android/java/src/org/chromium/base/lifetime/DestroyChecker.java", 4424 "android/java/src/org/chromium/base/lifetime/Destroyable.java", 4425 "android/java/src/org/chromium/base/memory/JavaHeapDumpGenerator.java", 4426 "android/java/src/org/chromium/base/memory/MemoryInfoBridge.java", 4427 "android/java/src/org/chromium/base/memory/MemoryPressureCallback.java", 4428 "android/java/src/org/chromium/base/memory/MemoryPressureMonitor.java", 4429 "android/java/src/org/chromium/base/memory/MemoryPressureUma.java", 4430 "android/java/src/org/chromium/base/memory/MemoryPurgeManager.java", 4431 "android/java/src/org/chromium/base/metrics/CachingUmaRecorder.java", 4432 "android/java/src/org/chromium/base/metrics/HistogramBucket.java", 4433 "android/java/src/org/chromium/base/metrics/NativeUmaRecorder.java", 4434 "android/java/src/org/chromium/base/metrics/NoopUmaRecorder.java", 4435 "android/java/src/org/chromium/base/metrics/RecordHistogram.java", 4436 "android/java/src/org/chromium/base/metrics/RecordUserAction.java", 4437 "android/java/src/org/chromium/base/metrics/ScopedSysTraceEvent.java", 4438 "android/java/src/org/chromium/base/metrics/StatisticsRecorderAndroid.java", 4439 "android/java/src/org/chromium/base/metrics/TimingMetric.java", 4440 "android/java/src/org/chromium/base/metrics/UmaRecorder.java", 4441 "android/java/src/org/chromium/base/metrics/UmaRecorderHolder.java", 4442 "android/java/src/org/chromium/base/supplier/DestroyableObservableSupplier.java", 4443 "android/java/src/org/chromium/base/supplier/LazyOneshotSupplier.java", 4444 "android/java/src/org/chromium/base/supplier/LazyOneshotSupplierImpl.java", 4445 "android/java/src/org/chromium/base/supplier/ObservableSupplier.java", 4446 "android/java/src/org/chromium/base/supplier/ObservableSupplierImpl.java", 4447 "android/java/src/org/chromium/base/supplier/OneShotCallback.java", 4448 "android/java/src/org/chromium/base/supplier/OneshotSupplier.java", 4449 "android/java/src/org/chromium/base/supplier/OneshotSupplierImpl.java", 4450 "android/java/src/org/chromium/base/supplier/Supplier.java", 4451 "android/java/src/org/chromium/base/supplier/SupplierUtils.java", 4452 "android/java/src/org/chromium/base/supplier/SyncOneshotSupplier.java", 4453 "android/java/src/org/chromium/base/supplier/SyncOneshotSupplierImpl.java", 4454 "android/java/src/org/chromium/base/supplier/TransitiveObservableSupplier.java", 4455 "android/java/src/org/chromium/base/supplier/UnownedUserDataSupplier.java", 4456 "android/java/src/org/chromium/base/task/AsyncTask.java", 4457 "android/java/src/org/chromium/base/task/BackgroundOnlyAsyncTask.java", 4458 "android/java/src/org/chromium/base/task/ChainedTasks.java", 4459 "android/java/src/org/chromium/base/task/ChromeThreadPoolExecutor.java", 4460 "android/java/src/org/chromium/base/task/PostTask.java", 4461 "android/java/src/org/chromium/base/task/SequencedTaskRunner.java", 4462 "android/java/src/org/chromium/base/task/SequencedTaskRunnerImpl.java", 4463 "android/java/src/org/chromium/base/task/SerialExecutor.java", 4464 "android/java/src/org/chromium/base/task/SingleThreadTaskRunner.java", 4465 "android/java/src/org/chromium/base/task/SingleThreadTaskRunnerImpl.java", 4466 "android/java/src/org/chromium/base/task/TaskExecutor.java", 4467 "android/java/src/org/chromium/base/task/TaskRunner.java", 4468 "android/java/src/org/chromium/base/task/TaskRunnerImpl.java", 4469 "android/java/src/org/chromium/base/task/ThreadPoolTaskExecutor.java", 4470 "android/java/src/org/chromium/base/task/UiThreadTaskExecutor.java", 4471 ] 4472 4473 if (use_clang_profiling) { 4474 sources += [ 4475 "test/android/javatests/src/org/chromium/base/test/ClangProfiler.java", 4476 ] 4477 } else { 4478 sources += [ "test/android/javatests/src/stub/org/chromium/base/test/ClangProfiler.java" ] 4479 } 4480 4481 resources_package = "org.chromium.base" 4482 4483 proguard_configs = [ "android/proguard/chromium_code.flags" ] 4484 if (!is_cronet_build) { 4485 proguard_configs += [ 4486 "android/proguard/chromium_apk.flags", 4487 "android/proguard/remove_logging.flags", 4488 ] 4489 } 4490 } 4491 4492 android_library("base_shared_preferences_java") { 4493 deps = [ 4494 ":base_java", 4495 "//build/android:build_java", 4496 "//third_party/android_deps:guava_android_java", 4497 "//third_party/androidx:androidx_annotation_annotation_java", 4498 "//third_party/jni_zero:jni_zero_java", 4499 ] 4500 4501 sources = [ 4502 "android/java/src/org/chromium/base/shared_preferences/KeyPrefix.java", 4503 "android/java/src/org/chromium/base/shared_preferences/KnownPreferenceKeyRegistries.java", 4504 "android/java/src/org/chromium/base/shared_preferences/NoOpPreferenceKeyChecker.java", 4505 "android/java/src/org/chromium/base/shared_preferences/PreferenceKeyChecker.java", 4506 "android/java/src/org/chromium/base/shared_preferences/PreferenceKeyRegistry.java", 4507 "android/java/src/org/chromium/base/shared_preferences/SharedPreferencesManager.java", 4508 "android/java/src/org/chromium/base/shared_preferences/StrictPreferenceKeyChecker.java", 4509 ] 4510 } 4511 4512 android_aidl("process_launcher_aidl") { 4513 import_include = [ "android/java/src" ] 4514 sources = [ 4515 "android/java/src/org/chromium/base/process_launcher/IChildProcessService.aidl", 4516 "android/java/src/org/chromium/base/process_launcher/IParentProcess.aidl", 4517 ] 4518 } 4519 4520 android_library("base_javatests") { 4521 testonly = true 4522 4523 deps = [ 4524 ":base_java", 4525 ":base_java_test_support", 4526 ":base_java_test_support_uncommon", 4527 "//base/test:test_support_java", 4528 "//build/android:build_java", 4529 "//third_party/androidx:androidx_annotation_annotation_java", 4530 "//third_party/androidx:androidx_test_monitor_java", 4531 "//third_party/androidx:androidx_test_runner_java", 4532 "//third_party/hamcrest:hamcrest_java", 4533 "//third_party/jni_zero:jni_zero_java", 4534 "//third_party/junit:junit", 4535 "//third_party/mockito:mockito_java", 4536 ] 4537 4538 sources = [ 4539 # AssertsTest doesn't really belong in //base but it's preferable to 4540 # stick it here than create another target for a single test. 4541 "android/javatests/src/org/chromium/base/AdvancedMockContextTest.java", 4542 "android/javatests/src/org/chromium/base/AssertsTest.java", 4543 "android/javatests/src/org/chromium/base/CommandLineFlagsTest.java", 4544 "android/javatests/src/org/chromium/base/CommandLineInitUtilTest.java", 4545 "android/javatests/src/org/chromium/base/CommandLineTest.java", 4546 "android/javatests/src/org/chromium/base/EarlyTraceEventTest.java", 4547 "android/javatests/src/org/chromium/base/IntentUtilsTest.java", 4548 "android/javatests/src/org/chromium/base/LocaleUtilsTest.java", 4549 "android/javatests/src/org/chromium/base/ObserverListTest.java", 4550 "android/javatests/src/org/chromium/base/PackageUtilsTest.java", 4551 "android/javatests/src/org/chromium/base/StrictModeContextTest.java", 4552 "android/javatests/src/org/chromium/base/UserDataHostTest.java", 4553 "android/javatests/src/org/chromium/base/library_loader/EarlyNativeTest.java", 4554 "android/javatests/src/org/chromium/base/metrics/RecordHistogramTest.java", 4555 "android/javatests/src/org/chromium/base/task/AsyncTaskTest.java", 4556 "android/javatests/src/org/chromium/base/task/PostTaskTest.java", 4557 "android/javatests/src/org/chromium/base/task/SequencedTaskRunnerImplTest.java", 4558 "android/javatests/src/org/chromium/base/task/SingleThreadTaskRunnerImplTest.java", 4559 "android/javatests/src/org/chromium/base/task/TaskRunnerImplTest.java", 4560 "android/javatests/src/org/chromium/base/test/metrics/HistogramWatcherTestBase.java", 4561 "android/javatests/src/org/chromium/base/test/metrics/HistogramWatcherTransitionToNativeTest.java", 4562 "android/javatests/src/org/chromium/base/test/metrics/HistogramWatcherWithNativeTest.java", 4563 "android/javatests/src/org/chromium/base/test/metrics/HistogramWatcherWithoutNativeTest.java", 4564 "android/javatests/src/org/chromium/base/util/GarbageCollectionTestUtilsTest.java", 4565 ] 4566 srcjar_deps = [ ":base_javatests_jni" ] 4567 } 4568 4569 source_set("base_javatests_lib") { 4570 testonly = true 4571 deps = [ 4572 ":base", 4573 ":base_javatests_jni", 4574 ] 4575 sources = [ "test/library_loader/early_native_test_helper.cc" ] 4576 } 4577 4578 generate_jni("base_javatests_jni") { 4579 testonly = true 4580 sources = [ "android/javatests/src/org/chromium/base/library_loader/EarlyNativeTest.java" ] 4581 } 4582 4583 android_library("base_java_url_utils_for_test") { 4584 testonly = true 4585 sources = [ 4586 "test/android/javatests/src/org/chromium/base/test/util/UrlUtils.java", 4587 ] 4588 4589 deps = [ 4590 ":base_java", 4591 "//build/android:build_java", 4592 "//third_party/androidx:androidx_annotation_annotation_java", 4593 "//third_party/jni_zero:jni_zero_java", 4594 "//third_party/junit:junit", 4595 ] 4596 } 4597 4598 android_library("base_java_test_support") { 4599 testonly = true 4600 4601 deps = [ 4602 ":base_java", 4603 "//build/android:build_java", 4604 "//third_party/accessibility_test_framework:accessibility_test_framework_java", 4605 "//third_party/android_deps:espresso_java", 4606 "//third_party/android_deps:guava_android_java", 4607 "//third_party/android_sdk:android_test_base_java", 4608 "//third_party/android_sdk:android_test_mock_java", 4609 "//third_party/androidx:androidx_annotation_annotation_java", 4610 "//third_party/androidx:androidx_core_core_java", 4611 "//third_party/androidx:androidx_multidex_multidex_java", 4612 "//third_party/androidx:androidx_test_monitor_java", 4613 "//third_party/androidx:androidx_test_runner_java", 4614 "//third_party/androidx:androidx_test_uiautomator_uiautomator_java", 4615 "//third_party/hamcrest:hamcrest_java", 4616 "//third_party/jni_zero:jni_zero_java", 4617 "//third_party/junit", 4618 ] 4619 4620 public_deps = [ ":base_java_url_utils_for_test" ] 4621 4622 sources = [ 4623 "test/android/java/src/org/chromium/base/multidex/ChromiumMultiDexInstaller.java", 4624 "test/android/javatests/src/org/chromium/base/test/BaseActivityTestRule.java", 4625 "test/android/javatests/src/org/chromium/base/test/BaseChromiumAndroidJUnitRunner.java", 4626 "test/android/javatests/src/org/chromium/base/test/BaseJUnit4ClassRunner.java", 4627 "test/android/javatests/src/org/chromium/base/test/BaseJUnit4TestRule.java", 4628 "test/android/javatests/src/org/chromium/base/test/LoadNative.java", 4629 "test/android/javatests/src/org/chromium/base/test/MockitoErrorHandler.java", 4630 "test/android/javatests/src/org/chromium/base/test/ResetCachedFlagValuesTestHook.java", 4631 "test/android/javatests/src/org/chromium/base/test/ResettersForTestingTestRule.java", 4632 "test/android/javatests/src/org/chromium/base/test/ScreenshotOnFailureStatement.java", 4633 "test/android/javatests/src/org/chromium/base/test/TestListInstrumentationRunListener.java", 4634 "test/android/javatests/src/org/chromium/base/test/TestTraceEvent.java", 4635 "test/android/javatests/src/org/chromium/base/test/UiThreadStatement.java", 4636 "test/android/javatests/src/org/chromium/base/test/UiThreadTest.java", 4637 "test/android/javatests/src/org/chromium/base/test/UnitTestLifetimeAssertRule.java", 4638 "test/android/javatests/src/org/chromium/base/test/UnitTestNoBrowserProcessHook.java", 4639 "test/android/javatests/src/org/chromium/base/test/params/BaseJUnit4RunnerDelegate.java", 4640 "test/android/javatests/src/org/chromium/base/test/params/BlockJUnit4RunnerDelegate.java", 4641 "test/android/javatests/src/org/chromium/base/test/params/MethodParamAnnotationRule.java", 4642 "test/android/javatests/src/org/chromium/base/test/params/MethodParamRule.java", 4643 "test/android/javatests/src/org/chromium/base/test/params/ParameterAnnotations.java", 4644 "test/android/javatests/src/org/chromium/base/test/params/ParameterProvider.java", 4645 "test/android/javatests/src/org/chromium/base/test/params/ParameterSet.java", 4646 "test/android/javatests/src/org/chromium/base/test/params/ParameterizedCommandLineFlags.java", 4647 "test/android/javatests/src/org/chromium/base/test/params/ParameterizedFrameworkMethod.java", 4648 "test/android/javatests/src/org/chromium/base/test/params/ParameterizedRunner.java", 4649 "test/android/javatests/src/org/chromium/base/test/params/ParameterizedRunnerDelegate.java", 4650 "test/android/javatests/src/org/chromium/base/test/params/ParameterizedRunnerDelegateCommon.java", 4651 "test/android/javatests/src/org/chromium/base/test/params/ParameterizedRunnerDelegateFactory.java", 4652 "test/android/javatests/src/org/chromium/base/test/params/SkipCommandLineParameterization.java", 4653 "test/android/javatests/src/org/chromium/base/test/util/AdvancedMockContext.java", 4654 "test/android/javatests/src/org/chromium/base/test/util/AndroidSdkLevelSkipCheck.java", 4655 "test/android/javatests/src/org/chromium/base/test/util/AnnotationProcessingUtils.java", 4656 "test/android/javatests/src/org/chromium/base/test/util/AnnotationRule.java", 4657 "test/android/javatests/src/org/chromium/base/test/util/ApplicationContextWrapper.java", 4658 "test/android/javatests/src/org/chromium/base/test/util/ApplicationTestUtils.java", 4659 "test/android/javatests/src/org/chromium/base/test/util/Batch.java", 4660 "test/android/javatests/src/org/chromium/base/test/util/CallbackHelper.java", 4661 "test/android/javatests/src/org/chromium/base/test/util/CommandLineFlags.java", 4662 "test/android/javatests/src/org/chromium/base/test/util/Criteria.java", 4663 "test/android/javatests/src/org/chromium/base/test/util/CriteriaHelper.java", 4664 "test/android/javatests/src/org/chromium/base/test/util/CriteriaNotSatisfiedException.java", 4665 "test/android/javatests/src/org/chromium/base/test/util/DisableIf.java", 4666 "test/android/javatests/src/org/chromium/base/test/util/DisableIfSkipCheck.java", 4667 "test/android/javatests/src/org/chromium/base/test/util/DisabledTest.java", 4668 "test/android/javatests/src/org/chromium/base/test/util/DoNotBatch.java", 4669 "test/android/javatests/src/org/chromium/base/test/util/DoNotRevive.java", 4670 "test/android/javatests/src/org/chromium/base/test/util/DumpThreadsOnFailureRule.java", 4671 "test/android/javatests/src/org/chromium/base/test/util/EnormousTest.java", 4672 "test/android/javatests/src/org/chromium/base/test/util/EspressoIdleTimeoutRule.java", 4673 "test/android/javatests/src/org/chromium/base/test/util/Feature.java", 4674 "test/android/javatests/src/org/chromium/base/test/util/Features.java", 4675 "test/android/javatests/src/org/chromium/base/test/util/FeaturesBase.java", 4676 "test/android/javatests/src/org/chromium/base/test/util/HistogramWatcher.java", 4677 "test/android/javatests/src/org/chromium/base/test/util/InMemorySharedPreferences.java", 4678 "test/android/javatests/src/org/chromium/base/test/util/InMemorySharedPreferencesContext.java", 4679 "test/android/javatests/src/org/chromium/base/test/util/IntegrationTest.java", 4680 "test/android/javatests/src/org/chromium/base/test/util/JniMocker.java", 4681 "test/android/javatests/src/org/chromium/base/test/util/LooperUtils.java", 4682 "test/android/javatests/src/org/chromium/base/test/util/Manual.java", 4683 "test/android/javatests/src/org/chromium/base/test/util/MaxAndroidSdkLevel.java", 4684 "test/android/javatests/src/org/chromium/base/test/util/MinAndroidSdkLevel.java", 4685 "test/android/javatests/src/org/chromium/base/test/util/PackageManagerWrapper.java", 4686 "test/android/javatests/src/org/chromium/base/test/util/PayloadCallbackHelper.java", 4687 "test/android/javatests/src/org/chromium/base/test/util/RequiresRestart.java", 4688 "test/android/javatests/src/org/chromium/base/test/util/Restriction.java", 4689 "test/android/javatests/src/org/chromium/base/test/util/RestrictionSkipCheck.java", 4690 "test/android/javatests/src/org/chromium/base/test/util/ScalableTimeout.java", 4691 "test/android/javatests/src/org/chromium/base/test/util/SkipCheck.java", 4692 "test/android/javatests/src/org/chromium/base/test/util/TestFileUtil.java", 4693 "test/android/javatests/src/org/chromium/base/test/util/TestThreadUtils.java", 4694 "test/android/javatests/src/org/chromium/base/test/util/TimeoutScale.java", 4695 "test/android/javatests/src/org/chromium/base/test/util/TimeoutTimer.java", 4696 "test/android/javatests/src/org/chromium/base/test/util/UserActionTester.java", 4697 ] 4698 } 4699 4700 generate_jni("base_java_test_support_uncommon_jni") { 4701 testonly = true 4702 sources = [ 4703 "test/android/javatests/src/org/chromium/base/test/ReachedCodeProfiler.java", 4704 "test/android/javatests/src/org/chromium/base/test/task/ThreadPoolTestHelpers.java", 4705 ] 4706 } 4707 4708 android_library("base_java_test_support_uncommon") { 4709 testonly = true 4710 4711 deps = [ 4712 "//base:base_java", 4713 "//third_party/androidx:androidx_annotation_annotation_java", 4714 "//third_party/androidx:androidx_test_monitor_java", 4715 "//third_party/hamcrest:hamcrest_java", 4716 "//third_party/jni_zero:jni_zero_java", 4717 "//third_party/junit:junit", 4718 ] 4719 4720 srcjar_deps = [ ":base_java_test_support_uncommon_jni" ] 4721 sources = [ 4722 "test/android/javatests/src/org/chromium/base/FakeTimeTestRule.java", 4723 "test/android/javatests/src/org/chromium/base/test/BundleTestRule.java", 4724 "test/android/javatests/src/org/chromium/base/test/ReachedCodeProfiler.java", 4725 "test/android/javatests/src/org/chromium/base/test/SetUpStatement.java", 4726 "test/android/javatests/src/org/chromium/base/test/SetUpTestRule.java", 4727 "test/android/javatests/src/org/chromium/base/test/task/SchedulerTestHelpers.java", 4728 "test/android/javatests/src/org/chromium/base/test/task/ThreadPoolTestHelpers.java", 4729 "test/android/javatests/src/org/chromium/base/test/util/CloseableOnMainThread.java", 4730 "test/android/javatests/src/org/chromium/base/test/util/InstrumentationUtils.java", 4731 "test/android/javatests/src/org/chromium/base/test/util/Matchers.java", 4732 ] 4733 } 4734 4735 android_library("base_java_process_launcher_test_support") { 4736 testonly = true 4737 4738 public_deps = [ ":process_launcher_java" ] 4739 4740 sources = [ "test/android/javatests/src/org/chromium/base/process_launcher/TestChildProcessConnection.java" ] 4741 } 4742 4743 robolectric_library("base_junit_test_support") { 4744 sources = [ 4745 "//third_party/robolectric/custom_asynctask/java/src/org/chromium/base/task/test/ShadowAsyncTask.java", 4746 "//third_party/robolectric/custom_asynctask/java/src/org/chromium/base/task/test/ShadowAsyncTaskBridge.java", 4747 "test/android/junit/src/org/chromium/base/task/test/BackgroundShadowAsyncTask.java", 4748 "test/android/junit/src/org/chromium/base/task/test/CustomShadowAsyncTask.java", 4749 "test/android/junit/src/org/chromium/base/task/test/PausedExecutorTestRule.java", 4750 "test/android/junit/src/org/chromium/base/task/test/ShadowPostTask.java", 4751 "test/android/junit/src/org/chromium/base/test/BaseRobolectricAndroidConfigurer.java", 4752 "test/android/junit/src/org/chromium/base/test/BaseRobolectricTestRule.java", 4753 "test/android/junit/src/org/chromium/base/test/BaseRobolectricTestRunner.java", 4754 "test/android/junit/src/org/chromium/base/test/ShadowBuildInfo.java", 4755 "test/android/junit/src/org/chromium/base/test/util/TestRunnerTestRule.java", 4756 ] 4757 4758 # Make sure robolectric tests have classes filtered out of base_java by 4759 # jar_excluded_patterns. 4760 srcjar_deps = [ "//build/android:native_libraries_gen" ] 4761 4762 annotation_processor_deps = 4763 [ "//third_party/android_deps:auto_service_processor" ] 4764 deps = [ 4765 ":base_java", 4766 ":base_java_test_support", 4767 "//testing/android/junit:junit_test_support", 4768 "//third_party/android_deps:com_google_auto_service_auto_service_annotations_java", 4769 "//third_party/androidx:androidx_test_core_java", 4770 "//third_party/androidx:androidx_test_monitor_java", 4771 "//third_party/hamcrest:hamcrest_java", 4772 "//third_party/junit:junit", 4773 ] 4774 } 4775 4776 robolectric_binary("base_junit_tests") { 4777 sources = [ 4778 "android/junit/src/org/chromium/base/ApplicationStatusTest.java", 4779 "android/junit/src/org/chromium/base/BuildInfoTest.java", 4780 "android/junit/src/org/chromium/base/CallbackControllerTest.java", 4781 "android/junit/src/org/chromium/base/CollectionUtilTest.java", 4782 "android/junit/src/org/chromium/base/CommandLineTest.java", 4783 "android/junit/src/org/chromium/base/DiscardableReferencePoolTest.java", 4784 "android/junit/src/org/chromium/base/FeatureListUnitTest.java", 4785 "android/junit/src/org/chromium/base/FileUtilsTest.java", 4786 "android/junit/src/org/chromium/base/LifetimeAssertTest.java", 4787 "android/junit/src/org/chromium/base/LogTest.java", 4788 "android/junit/src/org/chromium/base/MathUtilsTest.java", 4789 "android/junit/src/org/chromium/base/MutableFlagWithSafeDefaultUnitTest.java", 4790 "android/junit/src/org/chromium/base/PathUtilsTest.java", 4791 "android/junit/src/org/chromium/base/PiiEliderTest.java", 4792 "android/junit/src/org/chromium/base/PromiseTest.java", 4793 "android/junit/src/org/chromium/base/ResettersForTestingTest.java", 4794 "android/junit/src/org/chromium/base/TimeUtilsTest.java", 4795 "android/junit/src/org/chromium/base/TraceEventTest.java", 4796 "android/junit/src/org/chromium/base/UnownedUserDataHostTest.java", 4797 "android/junit/src/org/chromium/base/UnownedUserDataKeyTest.java", 4798 "android/junit/src/org/chromium/base/jank_tracker/FrameMetricsListenerTest.java", 4799 "android/junit/src/org/chromium/base/jank_tracker/FrameMetricsStoreTest.java", 4800 "android/junit/src/org/chromium/base/jank_tracker/JankActivityTrackerTest.java", 4801 "android/junit/src/org/chromium/base/jank_tracker/JankMetricUMARecorderTest.java", 4802 "android/junit/src/org/chromium/base/jank_tracker/JankReportingRunnableTest.java", 4803 "android/junit/src/org/chromium/base/jank_tracker/JankReportingSchedulerTest.java", 4804 "android/junit/src/org/chromium/base/library_loader/LinkerTest.java", 4805 "android/junit/src/org/chromium/base/memory/MemoryPressureMonitorTest.java", 4806 "android/junit/src/org/chromium/base/memory/MemoryPurgeManagerTest.java", 4807 "android/junit/src/org/chromium/base/metrics/CachingUmaRecorderTest.java", 4808 "android/junit/src/org/chromium/base/process_launcher/ChildConnectionAllocatorTest.java", 4809 "android/junit/src/org/chromium/base/process_launcher/ChildProcessConnectionTest.java", 4810 "android/junit/src/org/chromium/base/shared_preferences/KeyPrefixTest.java", 4811 "android/junit/src/org/chromium/base/shared_preferences/KnownPreferenceKeyRegistriesTest.java", 4812 "android/junit/src/org/chromium/base/shared_preferences/SharedPreferencesManagerTest.java", 4813 "android/junit/src/org/chromium/base/shared_preferences/StrictPreferenceKeyCheckerTest.java", 4814 "android/junit/src/org/chromium/base/supplier/LazyOneshotSupplierImplTest.java", 4815 "android/junit/src/org/chromium/base/supplier/LazyOneshotSupplierTest.java", 4816 "android/junit/src/org/chromium/base/supplier/ObservableSupplierImplTest.java", 4817 "android/junit/src/org/chromium/base/supplier/OneShotCallbackTest.java", 4818 "android/junit/src/org/chromium/base/supplier/OneshotSupplierImplTest.java", 4819 "android/junit/src/org/chromium/base/supplier/SupplierUtilsTest.java", 4820 "android/junit/src/org/chromium/base/supplier/SyncOneshotSupplierImplTest.java", 4821 "android/junit/src/org/chromium/base/supplier/TransitiveObservableSupplierTest.java", 4822 "android/junit/src/org/chromium/base/supplier/UnownedUserDataSupplierTest.java", 4823 "android/junit/src/org/chromium/base/task/AsyncTaskThreadTest.java", 4824 "android/junit/src/org/chromium/base/task/SequencedTaskRunnerTaskMigrationTest.java", 4825 "android/junit/src/org/chromium/base/util/GarbageCollectionTestUtilsUnitTest.java", 4826 "test/android/junit/src/org/chromium/base/test/SetUpStatementTest.java", 4827 "test/android/junit/src/org/chromium/base/test/TestListInstrumentationRunListenerTest.java", 4828 "test/android/junit/src/org/chromium/base/test/params/ExampleParameterizedTest.java", 4829 "test/android/junit/src/org/chromium/base/test/params/ParameterizedRunnerDelegateCommonTest.java", 4830 "test/android/junit/src/org/chromium/base/test/params/ParameterizedRunnerDelegateFactoryTest.java", 4831 "test/android/junit/src/org/chromium/base/test/params/ParameterizedRunnerTest.java", 4832 "test/android/junit/src/org/chromium/base/test/params/ParameterizedTestNameTest.java", 4833 "test/android/junit/src/org/chromium/base/test/util/AndroidSdkLevelSkipCheckTest.java", 4834 "test/android/junit/src/org/chromium/base/test/util/AnnotationProcessingUtilsTest.java", 4835 "test/android/junit/src/org/chromium/base/test/util/CommandLineFlagsNoClassAnnotationCheckTest.java", 4836 "test/android/junit/src/org/chromium/base/test/util/CommandLineFlagsWithClassAnnotationCheckTest.java", 4837 "test/android/junit/src/org/chromium/base/test/util/DisableIfTest.java", 4838 "test/android/junit/src/org/chromium/base/test/util/DisabledTestForClassRobolectricTest.java", 4839 "test/android/junit/src/org/chromium/base/test/util/DisabledTestRobolectricTest.java", 4840 "test/android/junit/src/org/chromium/base/test/util/RestrictionSkipCheckTest.java", 4841 "test/android/junit/src/org/chromium/base/test/util/SkipCheckTest.java", 4842 ] 4843 deps = [ 4844 ":base_java", 4845 ":base_java_process_launcher_test_support", 4846 ":base_java_test_support", 4847 ":base_java_test_support_uncommon", 4848 ":base_junit_test_support", 4849 ":base_shared_preferences_java", 4850 "//base/test:test_support_java", 4851 "//third_party/android_deps:guava_android_java", 4852 "//third_party/androidx:androidx_annotation_annotation_java", 4853 "//third_party/androidx:androidx_test_core_java", 4854 "//third_party/androidx:androidx_test_runner_java", 4855 "//third_party/hamcrest:hamcrest_java", 4856 "//third_party/jni_zero:jni_zero_java", 4857 ] 4858 } 4859 4860 java_cpp_enum("base_android_java_enums_srcjar") { 4861 sources = [ 4862 "android/application_status_listener.h", 4863 "android/child_process_binding_types.h", 4864 "android/library_loader/library_loader_hooks.h", 4865 "android/linker/linker_jni.h", 4866 "android/task_scheduler/task_runner_android.h", 4867 "android/task_scheduler/task_traits_android.h", 4868 "memory/memory_pressure_listener.h", 4869 "metrics/histogram_base.h", 4870 "task/task_traits.h", 4871 ] 4872 if (enable_base_tracing) { 4873 sources += [ "trace_event/trace_config.h" ] 4874 } 4875 } 4876 4877 generate_jni("base_profiler_test_support_jni") { 4878 testonly = true 4879 sources = 4880 [ "android/javatests/src/org/chromium/base/profiler/TestSupport.java" ] 4881 } 4882 4883 android_library("base_profiler_test_support_java") { 4884 testonly = true 4885 sources = 4886 [ "android/javatests/src/org/chromium/base/profiler/TestSupport.java" ] 4887 srcjar_deps = [ ":base_profiler_test_support_jni" ] 4888 4889 deps = [ 4890 "//build/android:build_java", 4891 "//third_party/jni_zero:jni_zero_java", 4892 ] 4893 } 4894 4895 android_library("base_java_unittest_support") { 4896 testonly = true 4897 4898 deps = [ 4899 ":base_java", 4900 "//third_party/jni_zero:jni_zero_java", 4901 ] 4902 4903 sources = [ 4904 "test/android/java/src/org/chromium/base/ContentUriTestUtils.java", 4905 "test/android/java/src/org/chromium/base/JavaHandlerThreadHelpers.java", 4906 ] 4907 } 4908} # is_android 4909 4910# Keep the list of fuzzer_tests in alphabetical order. 4911fuzzer_test("base64_decode_fuzzer") { 4912 sources = [ "base64_decode_fuzzer.cc" ] 4913 deps = [ "//base" ] 4914} 4915 4916fuzzer_test("base64_encode_fuzzer") { 4917 sources = [ "base64_encode_fuzzer.cc" ] 4918 deps = [ "//base" ] 4919} 4920 4921fuzzer_test("base64url_fuzzer") { 4922 sources = [ "base64url_fuzzer.cc" ] 4923 deps = [ "//base" ] 4924} 4925 4926fuzzer_test("base_json_correctness_fuzzer") { 4927 sources = [ "json/json_correctness_fuzzer.cc" ] 4928 deps = [ ":base" ] 4929 dict = "//testing/libfuzzer/fuzzers/dicts/json.dict" 4930} 4931 4932fuzzer_test("base_json_reader_fuzzer") { 4933 sources = [ "json/json_reader_fuzzer.cc" ] 4934 deps = [ "//base" ] 4935 dict = "//testing/libfuzzer/fuzzers/dicts/json.dict" 4936} 4937 4938fuzzer_test("base_json_string_escape_fuzzer") { 4939 sources = [ "json/string_escape_fuzzer.cc" ] 4940 deps = [ "//base" ] 4941} 4942 4943if (is_mac) { 4944 protoc_convert("base_mach_port_rendezvous_convert_corpus") { 4945 sources = [ 4946 "test/data/mach_port_rendezvous_fuzz/dead_name.textproto", 4947 "test/data/mach_port_rendezvous_fuzz/send.textproto", 4948 ] 4949 inputs = [ "//testing/libfuzzer/fuzzers/mach/mach_message.proto" ] 4950 output_pattern = "$target_gen_dir/base_mach_port_rendezvous_corpus/{{source_name_part}}.binarypb" 4951 args = [ 4952 "--encode=mach_fuzzer.MachMessage", 4953 "-I", 4954 rebase_path("//"), 4955 rebase_path(inputs[0]), 4956 ] 4957 } 4958 fuzzer_test("base_mach_port_rendezvous_fuzzer") { 4959 sources = [ "mac/mach_port_rendezvous_fuzzer.cc" ] 4960 deps = [ 4961 "//base", 4962 "//testing/libfuzzer/fuzzers/mach:converter", 4963 "//third_party/libprotobuf-mutator", 4964 ] 4965 seed_corpus = "$target_gen_dir/base_mach_port_rendezvous_corpus" 4966 seed_corpus_deps = [ ":base_mach_port_rendezvous_convert_corpus" ] 4967 } 4968} 4969 4970fuzzer_test("command_line_fuzzer") { 4971 sources = [ "command_line_fuzzer.cc" ] 4972 deps = [ "//base" ] 4973} 4974 4975fuzzer_test("escape_fuzzer") { 4976 sources = [ "strings/escape_fuzzer.cc" ] 4977 deps = [ "//base" ] 4978} 4979 4980fuzzer_test("file_path_fuzzer") { 4981 sources = [ "files/file_path_fuzzer.cc" ] 4982 deps = [ "//base" ] 4983} 4984 4985if (is_linux || is_chromeos) { 4986 fuzzer_test("mime_util_xdg_fuzzer") { 4987 sources = [ "nix/mime_util_xdg_fuzzer.cc" ] 4988 deps = [ "//base" ] 4989 } 4990} 4991 4992fuzzer_test("string_number_conversions_fuzzer") { 4993 sources = [ "strings/string_number_conversions_fuzzer.cc" ] 4994 deps = [ "//base" ] 4995} 4996 4997fuzzer_test("string_pattern_fuzzer") { 4998 sources = [ "strings/pattern_fuzzer.cc" ] 4999 deps = [ "//base" ] 5000} 5001 5002fuzzer_test("string_tokenizer_fuzzer") { 5003 sources = [ "strings/string_tokenizer_fuzzer.cc" ] 5004 deps = [ "//base" ] 5005} 5006 5007fuzzer_test("substring_set_matcher_fuzzer") { 5008 sources = [ "substring_set_matcher/substring_set_matcher_fuzzer.cc" ] 5009 deps = [ "//base" ] 5010} 5011 5012fuzzer_test("sys_string_conversions_fuzzer") { 5013 sources = [ "strings/sys_string_conversions_fuzzer.cc" ] 5014 deps = [ "//base" ] 5015} 5016 5017fuzzer_test("time_delta_from_string_fuzzer") { 5018 sources = [ "time/time_delta_from_string_fuzzer.cc" ] 5019 deps = [ "//base" ] 5020} 5021 5022fuzzer_test("time_fuzzer") { 5023 sources = [ "time/time_fuzzer.cc" ] 5024 deps = [ 5025 "//base", 5026 "//base/test:test_support", 5027 ] 5028} 5029 5030fuzzer_test("utf_string_conversions_fuzzer") { 5031 sources = [ "strings/utf_string_conversions_fuzzer.cc" ] 5032 deps = [ "//base" ] 5033} 5034 5035fuzzer_test("pickle_fuzzer") { 5036 sources = [ "pickle_fuzzer.cc" ] 5037 deps = [ 5038 "//base", 5039 "//base/test:test_support", 5040 ] 5041} 5042 5043# TODO(1151236): Temporarily move test_support from 5044# //base/allocator/partition_allocator/src/partition_alloc/BUILD.gn to //base/BUILD.gn. After 5045# fixing partition_allocator tests issue, we will move test_support to 5046# //base/allocator/partition_allocator/src/partition_alloc/BUILD.gn again. 5047source_set("partition_alloc_test_support") { 5048 testonly = true 5049 5050 sources = [ 5051 "allocator/partition_allocator/src/partition_alloc/extended_api.cc", 5052 "allocator/partition_allocator/src/partition_alloc/extended_api.h", 5053 "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_for_testing.h", 5054 "allocator/partition_allocator/src/partition_alloc/partition_alloc_for_testing.h", 5055 "allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_counting_impl_for_test.h", 5056 ] 5057 if (is_posix) { 5058 sources += [ "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_posix_for_testing.cc" ] 5059 } 5060 if (is_fuchsia) { 5061 sources += [ 5062 "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_fuchsia_for_testing.cc", 5063 "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_posix_for_testing.cc", 5064 ] 5065 } 5066 if (is_win) { 5067 sources += [ "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_win_for_testing.cc" ] 5068 } 5069 if (is_apple) { 5070 sources += [ "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_apple_for_testing.mm" ] 5071 } 5072 if (is_linux || is_chromeos) { 5073 sources += [ "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_linux_for_testing.cc" ] 5074 } 5075 if (is_android) { 5076 sources += [ "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_android_for_testing.cc" ] 5077 } 5078 public_deps = [ 5079 "allocator/partition_allocator:buildflags", 5080 "//build:branding_buildflags", 5081 "//build/config/compiler:compiler_buildflags", 5082 ] 5083 public_configs = [] 5084 if (is_fuchsia) { 5085 public_deps += [ 5086 "//third_party/fuchsia-sdk/sdk/pkg/fit", 5087 "//third_party/fuchsia-sdk/sdk/pkg/sync", 5088 "//third_party/fuchsia-sdk/sdk/pkg/zx", 5089 ] 5090 5091 # Needed for users of spinning_mutex.h, which for performance reasons, 5092 # contains inlined calls to `libsync` inside the header file. 5093 # It appends an entry to the "libs" section of the dependent target. 5094 public_configs += [ ":fuchsia_sync_lib" ] 5095 } 5096 deps = [ ":base" ] 5097 5098 if (!is_debug) { 5099 configs -= [ "//build/config/compiler:default_optimization" ] 5100 configs += [ "//build/config/compiler:optimize_speed" ] 5101 } 5102} 5103 5104if (enable_base_tracing) { 5105 # This group makes visible those targets in subdirectories that are not 5106 # explicitly depended on. 5107 group("gn_all") { 5108 testonly = true 5109 deps = [ "//base/tracing:perfetto_diff_tests" ] 5110 } 5111} 5112