# Copyright 2013 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# HOW TO WRITE CONDITIONALS IN THIS FILE
# ======================================
#
# In many other places, one would write a conditional that expresses all the
# cases when a source file is used or unused, and then either add or subtract
# it from the sources list in that case
#
# Since base includes so many low-level things that vary widely and
# unpredictably for the various build types, we prefer a slightly different
# style. Instead, there are big per-platform blocks of inclusions and
# exclusions. If a given file has an inclusion or exclusion rule that applies
# for multiple conditions, prefer to duplicate it in both lists. This makes it
# a bit easier to see which files apply in which cases rather than having a
# huge sequence of random-looking conditionals.

import("//base/allocator/allocator.gni")
import("//base/allocator/partition_allocator/partition_alloc.gni")
import("//base/debug/debug.gni")
import("//base/trace_event/tracing.gni")
import("//build/buildflag_header.gni")
import("//build/config/arm.gni")
import("//build/config/c++/c++.gni")
import("//build/config/cast.gni")
import("//build/config/chromeos/ui_mode.gni")
import("//build/config/compiler/compiler.gni")
import("//build/config/cronet/config.gni")
import("//build/config/dcheck_always_on.gni")
import("//build/config/ios/config.gni")
import("//build/config/logging.gni")
import("//build/config/nacl/config.gni")
import("//build/config/profiling/profiling.gni")
import("//build/config/rust.gni")
import("//build/config/sanitizers/sanitizers.gni")
import("//build/config/sysroot.gni")
import("//build/config/ui.gni")
import("//build/nocompile.gni")
import("//build/timestamp.gni")
import("//build/util/process_version.gni")
import("//build_overrides/build.gni")
import("//testing/libfuzzer/fuzzer_test.gni")
import("//testing/test.gni")

if (is_ios) {
  # Used to access ios_is_app_extension variable definition.
  import("//build/config/ios/ios_sdk.gni")
}

if (is_mac) {
  # Used to generate fuzzer corpus :base_mach_port_rendezvous_convert_corpus.
  import("//third_party/protobuf/proto_library.gni")
}

if (is_win) {
  import("//build/config/win/control_flow_guard.gni")
}

declare_args() {
  # Unsafe developer build. Has developer-friendly features that may weaken or
  # disable security measures like sandboxing or ASLR.
  # IMPORTANT: Unsafe developer builds should never be distributed to end users.
  is_unsafe_developer_build = !is_official_build

  # Set to true to disable COM init check hooks.
  com_init_check_hook_disabled = false

  # Set to true to enable mutex priority inheritance. See the comments in
  # LockImpl::PriorityInheritanceAvailable() in lock_impl_posix.cc for the
  # platform requirements to safely enable priority inheritance.
  enable_mutex_priority_inheritance = false

  # Control whether the ios stack sampling profiler is enabled. This flag is
  # only supported on iOS 64-bit architecture, but some project build //base
  # for 32-bit architecture.
  ios_stack_profiler_enabled = true
}

# Mutex priority inheritance is disabled by default due to security
# vulnerabilities in older versions of Linux kernel and glibc. However,
# Chromecast builds have full control over the platform and ensure that
# the kernel and glibc versions used have patched the vulnerabilities,
# so it is safe to use mutex priority inheritance on Chromecast platform.
assert(!enable_mutex_priority_inheritance || is_castos || is_cast_android,
       "Do not enable PI mutexes without consulting the security team")

assert(!is_nacl || is_nacl_saigo,
       "base must not be built in most nacl toolchains")

# This is here instead of in //build because //build is DEPS'd in by a few
# subprojects that still support MSVC.
assert(!is_win || is_clang,
       "only clang-cl is supported on Windows, see https://crbug.com/988071")

# Whether we should provide a `__libcpp_verbose_abort` handler that discards
# `__VA_ARGS__` and just calls base::ImmediateCrash() for hardening failures.
# This conditional matches `defined(OFFICIAL_BUILD) && !DCHECK_IS_ON()` in
# base/check.h. I.e. we optimize `::std::__libcpp_verbose_abort(__VA_ARGS__)`
# to discard `__VA_ARGS__` when we disable logging from CHECK() failures.
use_nodebug_assertion =
    use_custom_libcxx && is_official_build && !is_debug && !dcheck_always_on

# Determines whether libevent should be dep.
dep_libevent = !is_fuchsia && !is_win && !is_mac && !is_nacl

# Determines whether message_pump_libevent should be used.
use_libevent = dep_libevent && !is_ios

if (is_android || is_robolectric) {
  import("//build/config/android/rules.gni")
  import("//third_party/jni_zero/jni_zero.gni")
}

if (is_fuchsia) {
  import("//third_party/fuchsia-gn-sdk/src/fidl_library.gni")
}

# The Rust implementation of base::JSONReader. NaCl depends on base and doesn't
# have a Rust toolchain, so we need a fallback to C++ for it until it removes
# its dependency on //base.
#
# TODO(crbug.com/1280708): Drop toolchain_has_rust and move the C++ parser into
# components/nacl to just run in-process there. Don't compile base::JSONReader
# on NaCL at all.
build_rust_json_reader = toolchain_has_rust && enable_rust_json

# Rust to C++ type conversions. Also can not be enabled while NaCl depends on
# //base.
build_rust_base_conversions = toolchain_has_rust && enable_rust_base_conversions

assert(build_rust_base_conversions || !build_rust_json_reader,
       "Cannot enable Rust JSON decoder without also base conversions")

buildflag_header("rust_buildflags") {
  header = "rust_buildflags.h"
  flags = [
    "BUILD_RUST_JSON_READER=$build_rust_json_reader",
    "BUILD_RUST_BASE_CONVERSIONS=$build_rust_base_conversions",
  ]
}

if (is_win) {
  # This is in a separate config so the flags can be applied to dependents.
  # ldflags in GN aren't automatically inherited.
  config("base_win_linker_flags") {
    ldflags = [
      # Linking with shcore.lib causes the shcore api forwarder dll to load.
      "/DELAYLOAD:api-ms-win-shcore-scaling-l1-1-1.dll",

      # Linking with OneCore.lib causes the next three dlls to load.
      "/DELAYLOAD:api-ms-win-core-realtime-l1-1-1.dll",
      "/DELAYLOAD:api-ms-win-power-base-l1-1-0.dll",
      "/DELAYLOAD:api-ms-win-power-setting-l1-1-0.dll",
      "/DELAYLOAD:cfgmgr32.dll",
      "/DELAYLOAD:powrprof.dll",
      "/DELAYLOAD:setupapi.dll",
      "/DELAYLOAD:shcore.dll",
    ]
  }
}

if (is_android) {
  config("android_system_libs") {
    libs = [
      "android",
      "log",  # Used by logging.cc.
    ]
  }
}

if (is_fuchsia) {
  config("fuchsia_sync_lib") {
    libs = [
      "sync",  # Used by spinning_mutex.h.
    ]
  }
}

config("perfetto_config") {
  if (use_perfetto_client_library) {
    defines = [
      # Use TRACE_EVENT macro implementation from Perfetto. See
      # trace_event/trace_event_common.h.
      "BASE_USE_PERFETTO_CLIENT_LIBRARY=1",
    ]
  }
}

if (enable_pkeys && is_debug) {
  config("no_stack_protector") {
    cflags = [ "-fno-stack-protector" ]
  }
}

buildflag_header("ios_cronet_buildflags") {
  header = "ios_cronet_buildflags.h"
  header_dir = "base/message_loop"
  flags = [ "CRONET_BUILD=$is_cronet_build" ]
}

enable_message_pump_epoll = is_linux || is_chromeos || is_android
buildflag_header("message_pump_buildflags") {
  header = "message_pump_buildflags.h"
  header_dir = "base/message_loop"
  flags = [ "ENABLE_MESSAGE_PUMP_EPOLL=$enable_message_pump_epoll" ]
}

# Base and everything it depends on should be a static library rather than
# a source set. Base is more of a "library" in the classic sense in that many
# small parts of it are used in many different contexts. This combined with a
# few static initializers floating around means that dead code stripping
# still leaves a lot of code behind that isn't always used. For example, this
# saves more than 40K for a smaller target like chrome_elf.
#
# Use static libraries for the helper stuff as well for things like
# //base/debug since those targets refer back to base code, which will force
# base compilation units to be linked in where they wouldn't have otherwise.
# This does not include test code (test support and anything in the test
# directory) which should use source_set as is recommended for GN targets).
component("base") {
  sources = [
    "allocator/allocator_check.cc",
    "allocator/allocator_check.h",
    "allocator/dispatcher/configuration.h",
    "allocator/dispatcher/dispatcher.cc",
    "allocator/dispatcher/dispatcher.h",
    "allocator/dispatcher/initializer.h",
    "allocator/dispatcher/internal/dispatch_data.cc",
    "allocator/dispatcher/internal/dispatch_data.h",
    "allocator/dispatcher/internal/dispatcher_internal.h",
    "allocator/dispatcher/internal/tools.h",
    "allocator/dispatcher/memory_tagging.cc",
    "allocator/dispatcher/memory_tagging.h",
    "allocator/dispatcher/notification_data.h",
    "allocator/dispatcher/reentry_guard.cc",
    "allocator/dispatcher/reentry_guard.h",
    "allocator/dispatcher/subsystem.h",
    "allocator/dispatcher/tls.cc",
    "allocator/dispatcher/tls.h",
    "at_exit.cc",
    "at_exit.h",
    "atomic_ref_count.h",
    "atomic_sequence_num.h",
    "atomicops.h",
    "atomicops_internals_atomicword_compat.h",
    "atomicops_internals_portable.h",
    "auto_reset.h",
    "barrier_callback.h",
    "barrier_closure.cc",
    "barrier_closure.h",
    "base64.cc",
    "base64.h",
    "base64url.cc",
    "base64url.h",
    "base_switches.h",
    "big_endian.cc",
    "big_endian.h",
    "bit_cast.h",
    "bits.h",
    "build_time.h",
    "callback_list.cc",
    "callback_list.h",
    "cancelable_callback.h",
    "check.cc",
    "check.h",
    "check_deref.h",
    "check_is_test.cc",
    "check_is_test.h",
    "check_op.cc",
    "check_op.h",
    "command_line.cc",
    "command_line.h",
    "compiler_specific.h",
    "component_export.h",
    "containers/adapters.h",
    "containers/buffer_iterator.h",
    "containers/checked_iterators.h",
    "containers/circular_deque.h",
    "containers/contains.h",
    "containers/dynamic_extent.h",
    "containers/enum_set.h",
    "containers/extend.h",
    "containers/fixed_flat_map.h",
    "containers/fixed_flat_set.h",
    "containers/flat_map.h",
    "containers/flat_set.h",
    "containers/flat_tree.h",
    "containers/heap_array.h",
    "containers/id_map.h",
    "containers/intrusive_heap.cc",
    "containers/intrusive_heap.h",
    "containers/linked_list.cc",
    "containers/linked_list.h",
    "containers/lru_cache.h",
    "containers/map_util.h",
    "containers/small_map.h",
    "containers/span.h",
    "containers/span_reader.h",
    "containers/span_writer.h",
    "containers/stack.h",
    "containers/to_value_list.h",
    "containers/to_vector.h",
    "containers/unique_ptr_adapters.h",
    "containers/util.h",
    "containers/vector_buffer.h",
    "cpu_reduction_experiment.cc",
    "cpu_reduction_experiment.h",
    "critical_closure.h",
    "dcheck_is_on.h",
    "debug/alias.cc",
    "debug/alias.h",
    "debug/asan_invalid_access.cc",
    "debug/asan_invalid_access.h",
    "debug/asan_service.cc",
    "debug/asan_service.h",
    "debug/debugger.cc",
    "debug/debugger.h",
    "debug/dump_without_crashing.cc",
    "debug/dump_without_crashing.h",
    "debug/leak_annotations.h",
    "debug/profiler.cc",
    "debug/profiler.h",
    "debug/task_trace.cc",
    "debug/task_trace.h",
    "environment.cc",
    "environment.h",
    "export_template.h",
    "feature_list.cc",
    "feature_list.h",
    "features.cc",
    "features.h",
    "file_version_info.h",
    "files/block_tests_writing_to_special_dirs.cc",
    "files/block_tests_writing_to_special_dirs.h",
    "files/dir_reader_fallback.h",
    "files/file.cc",
    "files/file.h",
    "files/file_error_or.h",
    "files/file_path.cc",
    "files/file_path.h",
    "files/file_tracing.cc",
    "files/file_tracing.h",
    "files/memory_mapped_file.cc",
    "files/memory_mapped_file.h",
    "files/platform_file.h",
    "files/safe_base_name.cc",
    "files/safe_base_name.h",
    "files/scoped_file.cc",
    "files/scoped_file.h",
    "format_macros.h",
    "functional/bind.h",
    "functional/bind_internal.h",
    "functional/callback.h",
    "functional/callback_forward.h",
    "functional/callback_helpers.cc",
    "functional/callback_helpers.h",
    "functional/callback_internal.cc",
    "functional/callback_internal.h",
    "functional/callback_tags.h",
    "functional/concurrent_callbacks.h",
    "functional/concurrent_closures.cc",
    "functional/concurrent_closures.h",
    "functional/disallow_unretained.h",
    "functional/function_ref.h",
    "functional/overloaded.h",
    "functional/unretained_traits.h",
    "gtest_prod_util.cc",
    "gtest_prod_util.h",
    "hash/hash.cc",
    "hash/hash.h",
    "hash/legacy_hash.cc",
    "hash/legacy_hash.h",
    "json/json_common.h",
    "json/json_parser.cc",
    "json/json_parser.h",
    "json/json_reader.cc",
    "json/json_reader.h",
    "json/json_string_value_serializer.cc",
    "json/json_string_value_serializer.h",
    "json/json_value_converter.cc",
    "json/json_value_converter.h",
    "json/json_writer.cc",
    "json/json_writer.h",
    "json/string_escape.cc",
    "json/string_escape.h",
    "json/values_util.cc",
    "json/values_util.h",
    "lazy_instance.h",
    "lazy_instance_helpers.cc",
    "lazy_instance_helpers.h",
    "linux_util.cc",
    "linux_util.h",
    "location.cc",
    "location.h",
    "logging.cc",
    "logging.h",
    "macros/concat.h",
    "macros/if.h",
    "macros/is_empty.h",
    "macros/remove_parens.h",
    "macros/uniquify.h",
    "memory/aligned_memory.cc",
    "memory/aligned_memory.h",
    "memory/free_deleter.h",
    "memory/memory_pressure_listener.cc",
    "memory/memory_pressure_listener.h",
    "memory/memory_pressure_monitor.cc",
    "memory/memory_pressure_monitor.h",
    "memory/nonscannable_memory.cc",
    "memory/nonscannable_memory.h",
    "memory/page_size.h",
    "memory/platform_shared_memory_handle.cc",
    "memory/platform_shared_memory_handle.h",
    "memory/platform_shared_memory_mapper.h",
    "memory/platform_shared_memory_region.cc",
    "memory/platform_shared_memory_region.h",
    "memory/protected_memory.h",
    "memory/ptr_util.h",
    "memory/raw_ptr.h",
    "memory/raw_ptr_asan_bound_arg_tracker.cc",
    "memory/raw_ptr_asan_bound_arg_tracker.h",
    "memory/raw_ptr_asan_hooks.cc",
    "memory/raw_ptr_asan_hooks.h",
    "memory/raw_ptr_asan_service.cc",
    "memory/raw_ptr_asan_service.h",
    "memory/raw_ptr_cast.h",
    "memory/raw_ptr_exclusion.h",
    "memory/raw_ref.h",
    "memory/raw_scoped_refptr_mismatch_checker.h",
    "memory/raw_span.h",
    "memory/read_only_shared_memory_region.cc",
    "memory/read_only_shared_memory_region.h",
    "memory/ref_counted.cc",
    "memory/ref_counted.h",
    "memory/ref_counted_delete_on_sequence.h",
    "memory/ref_counted_memory.cc",
    "memory/ref_counted_memory.h",
    "memory/safe_ref.h",
    "memory/safe_ref_traits.h",
    "memory/safety_checks.h",
    "memory/scoped_policy.h",
    "memory/scoped_refptr.h",
    "memory/shared_memory_hooks.h",
    "memory/shared_memory_mapper.cc",
    "memory/shared_memory_mapper.h",
    "memory/shared_memory_mapping.cc",
    "memory/shared_memory_mapping.h",
    "memory/shared_memory_security_policy.cc",
    "memory/shared_memory_security_policy.h",
    "memory/shared_memory_tracker.cc",
    "memory/shared_memory_tracker.h",
    "memory/singleton.h",
    "memory/stack_allocated.h",
    "memory/unsafe_shared_memory_pool.cc",
    "memory/unsafe_shared_memory_pool.h",
    "memory/unsafe_shared_memory_region.cc",
    "memory/unsafe_shared_memory_region.h",
    "memory/values_equivalent.h",
    "memory/weak_auto_reset.h",
    "memory/weak_ptr.cc",
    "memory/weak_ptr.h",
    "memory/writable_shared_memory_region.cc",
    "memory/writable_shared_memory_region.h",
    "message_loop/message_pump.cc",
    "message_loop/message_pump.h",
    "message_loop/message_pump_default.cc",
    "message_loop/message_pump_default.h",
    "message_loop/message_pump_for_io.h",
    "message_loop/message_pump_for_ui.h",
    "message_loop/message_pump_type.h",
    "message_loop/work_id_provider.cc",
    "message_loop/work_id_provider.h",
    "metrics/bucket_ranges.cc",
    "metrics/bucket_ranges.h",
    "metrics/crc32.cc",
    "metrics/crc32.h",
    "metrics/dummy_histogram.cc",
    "metrics/dummy_histogram.h",
    "metrics/field_trial.cc",
    "metrics/field_trial.h",
    "metrics/field_trial_list_including_low_anonymity.cc",
    "metrics/field_trial_list_including_low_anonymity.h",
    "metrics/field_trial_param_associator.cc",
    "metrics/field_trial_param_associator.h",
    "metrics/field_trial_params.cc",
    "metrics/field_trial_params.h",
    "metrics/histogram.cc",
    "metrics/histogram.h",
    "metrics/histogram_base.cc",
    "metrics/histogram_base.h",
    "metrics/histogram_delta_serialization.cc",
    "metrics/histogram_delta_serialization.h",
    "metrics/histogram_flattener.h",
    "metrics/histogram_functions.cc",
    "metrics/histogram_functions.h",
    "metrics/histogram_macros.h",
    "metrics/histogram_macros_internal.h",
    "metrics/histogram_macros_local.h",
    "metrics/histogram_samples.cc",
    "metrics/histogram_samples.h",
    "metrics/histogram_snapshot_manager.cc",
    "metrics/histogram_snapshot_manager.h",
    "metrics/metrics_hashes.cc",
    "metrics/metrics_hashes.h",
    "metrics/persistent_histogram_allocator.cc",
    "metrics/persistent_histogram_allocator.h",
    "metrics/persistent_memory_allocator.cc",
    "metrics/persistent_memory_allocator.h",
    "metrics/persistent_sample_map.cc",
    "metrics/persistent_sample_map.h",
    "metrics/ranges_manager.cc",
    "metrics/ranges_manager.h",
    "metrics/record_histogram_checker.h",
    "metrics/sample_map.cc",
    "metrics/sample_map.h",
    "metrics/sample_vector.cc",
    "metrics/sample_vector.h",
    "metrics/single_sample_metrics.cc",
    "metrics/single_sample_metrics.h",
    "metrics/sparse_histogram.cc",
    "metrics/sparse_histogram.h",
    "metrics/statistics_recorder.cc",
    "metrics/statistics_recorder.h",
    "metrics/user_metrics.cc",
    "metrics/user_metrics.h",
    "metrics/user_metrics_action.h",
    "no_destructor.h",
    "not_fatal_until.h",
    "notimplemented.h",
    "notreached.h",
    "observer_list.h",
    "observer_list_internal.cc",
    "observer_list_internal.h",
    "observer_list_threadsafe.cc",
    "observer_list_threadsafe.h",
    "observer_list_types.cc",
    "observer_list_types.h",
    "one_shot_event.cc",
    "one_shot_event.h",
    "parameter_pack.h",
    "pending_task.cc",
    "pending_task.h",
    "pickle.cc",
    "pickle.h",
    "power_monitor/battery_level_provider.cc",
    "power_monitor/battery_level_provider.h",
    "power_monitor/battery_state_sampler.cc",
    "power_monitor/battery_state_sampler.h",
    "power_monitor/power_monitor.cc",
    "power_monitor/power_monitor.h",
    "power_monitor/power_monitor_device_source.cc",
    "power_monitor/power_monitor_device_source.h",
    "power_monitor/power_monitor_features.cc",
    "power_monitor/power_monitor_features.h",
    "power_monitor/power_monitor_source.cc",
    "power_monitor/power_monitor_source.h",
    "power_monitor/power_observer.h",
    "power_monitor/sampling_event_source.cc",
    "power_monitor/sampling_event_source.h",
    "power_monitor/timer_sampling_event_source.cc",
    "power_monitor/timer_sampling_event_source.h",
    "process/current_process.cc",
    "process/current_process.h",
    "process/current_process_test.h",
    "process/environment_internal.cc",
    "process/environment_internal.h",
    "process/process.h",
    "process/process_handle.cc",
    "process/process_handle.h",
    "process/process_info.h",
    "process/set_process_title.cc",
    "process/set_process_title.h",
    "profiler/frame.cc",
    "profiler/frame.h",
    "profiler/metadata_recorder.cc",
    "profiler/metadata_recorder.h",
    "profiler/module_cache.cc",
    "profiler/module_cache.h",
    "profiler/profile_builder.h",
    "profiler/register_context.h",
    "profiler/sample_metadata.cc",
    "profiler/sample_metadata.h",
    "profiler/sampling_profiler_thread_token.cc",
    "profiler/sampling_profiler_thread_token.h",
    "profiler/stack_buffer.cc",
    "profiler/stack_buffer.h",
    "profiler/stack_copier.cc",
    "profiler/stack_copier.h",
    "profiler/stack_copier_suspend.cc",
    "profiler/stack_copier_suspend.h",
    "profiler/stack_sampler.cc",
    "profiler/stack_sampler.h",
    "profiler/stack_sampling_profiler.cc",
    "profiler/stack_sampling_profiler.h",
    "profiler/suspendable_thread_delegate.h",
    "profiler/thread_delegate.h",
    "profiler/unwinder.cc",
    "profiler/unwinder.h",
    "rand_util.cc",
    "rand_util.h",
    "ranges/algorithm.h",
    "ranges/functional.h",
    "ranges/ranges.h",
    "run_loop.cc",
    "run_loop.h",
    "sampling_heap_profiler/lock_free_address_hash_set.cc",
    "sampling_heap_profiler/lock_free_address_hash_set.h",
    "sampling_heap_profiler/poisson_allocation_sampler.cc",
    "sampling_heap_profiler/poisson_allocation_sampler.h",
    "sampling_heap_profiler/sampling_heap_profiler.cc",
    "sampling_heap_profiler/sampling_heap_profiler.h",
    "scoped_add_feature_flags.cc",
    "scoped_add_feature_flags.h",
    "scoped_clear_last_error.h",
    "scoped_environment_variable_override.cc",
    "scoped_environment_variable_override.h",
    "scoped_generic.h",
    "scoped_multi_source_observation.h",
    "scoped_observation.h",
    "scoped_observation_traits.h",
    "sequence_checker.cc",
    "sequence_checker.h",
    "sequence_checker_impl.cc",
    "sequence_checker_impl.h",
    "sequence_token.cc",
    "sequence_token.h",
    "state_transitions.h",
    "stl_util.h",
    "strings/abseil_string_number_conversions.cc",
    "strings/abseil_string_number_conversions.h",
    "strings/cstring_view.h",
    "strings/escape.cc",
    "strings/escape.h",
    "strings/latin1_string_conversions.cc",
    "strings/latin1_string_conversions.h",
    "strings/levenshtein_distance.cc",
    "strings/levenshtein_distance.h",
    "strings/pattern.cc",
    "strings/pattern.h",
    "strings/safe_sprintf.cc",
    "strings/safe_sprintf.h",
    "strings/strcat.cc",
    "strings/strcat.h",
    "strings/strcat_internal.h",
    "strings/string_number_conversions.cc",
    "strings/string_number_conversions.h",
    "strings/string_number_conversions_internal.h",
    "strings/string_piece.h",
    "strings/string_split.cc",
    "strings/string_split.h",
    "strings/string_split_internal.h",
    "strings/string_tokenizer.h",
    "strings/string_util.cc",
    "strings/string_util.h",
    "strings/string_util_constants.cc",
    "strings/string_util_impl_helpers.h",
    "strings/string_util_internal.h",
    "strings/stringize_macros.h",
    "strings/stringprintf.cc",
    "strings/stringprintf.h",
    "strings/sys_string_conversions.h",
    "strings/to_string.h",
    "strings/utf_offset_string_conversions.cc",
    "strings/utf_offset_string_conversions.h",
    "strings/utf_ostream_operators.cc",
    "strings/utf_ostream_operators.h",
    "strings/utf_string_conversion_utils.cc",
    "strings/utf_string_conversion_utils.h",
    "strings/utf_string_conversions.cc",
    "strings/utf_string_conversions.h",
    "substring_set_matcher/matcher_string_pattern.cc",
    "substring_set_matcher/matcher_string_pattern.h",
    "substring_set_matcher/substring_set_matcher.cc",
    "substring_set_matcher/substring_set_matcher.h",
    "supports_user_data.cc",
    "supports_user_data.h",
    "synchronization/atomic_flag.cc",
    "synchronization/atomic_flag.h",
    "synchronization/condition_variable.h",
    "synchronization/lock.cc",
    "synchronization/lock.h",
    "synchronization/lock_impl.h",
    "synchronization/waitable_event.cc",
    "synchronization/waitable_event.h",
    "synchronization/waitable_event_watcher.h",
    "sys_byteorder.h",
    "syslog_logging.cc",
    "syslog_logging.h",
    "system/system_monitor.cc",
    "system/system_monitor.h",
    "task/bind_post_task.h",
    "task/bind_post_task_internal.h",
    "task/cancelable_task_tracker.cc",
    "task/cancelable_task_tracker.h",
    "task/common/checked_lock.h",
    "task/common/checked_lock_impl.cc",
    "task/common/checked_lock_impl.h",
    "task/common/lazy_now.cc",
    "task/common/lazy_now.h",
    "task/common/operations_controller.cc",
    "task/common/operations_controller.h",
    "task/common/scoped_defer_task_posting.cc",
    "task/common/scoped_defer_task_posting.h",
    "task/common/task_annotator.cc",
    "task/common/task_annotator.h",
    "task/current_thread.cc",
    "task/current_thread.h",
    "task/default_delayed_task_handle_delegate.cc",
    "task/default_delayed_task_handle_delegate.h",
    "task/deferred_sequenced_task_runner.cc",
    "task/deferred_sequenced_task_runner.h",
    "task/delay_policy.h",
    "task/delayed_task_handle.cc",
    "task/delayed_task_handle.h",
    "task/lazy_thread_pool_task_runner.cc",
    "task/lazy_thread_pool_task_runner.h",
    "task/post_job.cc",
    "task/post_job.h",
    "task/post_task_and_reply_with_result_internal.h",
    "task/scoped_set_task_priority_for_current_thread.cc",
    "task/scoped_set_task_priority_for_current_thread.h",
    "task/sequence_manager/associated_thread_id.cc",
    "task/sequence_manager/associated_thread_id.h",
    "task/sequence_manager/atomic_flag_set.cc",
    "task/sequence_manager/atomic_flag_set.h",
    "task/sequence_manager/delayed_task_handle_delegate.cc",
    "task/sequence_manager/delayed_task_handle_delegate.h",
    "task/sequence_manager/enqueue_order.h",
    "task/sequence_manager/enqueue_order_generator.cc",
    "task/sequence_manager/enqueue_order_generator.h",
    "task/sequence_manager/fence.cc",
    "task/sequence_manager/fence.h",
    "task/sequence_manager/lazily_deallocated_deque.h",
    "task/sequence_manager/sequence_manager.cc",
    "task/sequence_manager/sequence_manager.h",
    "task/sequence_manager/sequence_manager_impl.cc",
    "task/sequence_manager/sequence_manager_impl.h",
    "task/sequence_manager/sequenced_task_source.cc",
    "task/sequence_manager/sequenced_task_source.h",
    "task/sequence_manager/task_order.cc",
    "task/sequence_manager/task_order.h",
    "task/sequence_manager/task_queue.cc",
    "task/sequence_manager/task_queue.h",
    "task/sequence_manager/task_queue_impl.cc",
    "task/sequence_manager/task_queue_impl.h",
    "task/sequence_manager/task_queue_selector.cc",
    "task/sequence_manager/task_queue_selector.h",
    "task/sequence_manager/task_time_observer.h",
    "task/sequence_manager/tasks.cc",
    "task/sequence_manager/tasks.h",
    "task/sequence_manager/thread_controller.cc",
    "task/sequence_manager/thread_controller.h",
    "task/sequence_manager/thread_controller_impl.cc",
    "task/sequence_manager/thread_controller_impl.h",
    "task/sequence_manager/thread_controller_power_monitor.cc",
    "task/sequence_manager/thread_controller_power_monitor.h",
    "task/sequence_manager/thread_controller_with_message_pump_impl.cc",
    "task/sequence_manager/thread_controller_with_message_pump_impl.h",
    "task/sequence_manager/time_domain.cc",
    "task/sequence_manager/time_domain.h",
    "task/sequence_manager/wake_up_queue.cc",
    "task/sequence_manager/wake_up_queue.h",
    "task/sequence_manager/work_deduplicator.cc",
    "task/sequence_manager/work_deduplicator.h",
    "task/sequence_manager/work_queue.cc",
    "task/sequence_manager/work_queue.h",
    "task/sequence_manager/work_queue_sets.cc",
    "task/sequence_manager/work_queue_sets.h",
    "task/sequence_manager/work_tracker.cc",
    "task/sequence_manager/work_tracker.h",
    "task/sequenced_task_runner.cc",
    "task/sequenced_task_runner.h",
    "task/sequenced_task_runner_helpers.h",
    "task/single_thread_task_executor.cc",
    "task/single_thread_task_executor.h",
    "task/single_thread_task_runner.cc",
    "task/single_thread_task_runner.h",
    "task/single_thread_task_runner_thread_mode.h",
    "task/task_features.cc",
    "task/task_features.h",
    "task/task_observer.h",
    "task/task_runner.cc",
    "task/task_runner.h",
    "task/task_traits.cc",
    "task/task_traits.h",
    "task/thread_pool.cc",
    "task/thread_pool.h",
    "task/thread_pool/delayed_priority_queue.cc",
    "task/thread_pool/delayed_priority_queue.h",
    "task/thread_pool/delayed_task_manager.cc",
    "task/thread_pool/delayed_task_manager.h",
    "task/thread_pool/environment_config.cc",
    "task/thread_pool/environment_config.h",
    "task/thread_pool/job_task_source.cc",
    "task/thread_pool/job_task_source.h",
    "task/thread_pool/pooled_parallel_task_runner.cc",
    "task/thread_pool/pooled_parallel_task_runner.h",
    "task/thread_pool/pooled_sequenced_task_runner.cc",
    "task/thread_pool/pooled_sequenced_task_runner.h",
    "task/thread_pool/pooled_single_thread_task_runner_manager.cc",
    "task/thread_pool/pooled_single_thread_task_runner_manager.h",
    "task/thread_pool/pooled_task_runner_delegate.cc",
    "task/thread_pool/pooled_task_runner_delegate.h",
    "task/thread_pool/priority_queue.cc",
    "task/thread_pool/priority_queue.h",
    "task/thread_pool/semaphore.h",
    "task/thread_pool/sequence.cc",
    "task/thread_pool/sequence.h",
    "task/thread_pool/service_thread.cc",
    "task/thread_pool/service_thread.h",
    "task/thread_pool/task.cc",
    "task/thread_pool/task.h",
    "task/thread_pool/task_source.cc",
    "task/thread_pool/task_source.h",
    "task/thread_pool/task_source_sort_key.cc",
    "task/thread_pool/task_source_sort_key.h",
    "task/thread_pool/task_tracker.cc",
    "task/thread_pool/task_tracker.h",
    "task/thread_pool/thread_group.cc",
    "task/thread_pool/thread_group.h",
    "task/thread_pool/thread_group_impl.cc",
    "task/thread_pool/thread_group_impl.h",
    "task/thread_pool/thread_group_semaphore.cc",
    "task/thread_pool/thread_group_semaphore.h",
    "task/thread_pool/thread_group_worker_delegate.cc",
    "task/thread_pool/thread_group_worker_delegate.h",
    "task/thread_pool/thread_pool_impl.cc",
    "task/thread_pool/thread_pool_impl.h",
    "task/thread_pool/thread_pool_instance.cc",
    "task/thread_pool/thread_pool_instance.h",
    "task/thread_pool/tracked_ref.h",
    "task/thread_pool/worker_thread.cc",
    "task/thread_pool/worker_thread.h",
    "task/thread_pool/worker_thread_observer.h",
    "task/thread_pool/worker_thread_semaphore.cc",
    "task/thread_pool/worker_thread_semaphore.h",
    "task/thread_pool/worker_thread_set.cc",
    "task/thread_pool/worker_thread_set.h",
    "task/thread_pool/worker_thread_waitable_event.cc",
    "task/thread_pool/worker_thread_waitable_event.h",
    "task/updateable_sequenced_task_runner.h",
    "template_util.h",
    "test/scoped_logging_settings.h",
    "test/spin_wait.h",
    "third_party/cityhash/city.cc",
    "third_party/cityhash/city.h",
    "third_party/cityhash_v103/src/city_v103.cc",
    "third_party/cityhash_v103/src/city_v103.h",
    "third_party/icu/icu_utf.h",
    "third_party/nspr/prtime.cc",
    "third_party/nspr/prtime.h",
    "third_party/superfasthash/superfasthash.c",
    "thread_annotations.h",
    "threading/hang_watcher.cc",
    "threading/hang_watcher.h",
    "threading/platform_thread.cc",
    "threading/platform_thread.h",
    "threading/platform_thread_ref.cc",
    "threading/platform_thread_ref.h",
    "threading/post_task_and_reply_impl.cc",
    "threading/post_task_and_reply_impl.h",
    "threading/scoped_blocking_call.cc",
    "threading/scoped_blocking_call.h",
    "threading/scoped_blocking_call_internal.cc",
    "threading/scoped_blocking_call_internal.h",
    "threading/scoped_thread_priority.cc",
    "threading/scoped_thread_priority.h",
    "threading/sequence_bound.h",
    "threading/sequence_bound_internal.h",
    "threading/sequence_local_storage_map.cc",
    "threading/sequence_local_storage_map.h",
    "threading/sequence_local_storage_slot.cc",
    "threading/sequence_local_storage_slot.h",
    "threading/simple_thread.cc",
    "threading/simple_thread.h",
    "threading/thread.cc",
    "threading/thread.h",
    "threading/thread_checker.cc",
    "threading/thread_checker.h",
    "threading/thread_checker_impl.cc",
    "threading/thread_checker_impl.h",
    "threading/thread_collision_warner.cc",
    "threading/thread_collision_warner.h",
    "threading/thread_id_name_manager.cc",
    "threading/thread_id_name_manager.h",
    "threading/thread_local.h",
    "threading/thread_local_internal.h",
    "threading/thread_local_storage.cc",
    "threading/thread_local_storage.h",
    "threading/thread_restrictions.cc",
    "threading/thread_restrictions.h",
    "threading/threading_features.h",
    "threading/watchdog.cc",
    "threading/watchdog.h",
    "time/clock.cc",
    "time/clock.h",
    "time/default_clock.cc",
    "time/default_clock.h",
    "time/default_tick_clock.cc",
    "time/default_tick_clock.h",
    "time/tick_clock.cc",
    "time/tick_clock.h",
    "time/time.cc",
    "time/time.h",
    "time/time_delta_from_string.cc",
    "time/time_delta_from_string.h",
    "time/time_override.cc",
    "time/time_override.h",
    "timer/elapsed_timer.cc",
    "timer/elapsed_timer.h",
    "timer/hi_res_timer_manager.h",
    "timer/lap_timer.cc",
    "timer/lap_timer.h",
    "timer/timer.cc",
    "timer/timer.h",
    "timer/wall_clock_timer.cc",
    "timer/wall_clock_timer.h",
    "token.cc",
    "token.h",
    "trace_event/base_tracing.h",
    "trace_event/base_tracing_forward.h",
    "trace_event/common/trace_event_common.h",
    "trace_event/heap_profiler_allocation_context.cc",
    "trace_event/heap_profiler_allocation_context.h",
    "trace_event/heap_profiler_allocation_context_tracker.cc",
    "trace_event/heap_profiler_allocation_context_tracker.h",
    "trace_event/memory_allocator_dump_guid.cc",
    "trace_event/memory_allocator_dump_guid.h",
    "trace_event/named_trigger.cc",
    "trace_event/named_trigger.h",
    "trace_event/trace_id_helper.cc",
    "trace_event/trace_id_helper.h",
    "traits_bag.h",
    "tuple.h",
    "types/always_false.h",
    "types/cxx23_to_underlying.h",
    "types/expected.h",
    "types/expected_internal.h",
    "types/expected_macros.h",
    "types/fixed_array.h",
    "types/id_type.h",
    "types/is_complete.h",
    "types/is_instantiation.h",
    "types/optional_ref.h",
    "types/optional_util.h",
    "types/pass_key.h",
    "types/strong_alias.h",
    "types/supports_ostream_operator.h",
    "types/to_address.h",
    "types/token_type.h",
    "types/variant_util.h",
    "unguessable_token.cc",
    "unguessable_token.h",
    "uuid.cc",
    "uuid.h",
    "value_iterators.cc",
    "value_iterators.h",
    "values.cc",
    "values.h",
    "version.cc",
    "version.h",
    "vlog.cc",
    "vlog.h",
  ]

  # Various files that are unused in the Chromium build, but presumably here to
  # make downstream's life easier. They are not included in the main sources
  # list to avoid breaking GN formatting's auto-sorting.
  sources += [
    #"process/process_handle_freebsd.cc",
    #"process/process_iterator_freebsd.cc",
    #"process/process_metrics_freebsd.cc",
    #"system/sys_info_freebsd.cc",
    #"process/process_iterator_openbsd.cc",
    #"process/process_handle_openbsd.cc",
    #"process/process_metrics_openbsd.cc",
    #"system/sys_info_openbsd.cc",
  ]

  if (is_apple || current_os == "freebsd" || current_os == "openbsd") {
    sources += [
      "posix/sysctl.cc",
      "posix/sysctl.h",
    ]
  }

  if (is_posix) {
    sources += [
      "debug/debugger_posix.cc",
      "file_descriptor_posix.cc",
      "file_descriptor_posix.h",
      "files/dir_reader_posix.h",
      "files/file_posix.cc",
      "files/memory_mapped_file_posix.cc",
      "message_loop/watchable_io_message_pump_posix.cc",
      "message_loop/watchable_io_message_pump_posix.h",
      "posix/eintr_wrapper.h",
      "posix/file_descriptor_shuffle.cc",
      "posix/file_descriptor_shuffle.h",
      "posix/global_descriptors.cc",
      "posix/global_descriptors.h",
      "posix/safe_strerror.cc",
      "posix/safe_strerror.h",
      "process/process_handle_posix.cc",
      "strings/string_util_posix.h",
      "synchronization/condition_variable_posix.cc",
      "synchronization/lock_impl_posix.cc",
      "threading/platform_thread_posix.cc",
      "threading/thread_local_storage_posix.cc",
      "time/time_conversion_posix.cc",
      "timer/hi_res_timer_manager_posix.cc",
    ]
  }

  if (is_linux || is_chromeos) {
    sources += [
      "debug/proc_maps_linux.cc",
      "debug/proc_maps_linux.h",
      "files/dir_reader_linux.h",
      "files/scoped_file_linux.cc",
      "process/internal_linux.cc",
      "process/internal_linux.h",
      "process/memory_linux.cc",
      "process/process_handle_linux.cc",
      "process/process_iterator_linux.cc",
      "process/process_linux.cc",
      "process/process_metrics_linux.cc",
      "threading/platform_thread_linux.cc",
      "threading/platform_thread_linux_base.cc",
      "threading/thread_type_delegate.cc",
      "threading/thread_type_delegate.h",
    ]
  }

  if (is_chromeos) {
    sources += [
      "process/process_priority_delegate.h",
      "threading/cross_process_platform_thread_delegate.h",
      "threading/platform_thread_cros.cc",
    ]
  }

  if (is_chromeos_ash) {
    sources += [ "feature_visitor.h" ]
  }

  if (is_linux || is_chromeos || is_android) {
    sources += [
      "files/file_path_watcher_inotify.cc",
      "files/file_path_watcher_inotify.h",
    ]
  }

  all_dependent_configs = []
  defines = [ "BASE_IMPLEMENTATION" ]
  data = []
  data_deps = []
  libs = []
  frameworks = []

  configs += [
    "//build/config:precompiled_headers",
    "//build/config/compiler:prevent_unsafe_narrowing",
    "//build/config/compiler:wexit_time_destructors",
    "//build/config/compiler:wglobal_constructors",
  ]

  deps = [
    ":check_version_internal",
    ":message_pump_buildflags",
    "//base/allocator:buildflags",
    "//base/allocator/partition_allocator:raw_ptr",
    "//base/third_party/double_conversion",
    "//base/third_party/dynamic_annotations",
    "//build:blink_buildflags",
    "//build:branding_buildflags",
    "//build:ios_buildflags",
    "//build/config/compiler:compiler_buildflags",
    "//third_party/modp_b64",
  ]

  # `raw_ptr` cannot be made a component due to CRT symbol issues.
  # Its gateway to being a component is through `//base`, so we have
  # to provide the appropriate `#define` here.
  defines += [ "IS_RAW_PTR_IMPL" ]

  if (build_rust_json_reader) {
    deps += [ "//third_party/rust/serde_json_lenient/v0_1/wrapper" ]
  }

  # native_unwinder_android is intended for use solely via a dynamic feature
  # module, to avoid increasing Chrome's executable size.
  assert_no_deps = [ ":native_unwinder_android" ]

  public_deps = [
    ":anchor_functions_buildflags",
    ":base_static",
    ":build_date",
    ":cfi_buildflags",
    ":clang_profiling_buildflags",
    ":debugging_buildflags",
    ":feature_list_buildflags",
    ":ios_cronet_buildflags",
    ":logging_buildflags",
    ":orderfile_buildflags",
    ":power_monitor_buildflags",
    ":profiler_buildflags",
    ":protected_memory_buildflags",
    ":rust_buildflags",
    ":sanitizer_buildflags",
    ":synchronization_buildflags",
    ":tracing_buildflags",
    "//base/allocator/partition_allocator:buildflags",
    "//base/allocator/partition_allocator:raw_ptr",
    "//base/numerics:base_numerics",
    "//build:chromecast_buildflags",
    "//build:chromeos_buildflags",
    "//third_party/abseil-cpp:absl",
  ]

  if (build_rust_base_conversions) {
    sources += [
      "containers/span_rust.h",
      "strings/string_piece_rust.h",
    ]

    # Base provides conversions between CXX types and base types (e.g.
    # StringPiece).
    public_deps += [ "//build/rust:cxx_cppdeps" ]
  }

  if (use_nodebug_assertion) {
    public_deps += [ ":nodebug_assertion" ]
  }

  # Needed for <atomic> if using newer C++ library than sysroot, except if
  # building inside the cros_sdk environment - use host_toolchain as a
  # more robust check for this.
  if (!use_sysroot && (is_android || is_chromeos || (is_linux && !is_castos)) &&
      host_toolchain != "//build/toolchain/cros:host") {
    libs += [ "atomic" ]
  }

  if (use_allocator_shim) {
    if (is_apple) {
      sources += [ "allocator/early_zone_registration_apple.h" ]
    }
  }

  if (use_clang_profiling) {
    # Call-sites use this conditional on the CLANG_PROFILING macro, for clarity.
    sources += [
      "test/clang_profiling.cc",
      "test/clang_profiling.h",
    ]
    if (is_android) {
      sources += [ "test/clang_profiling_android.cc" ]
    }
  }

  # Allow more direct string conversions on platforms with native utf8
  # strings
  if (is_apple || is_chromeos || is_castos || is_cast_android || is_fuchsia) {
    defines += [ "SYSTEM_NATIVE_UTF8" ]
  }

  # Android.
  if (is_android) {
    sources += [
      "android/android_hardware_buffer_compat.cc",
      "android/android_hardware_buffer_compat.h",
      "android/android_image_reader_compat.cc",
      "android/android_image_reader_compat.h",
      "android/apk_assets.cc",
      "android/apk_assets.h",
      "android/application_status_listener.cc",
      "android/application_status_listener.h",
      "android/build_info.cc",
      "android/build_info.h",
      "android/bundle_utils.cc",
      "android/bundle_utils.h",
      "android/child_process_binding_types.h",
      "android/child_process_service.cc",
      "android/content_uri_utils.cc",
      "android/content_uri_utils.h",
      "android/cpu_features.cc",
      "android/early_trace_event_binding.cc",
      "android/early_trace_event_binding.h",
      "android/event_log.cc",
      "android/event_log.h",
      "android/feature_list_jni.cc",
      "android/feature_map.cc",
      "android/feature_map.h",
      "android/features_jni.cc",
      "android/field_trial_list.cc",
      "android/important_file_writer_android.cc",
      "android/input_hint_checker.cc",
      "android/input_hint_checker.h",
      "android/int_string_callback.cc",
      "android/int_string_callback.h",
      "android/jank_metric_uma_recorder.cc",
      "android/jank_metric_uma_recorder.h",
      "android/java_handler_thread.cc",
      "android/java_handler_thread.h",
      "android/java_heap_dump_generator.cc",
      "android/java_heap_dump_generator.h",
      "android/java_runtime.cc",
      "android/java_runtime.h",
      "android/library_loader/anchor_functions.cc",
      "android/library_loader/anchor_functions.h",
      "android/library_loader/library_prefetcher.cc",
      "android/library_loader/library_prefetcher.h",
      "android/library_loader/library_prefetcher_hooks.cc",
      "android/locale_utils.cc",
      "android/locale_utils.h",
      "android/meminfo_dump_provider.cc",
      "android/meminfo_dump_provider.h",
      "android/memory_pressure_listener_android.cc",
      "android/memory_pressure_listener_android.h",
      "android/memory_purge_manager_android.cc",
      "android/memory_purge_manager_android.h",
      "android/path_service_android.cc",
      "android/path_utils.cc",
      "android/path_utils.h",
      "android/pmf_utils.cc",
      "android/pmf_utils.h",
      "android/pre_freeze_background_memory_trimmer.cc",
      "android/pre_freeze_background_memory_trimmer.h",
      "android/radio_utils.cc",
      "android/radio_utils.h",
      "android/requires_api.h",
      "android/scoped_hardware_buffer_fence_sync.cc",
      "android/scoped_hardware_buffer_fence_sync.h",
      "android/scoped_hardware_buffer_handle.cc",
      "android/scoped_hardware_buffer_handle.h",
      "android/shared_preferences/shared_preferences_manager.cc",
      "android/shared_preferences/shared_preferences_manager.h",
      "android/statistics_recorder_android.cc",
      "android/sys_utils.cc",
      "android/sys_utils.h",
      "android/task_scheduler/post_task_android.cc",
      "android/task_scheduler/post_task_android.h",
      "android/task_scheduler/task_runner_android.cc",
      "android/task_scheduler/task_runner_android.h",
      "android/task_scheduler/task_traits_android.h",
      "android/thread_instruction_count.cc",
      "android/thread_instruction_count.h",
      "android/timezone_utils.cc",
      "android/timezone_utils.h",
      "android/unguessable_token_android.cc",
      "android/unguessable_token_android.h",
      "debug/stack_trace_android.cc",
      "files/file_util_android.cc",
      "files/scoped_file_android.cc",
      "memory/platform_shared_memory_mapper_android.cc",
      "memory/platform_shared_memory_region_android.cc",
      "message_loop/message_pump_android.cc",
      "message_loop/message_pump_android.h",
      "os_compat_android.cc",
      "os_compat_android.h",
      "process/process_android.cc",
      "profiler/native_unwinder_android_map_delegate.h",
      "profiler/native_unwinder_android_memory_regions_map.h",
      "profiler/stack_sampler_android.cc",
      "system/sys_info_android.cc",
      "threading/platform_thread_android.cc",

      # Android uses some Linux sources.
      "debug/elf_reader.cc",
      "debug/elf_reader.h",
      "debug/proc_maps_linux.cc",
      "debug/proc_maps_linux.h",
      "power_monitor/power_monitor_device_source_android.cc",
      "process/internal_linux.cc",
      "process/internal_linux.h",
      "process/memory_linux.cc",
      "process/process_handle_linux.cc",
      "process/process_iterator_linux.cc",
      "process/process_metrics_linux.cc",
      "system/sys_info_linux.cc",
    ]

    deps += [
      ":base_jni",
      ":base_shared_preferences_jni",
      ":process_launcher_jni",
      "//third_party/ashmem",
      "//third_party/cpu_features:ndk_compat",
    ]

    # Needs to be a public config so that dependent targets link against it as
    # well when doing a component build.
    public_configs = [ ":android_system_libs" ]

    if (can_unwind_with_cfi_table) {
      sources += [
        "trace_event/cfi_backtrace_android.cc",
        "trace_event/cfi_backtrace_android.h",
      ]
    }
    if (current_cpu == "arm") {
      sources += [
        "profiler/chrome_unwind_info_android.cc",
        "profiler/chrome_unwind_info_android.h",
        "profiler/chrome_unwinder_android.cc",
        "profiler/chrome_unwinder_android.h",
      ]
    }

    if (current_cpu == "arm64") {
      sources += [
        "profiler/frame_pointer_unwinder.cc",
        "profiler/frame_pointer_unwinder.h",
      ]
    }

    # This is actually a linker script, but it can be added to the link in the
    # same way as a library.
    libs += [ "android/library_loader/anchor_functions.lds" ]
  }  # is_android

  if (build_allocation_stack_trace_recorder) {
    sources += [
      "debug/allocation_trace.cc",
      "debug/allocation_trace.h",
    ]
  }

  if (is_robolectric) {
    # Make jni.h available.
    configs += [ "//third_party/jdk" ]
    deps += [ ":base_robolectric_jni" ]
  }
  if (is_android || is_robolectric) {
    sources += [
      "android/base_jni_onload.cc",
      "android/base_jni_onload.h",
      "android/callback_android.cc",
      "android/callback_android.h",
      "android/command_line_android.cc",
      "android/java_exception_reporter.cc",
      "android/java_exception_reporter.h",
      "android/jni_android.cc",
      "android/jni_android.h",
      "android/jni_array.cc",
      "android/jni_array.h",
      "android/jni_bytebuffer.cc",
      "android/jni_bytebuffer.h",
      "android/jni_conversions.cc",
      "android/jni_registrar.cc",
      "android/jni_registrar.h",
      "android/jni_string.cc",
      "android/jni_string.h",
      "android/jni_utils.cc",
      "android/jni_utils.h",
      "android/jni_weak_ref.cc",
      "android/jni_weak_ref.h",
      "android/library_loader/library_loader_hooks.cc",
      "android/library_loader/library_loader_hooks.h",
      "android/native_uma_recorder.cc",
      "android/scoped_java_ref.h",
      "android/token_android.cc",
      "android/token_android.h",
      "android/trace_event_binding.cc",
      "android/trace_event_binding.h",
    ]
    deps += [ "//build:robolectric_buildflags" ]
    public_deps += [ "//third_party/jni_zero:jni_zero" ]
  }  # is_android || is_robolectric

  # Chromeos.
  if (is_chromeos) {
    sources += [
      "logging_chromeos.cc",
      "system/sys_info_chromeos.cc",
    ]

    sources += [ "power_monitor/power_monitor_device_source_chromeos.cc" ]

    if (current_cpu == "x64" || current_cpu == "arm64") {
      sources += [
        "profiler/frame_pointer_unwinder.cc",
        "profiler/frame_pointer_unwinder.h",
      ]
    }
  }

  # Fuchsia.
  if (is_fuchsia) {
    sources += [
      "base_paths_fuchsia.cc",
      "debug/debugger_fuchsia.cc",
      "debug/elf_reader.cc",
      "debug/elf_reader.h",
      "debug/stack_trace_fuchsia.cc",
      "file_descriptor_posix.cc",
      "file_descriptor_posix.h",
      "files/dir_reader_posix.h",
      "files/file_path_watcher_stub.cc",  # See crbug.com/851641.
      "files/file_posix.cc",
      "files/memory_mapped_file_posix.cc",
      "fuchsia/default_job.cc",
      "fuchsia/default_job.h",
      "fuchsia/fidl_event_handler.h",
      "fuchsia/file_utils.cc",
      "fuchsia/file_utils.h",
      "fuchsia/filtered_service_directory.cc",
      "fuchsia/filtered_service_directory.h",
      "fuchsia/fuchsia_component_connect.h",
      "fuchsia/fuchsia_logging.cc",
      "fuchsia/fuchsia_logging.h",
      "fuchsia/intl_profile_watcher.cc",
      "fuchsia/intl_profile_watcher.h",
      "fuchsia/koid.cc",
      "fuchsia/koid.h",
      "fuchsia/mem_buffer_util.cc",
      "fuchsia/mem_buffer_util.h",
      "fuchsia/process_context.cc",
      "fuchsia/process_context.h",
      "fuchsia/process_lifecycle.cc",
      "fuchsia/process_lifecycle.h",
      "fuchsia/scheduler.h",
      "fuchsia/scoped_fx_logger.cc",
      "fuchsia/scoped_fx_logger.h",
      "fuchsia/scoped_service_binding.h",
      "fuchsia/scoped_service_publisher.h",
      "fuchsia/startup_context.cc",
      "fuchsia/startup_context.h",
      "fuchsia/system_info.cc",
      "fuchsia/system_info.h",
      "memory/platform_shared_memory_mapper_fuchsia.cc",
      "memory/platform_shared_memory_region_fuchsia.cc",
      "message_loop/message_pump_fuchsia.cc",
      "message_loop/message_pump_fuchsia.h",
      "message_loop/watchable_io_message_pump_posix.cc",
      "message_loop/watchable_io_message_pump_posix.h",
      "native_library_fuchsia.cc",
      "posix/eintr_wrapper.h",
      "posix/file_descriptor_shuffle.cc",
      "posix/file_descriptor_shuffle.h",
      "posix/global_descriptors.cc",
      "posix/global_descriptors.h",
      "posix/safe_strerror.cc",
      "posix/safe_strerror.h",
      "process/kill_fuchsia.cc",
      "process/launch_fuchsia.cc",
      "process/memory_fuchsia.cc",
      "process/process_fuchsia.cc",
      "process/process_handle_fuchsia.cc",
      "process/process_iterator_fuchsia.cc",
      "process/process_metrics_fuchsia.cc",
      "profiler/module_cache_posix.cc",
      "rand_util_fuchsia.cc",
      "strings/string_util_posix.h",
      "strings/sys_string_conversions_posix.cc",
      "synchronization/condition_variable_posix.cc",
      "synchronization/lock_impl_posix.cc",
      "synchronization/waitable_event_posix.cc",
      "synchronization/waitable_event_watcher_posix.cc",
      "system/sys_info_fuchsia.cc",
      "threading/platform_thread_fuchsia.cc",
      "threading/platform_thread_posix.cc",
      "threading/thread_local_storage_posix.cc",
      "time/time_conversion_posix.cc",
      "time/time_exploded_icu.cc",
      "time/time_fuchsia.cc",
      "timer/hi_res_timer_manager_posix.cc",
    ]

    # These only need to be public deps because of includes of their headers
    # by public //base headers, which requires they be on the include path.
    # TODO(https://crbug.com/841171): Move these back to |deps|.
    public_deps += [
      "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.component.runner:fuchsia.component.runner_hlcpp",
      "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.intl:fuchsia.intl_hlcpp",
      "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.io:fuchsia.io_cpp",
      "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.io:fuchsia.io_hlcpp",
      "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.logger:fuchsia.logger_cpp",
      "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.mem:fuchsia.mem_hlcpp",
      "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.process.lifecycle:fuchsia.process.lifecycle_cpp",
      "//third_party/fuchsia-sdk/sdk/pkg/async",
      "//third_party/fuchsia-sdk/sdk/pkg/component_incoming_cpp",
      "//third_party/fuchsia-sdk/sdk/pkg/fdio",
      "//third_party/fuchsia-sdk/sdk/pkg/fidl_cpp",
      "//third_party/fuchsia-sdk/sdk/pkg/fidl_cpp_wire",
      "//third_party/fuchsia-sdk/sdk/pkg/sync",
      "//third_party/fuchsia-sdk/sdk/pkg/sys_cpp",
      "//third_party/fuchsia-sdk/sdk/pkg/syslog_structured_backend",
      "//third_party/fuchsia-sdk/sdk/pkg/vfs_cpp",
      "//third_party/fuchsia-sdk/sdk/pkg/zx",
    ]

    deps += [
      "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.buildinfo:fuchsia.buildinfo_cpp",
      "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.hwinfo:fuchsia.hwinfo_cpp",
      "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.io:fuchsia.io_cpp_hlcpp_conversion",
      "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.media:fuchsia.media_cpp",
      "//third_party/fuchsia-sdk/sdk/pkg/async-default",
      "//third_party/fuchsia-sdk/sdk/pkg/async-loop-cpp",
      "//third_party/fuchsia-sdk/sdk/pkg/async-loop-default",
      "//third_party/fuchsia-sdk/sdk/pkg/fidl",
      "//third_party/fuchsia-sdk/sdk/pkg/inspect_component_cpp",
      "//third_party/icu",
    ]

    # Needed for users of spinning_mutex.h, which for performance reasons,
    # contains inlined calls to `libsync` inside the header file.
    # It appends an entry to the "libs" section of the dependent target.
    public_configs = [ ":fuchsia_sync_lib" ]
  }

  # Several helpers in //base are backed by BoringSSL; however, NaCl builds
  # cannot easily depend on BoringSSL due to the nacl_io library, so NaCl builds
  # still retain a dedicated local implementation of the functionality.
  #
  # TODO(crbug.com/702997) Use only boringssl when NaCl is removed.
  sources += [
    "hash/md5.h",
    "hash/md5_constexpr.h",
    "hash/md5_constexpr_internal.h",
    "hash/sha1.h",
  ]
  if (is_nacl) {
    sources += [
      "hash/md5_nacl.cc",
      "hash/md5_nacl.h",
      "hash/sha1_nacl.cc",
      "hash/sha1_nacl.h",
    ]
  } else {
    sources += [
      "hash/md5_boringssl.cc",
      "hash/md5_boringssl.h",
      "hash/sha1_boringssl.cc",
      "hash/sha1_boringssl.h",
    ]
    public_deps += [ "//third_party/boringssl" ]
  }

  # NaCl.
  if (is_nacl) {
    # Explicitly include the linux file.
    sources += [
      "debug/stack_trace_nacl.cc",
      "files/file_path_watcher_stub.cc",
      "memory/page_size_nacl.cc",
      "os_compat_nacl.cc",
      "os_compat_nacl.h",
      "process/process_stubs.cc",
      "rand_util_nacl.cc",
      "sync_socket_nacl.cc",
      "system/sys_info_nacl.cc",
      "task/thread_pool/semaphore/semaphore_default.cc",
      "threading/platform_thread_linux_base.cc",
      "threading/platform_thread_nacl.cc",
    ]
  } else {
    sources += [
      "base_paths.cc",
      "base_paths.h",
      "cpu.cc",
      "cpu.h",
      "debug/crash_logging.cc",
      "debug/crash_logging.h",
      "debug/stack_trace.cc",
      "debug/stack_trace.h",
      "files/file_enumerator.cc",
      "files/file_enumerator.h",
      "files/file_proxy.cc",
      "files/file_proxy.h",
      "files/file_util.cc",
      "files/file_util.h",
      "files/important_file_writer.cc",
      "files/important_file_writer.h",
      "files/important_file_writer_cleaner.cc",
      "files/important_file_writer_cleaner.h",
      "files/scoped_temp_dir.cc",
      "files/scoped_temp_dir.h",
      "files/scoped_temp_file.cc",
      "files/scoped_temp_file.h",
      "json/json_file_value_serializer.cc",
      "json/json_file_value_serializer.h",
      "memory/discardable_memory.cc",
      "memory/discardable_memory.h",
      "memory/discardable_memory_allocator.cc",
      "memory/discardable_memory_allocator.h",
      "memory/discardable_memory_internal.h",
      "metrics/persistent_histogram_storage.cc",
      "metrics/persistent_histogram_storage.h",
      "native_library.cc",
      "native_library.h",
      "path_service.cc",
      "path_service.h",
      "process/process_metrics.cc",
      "process/process_metrics.h",
      "scoped_native_library.cc",
      "scoped_native_library.h",
      "system/sys_info.cc",
      "system/sys_info.h",
      "system/sys_info_internal.h",
      "task/thread_pool/initialization_util.cc",
      "task/thread_pool/initialization_util.h",
    ]

    if (is_win) {
      sources += [
        "base_paths_win.cc",
        "base_paths_win.h",
      ]
    }

    if (is_apple) {
      sources += [
        "base_paths_apple.cc",
        "base_paths_apple.h",
      ]
    }

    if (is_mac) {
      sources += [
        "base_paths_mac.h",
        "base_paths_mac.mm",
      ]
    }

    if (is_android) {
      sources += [
        "base_paths_android.cc",
        "base_paths_android.h",
      ]
    }

    if (is_linux || is_chromeos || is_android || is_fuchsia) {
      sources += [ "task/thread_pool/semaphore/semaphore_posix.cc" ]
    }

    if (is_posix) {
      sources += [
        "base_paths_posix.h",
        "memory/madv_free_discardable_memory_allocator_posix.cc",
        "memory/madv_free_discardable_memory_allocator_posix.h",
        "memory/madv_free_discardable_memory_posix.cc",
        "memory/madv_free_discardable_memory_posix.h",
        "posix/unix_domain_socket.cc",
        "posix/unix_domain_socket.h",
        "rand_util_posix.cc",
        "system/sys_info_posix.cc",
      ]
    }

    if (is_posix || is_fuchsia) {
      sources += [
        "files/file_descriptor_watcher_posix.cc",
        "files/file_descriptor_watcher_posix.h",
        "files/file_enumerator_posix.cc",
        "files/file_util_posix.cc",
        "memory/page_size_posix.cc",
      ]
    }

    if ((is_posix && !is_ios) || is_fuchsia) {
      sources += [
        "process/process_metrics_posix.cc",
        "sync_socket_posix.cc",
      ]
    }

    if (is_posix && !is_apple) {
      sources += [
        "native_library_posix.cc",
        "posix/can_lower_nice_to.cc",
        "posix/can_lower_nice_to.h",
        "process/launch_posix.cc",
        "profiler/module_cache_posix.cc",
        "profiler/stack_base_address_posix.cc",
        "profiler/stack_base_address_posix.h",
        "profiler/stack_copier_signal.cc",
        "profiler/stack_copier_signal.h",
        "profiler/thread_delegate_posix.cc",
        "profiler/thread_delegate_posix.h",
      ]
    }

    if (is_posix && !is_android) {
      sources += [ "debug/stack_trace_posix.cc" ]
    }

    if (is_posix && !is_ios) {
      sources += [ "process/process_posix.cc" ]
    }

    if (use_blink) {
      sources += [
        "memory/discardable_shared_memory.cc",
        "memory/discardable_shared_memory.h",
        "memory/shared_memory_switch.cc",
        "memory/shared_memory_switch.h",
        "metrics/histogram_shared_memory.cc",
        "metrics/histogram_shared_memory.h",
        "process/kill.cc",
        "process/kill.h",
        "process/launch.cc",
        "process/launch.h",
        "process/memory.cc",
        "process/memory.h",
        "process/process_iterator.cc",
        "process/process_iterator.h",
      ]

      if (is_posix) {
        sources += [ "process/kill_posix.cc" ]
      }
    }

    if (is_linux || is_chromeos) {
      sources += [
        "base_paths_posix.cc",
        "debug/elf_reader.cc",
        "debug/elf_reader.h",
        "stack_canary_linux.cc",
        "stack_canary_linux.h",
      ]
    }
    if (use_partition_alloc) {
      # Add stuff that doesn't work in NaCl.
      sources += [
        # PartitionAlloc uses SpinLock, which doesn't work in NaCl (see below).
        "allocator/miracle_parameter.cc",
        "allocator/miracle_parameter.h",
        "allocator/partition_alloc_features.cc",
        "allocator/partition_alloc_features.h",
        "allocator/partition_alloc_support.cc",
        "allocator/partition_alloc_support.h",
      ]
    }

    # Need this to pass gn check, because gn check doesn't see
    # BUILDFLAG(USE_PARTITION_ALLOC). A linker will remove all
    # partition_alloc code if use_partition_alloc = false because no code uses
    # partition_alloc.
    public_deps += [
      "allocator/partition_allocator:partition_alloc",
      "allocator/partition_allocator:raw_ptr",
    ]
  }

  # Windows.
  if (is_win) {
    sources += [
      "debug/debugger_win.cc",
      "debug/gdi_debug_util_win.cc",
      "debug/gdi_debug_util_win.h",
      "debug/handle_hooks_win.cc",
      "debug/handle_hooks_win.h",
      "debug/invalid_access_win.cc",
      "debug/invalid_access_win.h",
      "debug/stack_trace_win.cc",
      "enterprise_util.cc",
      "enterprise_util.h",
      "enterprise_util_win.cc",
      "file_version_info_win.cc",
      "file_version_info_win.h",
      "files/file_enumerator_win.cc",
      "files/file_path_watcher_win.cc",
      "files/file_util_win.cc",
      "files/file_win.cc",
      "files/memory_mapped_file_win.cc",
      "logging_win.cc",
      "logging_win.h",
      "memory/page_size_win.cc",
      "memory/platform_shared_memory_mapper_win.cc",
      "memory/platform_shared_memory_region_win.cc",
      "memory/protected_memory_win.cc",
      "message_loop/message_pump_win.cc",
      "message_loop/message_pump_win.h",
      "moving_window.h",
      "native_library_win.cc",
      "power_monitor/battery_level_provider_win.cc",
      "power_monitor/power_monitor_device_source_win.cc",
      "power_monitor/speed_limit_observer_win.cc",
      "power_monitor/speed_limit_observer_win.h",
      "process/kill_win.cc",
      "process/launch_win.cc",
      "process/memory_win.cc",
      "process/process_handle_win.cc",
      "process/process_info_win.cc",
      "process/process_iterator_win.cc",
      "process/process_metrics_win.cc",
      "process/process_win.cc",
      "profiler/module_cache_win.cc",
      "profiler/native_unwinder_win.cc",
      "profiler/native_unwinder_win.h",
      "profiler/stack_sampler_win.cc",
      "profiler/suspendable_thread_delegate_win.cc",
      "profiler/suspendable_thread_delegate_win.h",
      "profiler/win32_stack_frame_unwinder.cc",
      "profiler/win32_stack_frame_unwinder.h",
      "rand_util_win.cc",
      "scoped_clear_last_error_win.cc",
      "strings/strcat_win.cc",
      "strings/strcat_win.h",
      "strings/string_number_conversions_win.cc",
      "strings/string_number_conversions_win.h",
      "strings/string_split_win.cc",
      "strings/string_split_win.h",
      "strings/string_util_win.cc",
      "strings/string_util_win.h",
      "strings/sys_string_conversions_win.cc",
      "sync_socket_win.cc",
      "synchronization/condition_variable_win.cc",
      "synchronization/lock_impl_win.cc",
      "synchronization/waitable_event_watcher_win.cc",
      "synchronization/waitable_event_win.cc",
      "system/sys_info_win.cc",
      "task/thread_pool/semaphore/semaphore_win.cc",
      "threading/platform_thread_win.cc",
      "threading/platform_thread_win.h",
      "threading/thread_local_storage_win.cc",
      "time/time_win.cc",
      "timer/hi_res_timer_manager_win.cc",
      "win/access_control_list.cc",
      "win/access_control_list.h",
      "win/access_token.cc",
      "win/access_token.h",
      "win/async_operation.h",
      "win/atl.h",
      "win/atl_throw.cc",
      "win/atl_throw.h",
      "win/com_init_balancer.cc",
      "win/com_init_balancer.h",
      "win/com_init_check_hook.cc",
      "win/com_init_check_hook.h",
      "win/com_init_util.cc",
      "win/com_init_util.h",
      "win/core_winrt_util.cc",
      "win/core_winrt_util.h",
      "win/current_module.h",
      "win/dark_mode_support.cc",
      "win/dark_mode_support.h",
      "win/default_apps_util.cc",
      "win/default_apps_util.h",
      "win/embedded_i18n/language_selector.cc",
      "win/embedded_i18n/language_selector.h",
      "win/enum_variant.cc",
      "win/enum_variant.h",
      "win/event_trace_consumer.h",
      "win/event_trace_controller.cc",
      "win/event_trace_controller.h",
      "win/event_trace_provider.cc",
      "win/event_trace_provider.h",
      "win/hstring_reference.cc",
      "win/hstring_reference.h",
      "win/i18n.cc",
      "win/i18n.h",
      "win/iat_patch_function.cc",
      "win/iat_patch_function.h",
      "win/map.h",
      "win/message_window.cc",
      "win/message_window.h",
      "win/nt_status.cc",
      "win/nt_status.h",
      "win/object_watcher.cc",
      "win/object_watcher.h",
      "win/patch_util.cc",
      "win/patch_util.h",
      "win/pe_image_reader.cc",
      "win/pe_image_reader.h",
      "win/post_async_results.h",
      "win/process_startup_helper.cc",
      "win/process_startup_helper.h",
      "win/propvarutil.h",
      "win/reference.h",
      "win/registry.cc",
      "win/registry.h",
      "win/resource_exhaustion.cc",
      "win/resource_exhaustion.h",
      "win/resource_util.cc",
      "win/resource_util.h",
      "win/scoped_bstr.cc",
      "win/scoped_bstr.h",
      "win/scoped_co_mem.h",
      "win/scoped_com_initializer.cc",
      "win/scoped_com_initializer.h",
      "win/scoped_gdi_object.h",
      "win/scoped_handle.cc",
      "win/scoped_handle.h",
      "win/scoped_handle_verifier.cc",
      "win/scoped_handle_verifier.h",
      "win/scoped_hdc.h",
      "win/scoped_hglobal.h",
      "win/scoped_hstring.cc",
      "win/scoped_hstring.h",
      "win/scoped_localalloc.h",
      "win/scoped_pdh_query.cc",
      "win/scoped_pdh_query.h",
      "win/scoped_process_information.cc",
      "win/scoped_process_information.h",
      "win/scoped_propvariant.h",
      "win/scoped_safearray.h",
      "win/scoped_select_object.h",
      "win/scoped_variant.cc",
      "win/scoped_variant.h",
      "win/scoped_windows_thread_environment.h",
      "win/scoped_winrt_initializer.cc",
      "win/scoped_winrt_initializer.h",
      "win/security_descriptor.cc",
      "win/security_descriptor.h",
      "win/security_util.cc",
      "win/security_util.h",
      "win/shlwapi.h",
      "win/shortcut.cc",
      "win/shortcut.h",
      "win/sid.cc",
      "win/sid.h",
      "win/sphelper.h",
      "win/startup_information.cc",
      "win/startup_information.h",
      "win/variant_conversions.h",
      "win/variant_vector.cc",
      "win/variant_vector.h",
      "win/vector.cc",
      "win/vector.h",
      "win/win_handle_types.h",
      "win/win_handle_types_list.inc",
      "win/win_util.cc",
      "win/win_util.h",
      "win/wincrypt_shim.h",
      "win/window_enumerator.cc",
      "win/window_enumerator.h",
      "win/windows_defines.inc",
      "win/windows_h_disallowed.h",
      "win/windows_types.h",
      "win/windows_undefines.inc",
      "win/windows_version.cc",
      "win/windows_version.h",
      "win/windowsx_shim.h",
      "win/winrt_foundation_helpers.h",
      "win/winrt_storage_util.cc",
      "win/winrt_storage_util.h",
      "win/wmi.cc",
      "win/wmi.h",
      "win/wrapped_window_proc.cc",
      "win/wrapped_window_proc.h",
    ]

    deps += [ "//base/win:base_win_buildflags" ]

    if (com_init_check_hook_disabled) {
      defines += [ "COM_INIT_CHECK_HOOK_DISABLED" ]
    }

    libs += [
      "cfgmgr32.lib",
      "ntdll.lib",
      "onecore.lib",
      "pdh.lib",
      "powrprof.lib",
      "propsys.lib",
      "setupapi.lib",
      "shcore.lib",
      "userenv.lib",
      "wbemuuid.lib",
      "winmm.lib",
    ]
    all_dependent_configs += [
      ":base_win_linker_flags",
      "//tools/win/DebugVisualizers:chrome",
    ]
    inputs = [
      # chrome.natvis listed as an input here instead of in
      # //tools/win/DebugVisualizers:chrome to prevent unnecessary size increase
      # in generated build files.
      "//tools/win/DebugVisualizers/chrome.natvis",
    ]
  }

  if (!is_win) {
    sources += [
      "file_descriptor_store.cc",
      "file_descriptor_store.h",
    ]
  }

  # Mac or iOS.
  if (is_apple) {
    sources += [
      "apple/backup_util.h",
      "apple/backup_util.mm",
      "apple/bridging.h",
      "apple/bundle_locations.h",
      "apple/bundle_locations.mm",
      "apple/call_with_eh_frame.cc",
      "apple/call_with_eh_frame.h",
      "apple/call_with_eh_frame_asm.S",
      "apple/dispatch_source_mach.cc",
      "apple/dispatch_source_mach.h",
      "apple/foundation_util.h",
      "apple/foundation_util.mm",
      "apple/mach_logging.cc",
      "apple/mach_logging.h",
      "apple/osstatus_logging.h",
      "apple/osstatus_logging.mm",
      "apple/owned_objc.h",
      "apple/owned_objc.mm",
      "apple/scoped_cffiledescriptorref.h",
      "apple/scoped_cftyperef.h",
      "apple/scoped_dispatch_object.h",
      "apple/scoped_mach_port.cc",
      "apple/scoped_mach_port.h",
      "apple/scoped_mach_vm.cc",
      "apple/scoped_mach_vm.h",
      "apple/scoped_nsautorelease_pool.h",
      "apple/scoped_nsautorelease_pool.mm",
      "apple/scoped_nsobject.h",
      "apple/scoped_objc_class_swizzler.h",
      "apple/scoped_objc_class_swizzler.mm",
      "apple/scoped_typeref.h",
      "file_version_info_apple.h",
      "file_version_info_apple.mm",
      "files/file_util_apple.mm",
      "memory/platform_shared_memory_mapper_apple.cc",
      "memory/platform_shared_memory_region_apple.cc",
      "message_loop/message_pump_apple.h",
      "message_loop/message_pump_apple.mm",
      "process/process_metrics_apple.cc",
      "profiler/module_cache_apple.cc",
      "strings/sys_string_conversions_apple.mm",
      "synchronization/waitable_event_apple.cc",
      "system/sys_info_apple.mm",
      "task/thread_pool/semaphore/semaphore_apple.cc",
      "threading/platform_thread_apple.mm",
      "time/time_apple.mm",
    ]
    frameworks += [
      "CoreFoundation.framework",
      "CoreGraphics.framework",
      "CoreText.framework",
      "Foundation.framework",
      "Security.framework",
    ]
  }

  # Desktop Mac.
  if (is_mac) {
    sources += [
      "enterprise_util.cc",
      "enterprise_util.h",
      "enterprise_util_mac.mm",
      "files/file_path_watcher_fsevents.cc",
      "files/file_path_watcher_fsevents.h",
      "files/file_path_watcher_kqueue.cc",
      "files/file_path_watcher_kqueue.h",
      "files/file_path_watcher_mac.cc",
      "mac/authorization_util.h",
      "mac/authorization_util.mm",
      "mac/close_nocancel.cc",
      "mac/launch_application.h",
      "mac/launch_application.mm",
      "mac/launch_services_spi.h",
      "mac/launchd.cc",
      "mac/launchd.h",
      "mac/mac_util.h",
      "mac/mac_util.mm",
      "mac/mach_port_rendezvous.cc",
      "mac/mach_port_rendezvous.h",
      "mac/os_crash_dumps.cc",
      "mac/os_crash_dumps.h",
      "mac/scoped_aedesc.h",
      "mac/scoped_authorizationref.h",
      "mac/scoped_authorizationref.mm",
      "mac/scoped_ionotificationportref.h",
      "mac/scoped_ioobject.h",
      "mac/scoped_ioplugininterface.h",
      "mac/scoped_launch_data.h",
      "mac/scoped_mach_msg_destroy.h",
      "mac/scoped_sending_event.h",
      "mac/scoped_sending_event.mm",
      "message_loop/message_pump_kqueue.cc",
      "message_loop/message_pump_kqueue.h",
      "native_library_mac.mm",
      "power_monitor/battery_level_provider_mac.mm",
      "power_monitor/battery_state_sampler_mac.cc",
      "power_monitor/iopm_power_source_sampling_event_source.cc",
      "power_monitor/iopm_power_source_sampling_event_source.h",
      "power_monitor/power_monitor_device_source_mac.mm",
      "power_monitor/thermal_state_observer_mac.h",
      "power_monitor/thermal_state_observer_mac.mm",
      "process/kill_mac.cc",
      "process/launch_mac.cc",
      "process/memory_mac.mm",
      "process/port_provider_mac.cc",
      "process/port_provider_mac.h",
      "process/process_handle_mac.cc",
      "process/process_info_mac.cc",
      "process/process_iterator_mac.cc",
      "process/process_mac.cc",
      "process/process_metrics_mac.cc",
      "profiler/frame_pointer_unwinder.cc",
      "profiler/frame_pointer_unwinder.h",
      "profiler/stack_sampler_mac.cc",
      "profiler/suspendable_thread_delegate_mac.cc",
      "profiler/suspendable_thread_delegate_mac.h",
      "synchronization/waitable_event_watcher_mac.cc",
      "system/sys_info_mac.mm",
    ]

    libs += [
      "bsm",
      "pmenergy",
      "pmsample",
    ]
    frameworks += [
      "ApplicationServices.framework",
      "AppKit.framework",
      "CoreFoundation.framework",
      "IOKit.framework",
      "OpenDirectory.framework",
    ]
  }

  # iOS
  if (is_ios) {
    sources += [
      "base_paths_ios.h",
      "base_paths_ios.mm",
      "ios/block_types.h",
      "ios/crb_protocol_observers.h",
      "ios/crb_protocol_observers.mm",
      "ios/device_util.h",
      "ios/device_util.mm",
      "ios/ios_util.h",
      "ios/ios_util.mm",
      "ios/ns_error_util.h",
      "ios/ns_error_util.mm",
      "ios/ns_range.h",
      "native_library_ios.mm",
      "power_monitor/power_monitor_device_source_ios.mm",
      "process/process_metrics_ios.cc",
      "process/process_metrics_posix.cc",
      "profiler/stack_sampler_ios.cc",
      "system/sys_info_ios.mm",
    ]

    if (!ios_is_app_extension) {
      sources += [
        "critical_closure_internal_ios.mm",
        "ios/scoped_critical_action.h",
        "ios/scoped_critical_action.mm",
      ]
    }

    if (use_blink) {
      sources += [
        "files/file_path_watcher_kqueue.cc",
        "files/file_path_watcher_kqueue.h",
        "files/file_path_watcher_mac.cc",
        "ios/sim_header_shims.h",
        "mac/mach_port_rendezvous.cc",
        "mac/mach_port_rendezvous.h",
        "process/kill_mac.cc",
        "process/memory_mac.mm",
        "process/port_provider_mac.cc",
        "process/port_provider_mac.h",
        "process/process_handle_mac.cc",
        "process/process_iterator_mac.cc",
        "process/process_mac.cc",
        "process/process_posix.cc",
        "sync_socket_posix.cc",
        "synchronization/waitable_event_watcher_mac.cc",
      ]

      # We include launch_mac on simulator builds so unittests can fork.
      if (target_environment == "simulator") {
        sources += [ "process/launch_mac.cc" ]
      } else {
        sources += [ "process/launch_ios.cc" ]
      }
    } else {
      sources += [
        "process/launch_ios.cc",
        "process/memory_stubs.cc",
        "process/process_stubs.cc",
      ]
    }

    if (is_cronet_build) {
      sources += [
        "message_loop/message_pump_io_ios.cc",
        "message_loop/message_pump_io_ios.h",
      ]
    } else {
      sources += [
        "message_loop/message_pump_kqueue.cc",
        "message_loop/message_pump_kqueue.h",
      ]
    }

    if (ios_stack_profiler_enabled) {
      sources += [
        "profiler/frame_pointer_unwinder.cc",
        "profiler/frame_pointer_unwinder.h",
        "profiler/suspendable_thread_delegate_mac.cc",
        "profiler/suspendable_thread_delegate_mac.h",
      ]
    }
    if (!use_allocator_shim) {
      sources -= [
        "sampling_heap_profiler/poisson_allocation_sampler.cc",
        "sampling_heap_profiler/poisson_allocation_sampler.h",
        "sampling_heap_profiler/sampling_heap_profiler.cc",
        "sampling_heap_profiler/sampling_heap_profiler.h",
      ]
    }

    frameworks += [
      "Foundation.framework",
      "UIKit.framework",
    ]
  }

  # Linux.
  if (is_linux || is_chromeos) {
    # TODO(brettw) this will need to be parameterized at some point.
    linux_configs = []
    if (use_glib) {
      linux_configs += [ "//build/config/linux:glib" ]
    }

    configs += linux_configs
    all_dependent_configs += linux_configs
    sources += [
      "process/set_process_title_linux.cc",
      "process/set_process_title_linux.h",
      "system/sys_info_linux.cc",
    ]
    if (!is_cronet_build) {
      # These dependencies are not required on Android.
      sources += [
        "nix/mime_util_xdg.cc",
        "nix/mime_util_xdg.h",
        "nix/scoped_xdg_activation_token_injector.cc",
        "nix/scoped_xdg_activation_token_injector.h",
        "nix/xdg_util.cc",
        "nix/xdg_util.h",
      ]
      defines += [ "USE_SYMBOLIZE" ]
      deps += [
        ":dwarf_helpers",
        "//base/third_party/symbolize",
        "//base/third_party/xdg_user_dirs",
      ]
    }
  } else {
    if (!is_android) {
      sources -= [
        "linux_util.cc",
        "linux_util.h",
      ]
    }
  }

  if (use_blink) {
    sources += [
      "files/file_path_watcher.cc",
      "files/file_path_watcher.h",
      "sync_socket.cc",
      "sync_socket.h",
    ]
  }

  if (dep_libevent) {
    deps += [ "//third_party/libevent" ]
  }

  if (use_libevent) {
    sources += [
      "message_loop/message_pump_libevent.cc",
      "message_loop/message_pump_libevent.h",
    ]
  }

  if (enable_message_pump_epoll) {
    sources += [
      "message_loop/message_pump_epoll.cc",
      "message_loop/message_pump_epoll.h",
    ]
  }

  # Android and MacOS have their own custom shared memory handle
  # implementations. e.g. due to supporting both POSIX and native handles.
  if (is_posix && !is_android && !is_apple) {
    sources += [
      "memory/platform_shared_memory_mapper_posix.cc",
      "memory/platform_shared_memory_region_posix.cc",
    ]
  }

  if (is_posix && !is_apple) {
    sources += [
      "strings/sys_string_conversions_posix.cc",
      "synchronization/waitable_event_posix.cc",
      "synchronization/waitable_event_watcher_posix.cc",
      "threading/platform_thread_internal_posix.cc",
      "threading/platform_thread_internal_posix.h",
      "time/time_now_posix.cc",
    ]

    # TODO(b/167763382) Find an alternate solution for Chromecast devices, since
    # adding the icui18n and icuuc deps significantly increases the binary size.
    if (!is_castos && !is_cast_android) {
      sources += [ "time/time_exploded_icu.cc" ]

      # The ICU dependency is only needed on systems with a 32-bit time_t.
      # However, that cannot be determined from build variables, like
      # |current_cpu|, since some 32-bit systems have a 64-bit time_t (and vice
      # versa). Thus, the dependency is taken here for all POSIX platforms and
      # the compiler+linker should be able to easily detect when the ICU
      # routines will not be called and delete them in the final linking.
      deps += [
        "//third_party/icu:icui18n",
        "//third_party/icu:icuuc",
      ]
    }
  }

  if (is_posix) {
    sources += [ "time/time_exploded_posix.cc" ]
  }

  if ((is_posix && !is_apple && !is_android) || is_fuchsia) {
    sources += [ "profiler/stack_sampler_posix.cc" ]
  }

  if ((is_posix && !is_apple && !is_android && !is_chromeos) || is_fuchsia) {
    sources += [ "power_monitor/power_monitor_device_source_stub.cc" ]
  }

  # On ARC++-enabled ChromeOS system, we need TimeTicks::FromUptimeMillis to
  # interpret time values sent from Android container.
  if (is_android || is_chromeos_ash) {
    sources += [ "time/time_android.cc" ]
  }

  if (use_glib) {
    sources += [
      "message_loop/message_pump_glib.cc",
      "message_loop/message_pump_glib.h",
    ]
  }

  if (enable_base_tracing) {
    sources += [
      "trace_event/auto_open_close_event.h",
      "trace_event/builtin_categories.cc",
      "trace_event/builtin_categories.h",
      "trace_event/category_registry.cc",
      "trace_event/category_registry.h",
      "trace_event/heap_profiler.h",
      "trace_event/interned_args_helper.cc",
      "trace_event/interned_args_helper.h",
      "trace_event/log_message.cc",
      "trace_event/log_message.h",
      "trace_event/malloc_dump_provider.cc",
      "trace_event/malloc_dump_provider.h",
      "trace_event/memory_allocator_dump.cc",
      "trace_event/memory_allocator_dump.h",
      "trace_event/memory_dump_manager.cc",
      "trace_event/memory_dump_manager.h",
      "trace_event/memory_dump_manager_test_utils.h",
      "trace_event/memory_dump_provider.h",
      "trace_event/memory_dump_provider_info.cc",
      "trace_event/memory_dump_provider_info.h",
      "trace_event/memory_dump_request_args.cc",
      "trace_event/memory_dump_request_args.h",
      "trace_event/memory_dump_scheduler.cc",
      "trace_event/memory_dump_scheduler.h",
      "trace_event/memory_infra_background_allowlist.cc",
      "trace_event/memory_infra_background_allowlist.h",
      "trace_event/memory_pressure_level_proto.cc",
      "trace_event/memory_pressure_level_proto.h",
      "trace_event/memory_usage_estimator.cc",
      "trace_event/memory_usage_estimator.h",
      "trace_event/optional_trace_event.h",
      "trace_event/process_memory_dump.cc",
      "trace_event/process_memory_dump.h",
      "trace_event/trace_arguments.cc",
      "trace_event/trace_arguments.h",
      "trace_event/trace_buffer.cc",
      "trace_event/trace_buffer.h",
      "trace_event/trace_category.h",
      "trace_event/trace_config.cc",
      "trace_event/trace_config.h",
      "trace_event/trace_config_category_filter.cc",
      "trace_event/trace_config_category_filter.h",
      "trace_event/trace_event.h",
      "trace_event/trace_event_impl.cc",
      "trace_event/trace_event_impl.h",
      "trace_event/trace_event_memory_overhead.cc",
      "trace_event/trace_event_memory_overhead.h",
      "trace_event/trace_log.cc",
      "trace_event/trace_log.h",
      "trace_event/trace_log_constants.cc",
      "trace_event/traced_value.cc",
      "trace_event/traced_value.h",
      "trace_event/traced_value_support.h",
      "trace_event/tracing_agent.cc",
      "trace_event/tracing_agent.h",
      "trace_event/typed_macros.h",
      "trace_event/typed_macros_embedder_support.h",
      "trace_event/typed_macros_internal.cc",
      "trace_event/typed_macros_internal.h",
      "tracing/perfetto_platform.cc",
      "tracing/perfetto_platform.h",
      "tracing/perfetto_task_runner.cc",
      "tracing/perfetto_task_runner.h",
      "tracing/trace_time.cc",
      "tracing/trace_time.h",
      "tracing/tracing_tls.cc",
      "tracing/tracing_tls.h",
    ]

    public_deps += [
      "//base/tracing/protos:chrome_track_event_zero",
      "//third_party/perfetto:libperfetto",
    ]

    deps += [
      "//base/tracing/protos:chrome_track_event",
      "//third_party/perfetto/include/perfetto/protozero",
    ]

    all_dependent_configs += [
      ":perfetto_config",
      "//third_party/perfetto/gn:public_config",
    ]

    if (is_win) {
      sources += [
        "trace_event/trace_event_etw_export_win.cc",
        "trace_event/trace_event_etw_export_win.h",
        "trace_event/trace_logging_minimal_win.cc",
        "trace_event/trace_logging_minimal_win.h",
      ]
      if (use_perfetto_client_library) {
        sources += [
          "trace_event/etw_interceptor_win.cc",
          "trace_event/etw_interceptor_win.h",
        ]
      }
    }

    if (is_android) {
      sources += [
        "trace_event/application_state_proto_android.cc",
        "trace_event/application_state_proto_android.h",
        "trace_event/cpufreq_monitor_android.cc",
        "trace_event/cpufreq_monitor_android.h",
        "trace_event/java_heap_dump_provider_android.cc",
        "trace_event/java_heap_dump_provider_android.h",
      ]
    }

    if (use_partition_alloc_as_malloc) {
      sources += [
        "trace_event/address_space_dump_provider.cc",
        "trace_event/address_space_dump_provider.h",
      ]
    }
  } else {
    sources += [
      "trace_event/trace_event_stub.cc",
      "trace_event/trace_event_stub.h",
    ]
  }

  if (using_sanitizer && !is_fuchsia) {
    data += [ "//tools/valgrind/asan/" ]
    data_deps +=
        [ "//build/config/clang:llvm-symbolizer_data($host_toolchain)" ]
  }

  if (!is_debug) {
    configs -= [ "//build/config/compiler:default_optimization" ]
    configs += [ "//build/config/compiler:optimize_max" ]
  }
}

if (is_linux || is_chromeos) {
  # Split out as a separate target for two reasons:
  # - the line number reader is 2x slower in debug builds if not optimized,
  #   leading to a worse dev experience and test timeouts.
  # - it would be nice to upstream this logic into something like Abseil. The
  #   logic that drives the base symbolizer is already imported more or less
  #   directly from Abseil.
  source_set("dwarf_helpers") {
    sources = [
      "debug/buffered_dwarf_reader.cc",
      "debug/buffered_dwarf_reader.h",
      "debug/dwarf_line_no.cc",
      "debug/dwarf_line_no.h",
    ]

    deps = [
      "//base/allocator/partition_allocator:raw_ptr",
      "//base/numerics:base_numerics",
      "//base/third_party/symbolize",
    ]

    defines = [ "USE_SYMBOLIZE" ]

    configs -= [ "//build/config/compiler:default_optimization" ]
    configs += [ "//build/config/compiler:optimize_max" ]
  }
}

# Build flags for Control Flow Integrity
# https://www.chromium.org/developers/testing/control-flow-integrity
buildflag_header("cfi_buildflags") {
  header = "cfi_buildflags.h"

  flags = [
    # TODO(pcc): remove CFI_CAST_CHECK, see https://crbug.com/626794.
    "CFI_CAST_CHECK=$is_cfi && $use_cfi_cast",
    "CFI_DIAG=$is_cfi && $use_cfi_diag",
    "CFI_ICALL_CHECK=$is_cfi && $use_cfi_icall",
    "CFI_ENFORCEMENT_TRAP=$is_cfi && !$use_cfi_diag",
    "CFI_ENFORCEMENT_DIAGNOSTIC=$is_cfi && $use_cfi_diag && !$use_cfi_recover",
  ]
}

buildflag_header("debugging_buildflags") {
  header = "debugging_buildflags.h"
  header_dir = "base/debug"
  enable_gdbinit_warning =
      is_debug && (strip_absolute_paths_from_debug_symbols || use_custom_libcxx)
  enable_lldbinit_warning =
      is_debug && strip_absolute_paths_from_debug_symbols && is_mac

  # TODO(crbug.com/1420774): Try and enable these checks on Android too.
  enable_commandline_sequence_checks =
      (is_debug || dcheck_always_on) && !is_android

  if (enable_stack_trace_line_numbers) {
    assert(
        symbol_level > 0,
        "symbol_level must be set to greater than 0 for source line numbers.")
  }

  flags = [
    "DCHECK_IS_CONFIGURABLE=$dcheck_is_configurable",
    "ENABLE_PROFILING=$enable_profiling",
    "CAN_UNWIND_WITH_FRAME_POINTERS=$can_unwind_with_frame_pointers",
    "UNSAFE_DEVELOPER_BUILD=$is_unsafe_developer_build",
    "CAN_UNWIND_WITH_CFI_TABLE=$can_unwind_with_cfi_table",
    "EXCLUDE_UNWIND_TABLES=$exclude_unwind_tables",
    "ENABLE_GDBINIT_WARNING=$enable_gdbinit_warning",
    "ENABLE_LLDBINIT_WARNING=$enable_lldbinit_warning",
    "EXPENSIVE_DCHECKS_ARE_ON=$enable_expensive_dchecks",
    "ENABLE_STACK_TRACE_LINE_NUMBERS=$enable_stack_trace_line_numbers",
    "ENABLE_COMMANDLINE_SEQUENCE_CHECKS=$enable_commandline_sequence_checks",
    "ENABLE_ALLOCATION_STACK_TRACE_RECORDER=$build_allocation_stack_trace_recorder",
    "ENABLE_ALLOCATION_TRACE_RECORDER_FULL_REPORTING=$build_allocation_trace_recorder_full_reporting",
  ]
}

buildflag_header("feature_list_buildflags") {
  header = "feature_list_buildflags.h"

  if (is_chromeos_ash) {
    flags = [
      "ENABLE_BANNED_BASE_FEATURE_PREFIX=true",
      "BANNED_BASE_FEATURE_PREFIX=\"CrOSLateBoot\"",
    ]
  } else {
    flags = [ "ENABLE_BANNED_BASE_FEATURE_PREFIX=false" ]
  }
}

buildflag_header("logging_buildflags") {
  header = "logging_buildflags.h"

  flags = [ "ENABLE_LOG_ERROR_NOT_REACHED=$enable_log_error_not_reached" ]
}

buildflag_header("orderfile_buildflags") {
  header = "orderfile_buildflags.h"
  header_dir = "base/android/orderfile"
  using_order_profiling = is_android && use_order_profiling
  using_devtools_dumping =
      is_android && devtools_instrumentation_dumping && enable_base_tracing

  flags = [
    "DEVTOOLS_INSTRUMENTATION_DUMPING=$using_devtools_dumping",
    "ORDERFILE_INSTRUMENTATION=$using_order_profiling",
  ]
}

# Build flags for ProtectedMemory
buildflag_header("protected_memory_buildflags") {
  header = "protected_memory_buildflags.h"
  header_dir = "base/memory"

  # Currently Protected Memory is only supported on Windows.
  protected_memory_enabled = is_win

  flags = [ "PROTECTED_MEMORY_ENABLED=$protected_memory_enabled" ]
}

buildflag_header("synchronization_buildflags") {
  header = "synchronization_buildflags.h"
  header_dir = "base/synchronization"

  flags =
      [ "ENABLE_MUTEX_PRIORITY_INHERITANCE=$enable_mutex_priority_inheritance" ]
}

buildflag_header("anchor_functions_buildflags") {
  header = "anchor_functions_buildflags.h"
  header_dir = "base/android/library_loader"
  _supports_code_ordering =
      is_android && (current_cpu == "arm" || current_cpu == "arm64" ||
                     current_cpu == "x86" || current_cpu == "x64")

  flags = [
    "USE_LLD=$use_lld",
    "SUPPORTS_CODE_ORDERING=$_supports_code_ordering",
  ]
}

buildflag_header("clang_profiling_buildflags") {
  header = "clang_profiling_buildflags.h"
  header_dir = "base"

  flags = [
    "CLANG_PROFILING=$use_clang_profiling",
    "CLANG_PROFILING_INSIDE_SANDBOX=$use_clang_profiling_inside_sandbox",
    "USE_CLANG_COVERAGE=$use_clang_coverage",
  ]
}

buildflag_header("sanitizer_buildflags") {
  header = "sanitizer_buildflags.h"
  header_dir = "base"

  flags = [
    "IS_HWASAN=$is_hwasan",
    "USING_SANITIZER=$using_sanitizer",
  ]
}

buildflag_header("tracing_buildflags") {
  header = "tracing_buildflags.h"

  flags = [
    "ENABLE_BASE_TRACING=$enable_base_tracing",
    "USE_PERFETTO_CLIENT_LIBRARY=$use_perfetto_client_library",
    "USE_PERFETTO_TRACE_PROCESSOR=$use_perfetto_trace_processor",
    "OPTIONAL_TRACE_EVENTS_ENABLED=$optional_trace_events_enabled",
  ]
}

buildflag_header("profiler_buildflags") {
  header = "profiler_buildflags.h"
  header_dir = "base/profiler"

  flags = [
    "ENABLE_ARM_CFI_TABLE=$enable_arm_cfi_table",
    "IOS_STACK_PROFILER_ENABLED=$ios_stack_profiler_enabled",
  ]
}

buildflag_header("power_monitor_buildflags") {
  header = "power_monitor_buildflags.h"
  header_dir = "base/power_monitor"
  _has_battery_provider_impl = is_win || is_mac

  flags = [ "HAS_BATTERY_LEVEL_PROVIDER_IMPL=$_has_battery_provider_impl" ]
}

buildflag_header("fuzzing_buildflags") {
  header = "fuzzing_buildflags.h"
  flags = [ "USE_FUZZING_ENGINE=$use_fuzzing_engine" ]
}

# This is the subset of files from base that should not be used with a dynamic
# library. Note that this library cannot depend on base because base depends on
# base_static.
static_library("base_static") {
  sources = [
    "base_export.h",
    "base_switches.cc",
    "base_switches.h",
    "immediate_crash.h",
  ]

  deps = [
    ":fuzzing_buildflags",
    "//build:chromeos_buildflags",
  ]

  if (is_win) {
    sources += [
      "win/static_constants.cc",
      "win/static_constants.h",
    ]

    public_deps = [ "//base/win:pe_image" ]

    # Disable sanitizer coverage in win/pe_image.cc. It is called by the sandbox
    # before sanitizer coverage can initialize. http://crbug.com/484711
    configs -= [ "//build/config/sanitizers:default_sanitizer_flags" ]
    configs +=
        [ "//build/config/sanitizers:default_sanitizer_flags_but_coverage" ]
  }

  if (!is_debug) {
    configs -= [ "//build/config/compiler:default_optimization" ]
    configs += [ "//build/config/compiler:optimize_max" ]
  }
}

if (use_nodebug_assertion) {
  # nodebug_assertion.cc has to be in its own source_set instead of being
  # included as a source in //base as otherwise its symbols won't be linked in
  # if they end up in an archive.
  source_set("nodebug_assertion") {
    defines = [ "BASE_IMPLEMENTATION" ]
    sources = [ "nodebug_assertion.cc" ]
    deps = [ ":base_static" ]
  }
}

component("i18n") {
  output_name = "base_i18n"
  sources = [
    "i18n/base_i18n_export.h",
    "i18n/base_i18n_switches.cc",
    "i18n/base_i18n_switches.h",
    "i18n/break_iterator.cc",
    "i18n/break_iterator.h",
    "i18n/case_conversion.cc",
    "i18n/case_conversion.h",
    "i18n/char_iterator.cc",
    "i18n/char_iterator.h",
    "i18n/character_encoding.cc",
    "i18n/character_encoding.h",
    "i18n/encoding_detection.cc",
    "i18n/encoding_detection.h",
    "i18n/file_util_icu.cc",
    "i18n/file_util_icu.h",
    "i18n/i18n_constants.cc",
    "i18n/i18n_constants.h",
    "i18n/icu_string_conversions.cc",
    "i18n/icu_string_conversions.h",
    "i18n/icu_util.cc",
    "i18n/icu_util.h",
    "i18n/message_formatter.cc",
    "i18n/message_formatter.h",
    "i18n/number_formatting.cc",
    "i18n/number_formatting.h",
    "i18n/rtl.cc",
    "i18n/rtl.h",
    "i18n/streaming_utf8_validator.cc",
    "i18n/streaming_utf8_validator.h",
    "i18n/string_compare.cc",
    "i18n/string_compare.h",
    "i18n/string_search.cc",
    "i18n/string_search.h",
    "i18n/time_formatting.cc",
    "i18n/time_formatting.h",
    "i18n/timezone.cc",
    "i18n/timezone.h",
    "i18n/unicodestring.h",
    "i18n/utf8_validator_tables.cc",
    "i18n/utf8_validator_tables.h",
  ]
  defines = [ "BASE_I18N_IMPLEMENTATION" ]
  configs += [ "//build/config/compiler:wexit_time_destructors" ]
  public_deps = [
    ":base",
    "//third_party/ced",
    "//third_party/icu",
  ]
  deps = [
    "//base/third_party/dynamic_annotations",
    "//build:chromecast_buildflags",
    "//build:chromeos_buildflags",
  ]

  if (!is_debug) {
    configs -= [ "//build/config/compiler:default_optimization" ]
    configs += [ "//build/config/compiler:optimize_max" ]
  }

  if (is_chromeos_lacros) {
    sources += [
      "i18n/icu_mergeable_data_file.cc",
      "i18n/icu_mergeable_data_file.h",
    ]
  }

  if (is_mac) {
    frameworks = [ "CoreFoundation.framework" ]
  }
}

executable("containers_memory_benchmark") {
  sources = [ "containers/containers_memory_benchmark.cc" ]
  deps = [ ":base" ]
  testonly = true
}

test("base_perftests") {
  sources = [
    "big_endian_perftest.cc",
    "hash/hash_perftest.cc",
    "json/json_perftest.cc",
    "message_loop/message_pump_perftest.cc",
    "observer_list_perftest.cc",
    "rand_util_perftest.cc",
    "strings/string_util_perftest.cc",
    "substring_set_matcher/substring_set_matcher_perftest.cc",
    "synchronization/lock_perftest.cc",
    "synchronization/waitable_event_perftest.cc",
    "task/job_perftest.cc",
    "task/sequence_manager/sequence_manager_perftest.cc",
    "task/thread_pool/thread_pool_perftest.cc",
    "threading/counter_perftest.cc",
    "threading/thread_local_storage_perftest.cc",
    "threading/thread_perftest.cc",
    "types/expected_macros_perftest.cc",
  ]

  deps = [
    ":base",
    ":debugging_buildflags",
    "//base/test:test_support",
    "//base/test:test_support_perf",
    "//testing/gtest",
    "//testing/perf",
    "//third_party/google_benchmark",
  ]

  if (use_partition_alloc) {
    sources += [
      "allocator/partition_allocator/src/partition_alloc/partition_alloc_perftest.cc",
      "allocator/partition_allocator/src/partition_alloc/partition_lock_perftest.cc",
    ]
    deps += [ ":partition_alloc_test_support" ]
  }

  data_deps = [
    # Needed for isolate script to execute.
    "//testing:run_perf_test",
  ]

  if (is_android) {
    deps += [ "//testing/android/native_test:native_test_native_code" ]
    shard_timeout = 600
  }

  if (is_fuchsia) {
    # Run these performance tests against the actual system.
    run_as_chromium_system_test = true
  }

  if (!is_official_build) {
    # The extra data tables required by stack traces are turned off for official
    # build, only do stack trace perftest for unofficial build
    sources += [ "debug/stack_trace_perftest.cc" ]
  }

  if (build_allocation_stack_trace_recorder) {
    sources += [ "debug/allocation_trace_perftest.cc" ]
  }
}

test("base_i18n_perftests") {
  sources = [ "i18n/streaming_utf8_validator_perftest.cc" ]
  deps = [
    ":base",
    ":i18n",
    "//base/test:test_support",
    "//base/test:test_support_perf",
    "//testing/gtest",
  ]
}

if (!is_ios) {
  executable("build_utf8_validator_tables") {
    sources = [ "i18n/build_utf8_validator_tables.cc" ]
    deps = [
      ":base",
      "//build/win:default_exe_manifest",
      "//third_party/icu:icuuc",
    ]
  }

  executable("check_example") {
    sources = [ "check_example.cc" ]
    deps = [
      ":base",
      "//build/win:default_exe_manifest",
    ]
  }

  executable("json_perftest_decodebench") {
    sources = [ "json/json_perftest_decodebench.cc" ]
    deps = [ ":base" ]
  }
}

if (is_win) {
  # Target to manually rebuild pe_image_test.dll which is checked into
  # base/test/data/pe_image.
  shared_library("pe_image_test") {
    sources = [ "win/pe_image_test.cc" ]
    ldflags = [
      "/DELAYLOAD:cfgmgr32.dll",
      "/DELAYLOAD:shell32.dll",
      "/SUBSYSTEM:WINDOWS",
    ]
    libs = [
      "cfgmgr32.lib",
      "shell32.lib",
    ]
  }

  loadable_module("scoped_handle_test_dll") {
    sources = [ "win/scoped_handle_test_dll.cc" ]
    deps = [
      ":base",
      "//base/win:base_win_buildflags",
    ]
  }
}

if ((is_win && (current_cpu == "x64" || current_cpu == "arm64")) || is_mac ||
    (is_android && (current_cpu == "arm" || current_cpu == "arm64")) ||
    (is_chromeos && (current_cpu == "x64" || current_cpu == "arm64"))) {
  # Must be a loadable module so that it can be loaded/unloaded at runtime
  # during testing.
  loadable_module("base_profiler_test_support_library") {
    testonly = true
    sources = [ "profiler/test_support_library.cc" ]
  }
}

if (is_android && (current_cpu == "arm" || current_cpu == "arm64")) {
  # Use separate library for
  # |LibunwindstackUnwinderAndroidTest.ReparsesMapsOnNewDynamicLibraryLoad|
  # testcase. We can't use the existing `base_profiler_test_support_library`
  # library for this test since this gets loaded by other tests and unloading
  # a library in Android doesn't guarantee it will actually be unloaded.
  # And in the test we would like to observe the change in /proc/self/maps
  # on loading a dynamic library.
  loadable_module("base_profiler_reparsing_test_support_library") {
    testonly = true
    sources = [ "profiler/test_support_library.cc" ]
  }
}

if (is_android) {
  source_set("native_unwinder_android") {
    # This target is intended to be used only within the stack_unwinder dynamic
    # feature module, to avoid binary size increase in Chrome due to the
    # libunwindstack dependency. The additional :* visibility is needed to allow
    # use by base test targets.
    visibility = [
      ":*",
      "//chrome/android/modules/stack_unwinder/internal:*",
    ]
    sources = [
      "profiler/libunwindstack_unwinder_android.cc",
      "profiler/libunwindstack_unwinder_android.h",
      "profiler/native_unwinder_android.cc",
      "profiler/native_unwinder_android.h",
      "profiler/native_unwinder_android_memory_regions_map_impl.cc",
      "profiler/native_unwinder_android_memory_regions_map_impl.h",
    ]

    public_deps = [
      ":base",
      "//third_party/libunwindstack",
    ]
  }
}

source_set("base_stack_sampling_profiler_test_util") {
  testonly = true
  sources = [
    "profiler/stack_sampling_profiler_test_util.cc",
    "profiler/stack_sampling_profiler_test_util.h",
  ]
  deps = [
    ":base",
    "//base/test:test_support",
    "//testing/gtest",
  ]
  if (is_android) {
    sources += [
      "profiler/stack_sampling_profiler_java_test_util.cc",
      "profiler/stack_sampling_profiler_java_test_util.h",
    ]
    deps += [
      ":base_profiler_test_support_jni",
      ":native_unwinder_android",
    ]
  }
}

if (is_apple) {
  bundle_data("base_unittests_bundle_data") {
    testonly = true
    sources = [
      "//tools/metrics/histograms/enums.xml",
      "test/data/file_util/binary_file.bin",
      "test/data/file_util/binary_file_diff.bin",
      "test/data/file_util/binary_file_same.bin",
      "test/data/file_util/blank_line.txt",
      "test/data/file_util/blank_line_crlf.txt",
      "test/data/file_util/crlf.txt",
      "test/data/file_util/different.txt",
      "test/data/file_util/different_first.txt",
      "test/data/file_util/different_last.txt",
      "test/data/file_util/empty1.txt",
      "test/data/file_util/empty2.txt",
      "test/data/file_util/first1.txt",
      "test/data/file_util/first2.txt",
      "test/data/file_util/original.txt",
      "test/data/file_util/same.txt",
      "test/data/file_util/same_length.txt",
      "test/data/file_util/shortened.txt",
      "test/data/json/bom_feff.json",
      "test/data/pe_image_reader/signed.exe",
      "test/data/serializer_nested_test.json",
      "test/data/serializer_test.json",
      "test/data/serializer_test_nowhitespace.json",
    ]
    outputs = [ "{{bundle_resources_dir}}/" +
                "{{source_root_relative_dir}}/{{source_file_part}}" ]
  }
}

# Generated file whose location is verified in DIR_GEN_TEST_DATA_ROOT test.
generated_file("generate_file_for_test") {
  testonly = true
  outputs = [ "$target_gen_dir/generated_file_for_test.txt" ]
  data = [ "$target_gen_dir/generated_file_for_test.txt" ]
  contents = "Hello world"
}

if (is_ios) {
  bundle_data("base_test_proto_bundle_data") {
    testonly = true
    public_deps = [ "//base/test:test_proto_descriptor" ]
    sources = [ "$root_gen_dir/base/test/test_proto.descriptor" ]
    outputs = [ "{{bundle_resources_dir}}/gen/base/test/{{source_file_part}}" ]
  }

  bundle_data("base_generated_test_file_bundle_data") {
    testonly = true
    public_deps = [ ":generate_file_for_test" ]
    sources = [ "$target_gen_dir/generated_file_for_test.txt" ]
    outputs = [ "{{bundle_resources_dir}}/gen/base/{{source_file_part}}" ]
  }
}

if (is_apple) {
  source_set("base_unittests_noarc") {
    testonly = true
    sources = [ "apple/scoped_nsobject_unittest.mm" ]

    # Do not compile with ARC because this target has tests for code that does
    # not compile with ARC.
    configs -= [ "//build/config/compiler:enable_arc" ]
    deps = [
      ":base",
      "//base/test:test_support",
      "//testing/gtest",
    ]
  }
}

if (!is_nacl && (is_linux || is_chromeos)) {
  # This test must compile with -fstack-protector-all
  source_set("stack_canary_linux_unittests") {
    testonly = true

    sources = [ "stack_canary_linux_unittest.cc" ]
    cflags = [ "-fstack-protector-all" ]

    deps = [
      "//base",
      "//testing/gtest",
    ]
  }
}

if (is_fuchsia) {
  fidl_library("testfidl") {
    library_name = "base.testfidl"

    sources = [ "fuchsia/test.test-fidl" ]
  }

  # TODO(crbug.com/1416553): remove this once all users are migrated to natural bindings.
  source_set("test_interface_impl") {
    testonly = true
    sources = [
      "fuchsia/test_interface_impl.cc",
      "fuchsia/test_interface_impl.h",
    ]
    deps = [
      ":base",
      "//testing/gtest",
    ]
    public_deps = [
      ":testfidl_hlcpp",
      "//third_party/fuchsia-sdk/sdk/pkg/fidl_cpp",
      "//third_party/fuchsia-sdk/sdk/pkg/zx",
    ]
  }

  source_set("test_interface_natural_impl") {
    testonly = true
    public = [ "fuchsia/test_interface_natural_impl.h" ]
    sources = [ "fuchsia/test_interface_natural_impl.cc" ]
    deps = [
      ":base",
      "//testing/gtest",
      "//third_party/fuchsia-sdk/sdk/pkg/async",
    ]
    public_deps = [
      ":testfidl_cpp",
      "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.io:fuchsia.io_cpp_common",
      "//third_party/fuchsia-sdk/sdk/pkg/fidl_cpp_wire",
      "//third_party/fuchsia-sdk/sdk/pkg/sys_cpp",
    ]
  }

  source_set("test_log_listener_safe") {
    testonly = true
    sources = [
      "fuchsia/test_log_listener_safe.cc",
      "fuchsia/test_log_listener_safe.h",
    ]
    deps = [
      ":base",
      "//base/test:test_support",
      "//testing/gtest",
    ]
    public_deps = [
      "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.logger:fuchsia.logger_hlcpp",
    ]
  }
}

source_set("arm_bti_testfunctions") {
  testonly = true

  sources = []

  if (target_cpu == "arm64" && (is_linux || is_android)) {
    sources = [
      "allocator/partition_allocator/src/partition_alloc/arm_bti_test_functions.S",
      "allocator/partition_allocator/src/partition_alloc/arm_bti_test_functions.h",
    ]
  }
}

source_set("path_service_unittest") {
  testonly = true

  sources = [ "path_service_unittest.cc" ]

  deps = [
    ":base",
    "//base/test:test_support",
    "//testing/gtest",
  ]

  if (is_ios) {
    deps += [ ":base_generated_test_file_bundle_data" ]
  } else {
    data_deps = [ ":generate_file_for_test" ]
  }
}

test("base_unittests") {
  sources = [
    "allocator/dispatcher/dispatcher_unittest.cc",
    "allocator/dispatcher/initializer_unittest.cc",
    "allocator/dispatcher/internal/dispatcher_internal_unittest.cc",
    "allocator/dispatcher/testing/dispatcher_test.cc",
    "allocator/dispatcher/testing/dispatcher_test.h",
    "allocator/dispatcher/testing/observer_mock.h",
    "allocator/dispatcher/testing/tools.h",
    "allocator/dispatcher/tls_unittest.cc",
    "allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_test_support.h",
    "allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_unittest.cc",
    "allocator/partition_allocator/src/partition_alloc/pointers/raw_ref_unittest.cc",
    "at_exit_unittest.cc",
    "atomicops_unittest.cc",
    "auto_reset_unittest.cc",
    "barrier_callback_unittest.cc",
    "barrier_closure_unittest.cc",
    "base64_unittest.cc",
    "base64url_unittest.cc",
    "big_endian_unittest.cc",
    "bit_cast_unittest.cc",
    "bits_unittest.cc",
    "build_time_unittest.cc",
    "callback_list_unittest.cc",
    "cancelable_callback_unittest.cc",
    "check_is_test_unittest.cc",
    "check_unittest.cc",
    "command_line_unittest.cc",
    "component_export_unittest.cc",
    "containers/adapters_unittest.cc",
    "containers/buffer_iterator_unittest.cc",
    "containers/checked_iterators_unittest.cc",
    "containers/circular_deque_unittest.cc",
    "containers/contains_unittest.cc",
    "containers/enum_set_unittest.cc",
    "containers/extend_unittest.cc",
    "containers/fixed_flat_map_unittest.cc",
    "containers/fixed_flat_set_unittest.cc",
    "containers/flat_map_unittest.cc",
    "containers/flat_set_unittest.cc",
    "containers/flat_tree_unittest.cc",
    "containers/heap_array_unittest.cc",
    "containers/id_map_unittest.cc",
    "containers/intrusive_heap_unittest.cc",
    "containers/linked_list_unittest.cc",
    "containers/lru_cache_unittest.cc",
    "containers/map_util_unittest.cc",
    "containers/small_map_unittest.cc",
    "containers/span_reader_unittest.cc",
    "containers/span_unittest.cc",
    "containers/span_writer_unittest.cc",
    "containers/to_value_list_unittest.cc",
    "containers/to_vector_unittest.cc",
    "containers/unique_ptr_adapters_unittest.cc",
    "containers/vector_buffer_unittest.cc",
    "cpu_unittest.cc",
    "debug/alias_unittest.cc",
    "debug/asan_service_unittest.cc",
    "debug/crash_logging_unittest.cc",
    "debug/debugger_unittest.cc",
    "debug/dump_without_crashing_unittest.cc",
    "debug/stack_trace_unittest.cc",
    "debug/task_trace_unittest.cc",
    "environment_unittest.cc",
    "feature_list_unittest.cc",
    "files/block_tests_writing_to_special_dirs_unittest.cc",
    "files/file_enumerator_unittest.cc",
    "files/file_error_or_unittest.cc",
    "files/file_path_unittest.cc",
    "files/file_path_watcher_unittest.cc",
    "files/file_proxy_unittest.cc",
    "files/file_unittest.cc",
    "files/file_util_unittest.cc",
    "files/important_file_writer_cleaner_unittest.cc",
    "files/important_file_writer_unittest.cc",
    "files/memory_mapped_file_unittest.cc",
    "files/safe_base_name_unittest.cc",
    "files/scoped_temp_dir_unittest.cc",
    "files/scoped_temp_file_unittest.cc",
    "functional/bind_unittest.cc",
    "functional/callback_helpers_unittest.cc",
    "functional/callback_unittest.cc",
    "functional/concurrent_callbacks_unittest.cc",
    "functional/concurrent_closures_unittest.cc",
    "functional/function_ref_unittest.cc",
    "functional/overloaded_unittest.cc",
    "gmock_unittest.cc",
    "hash/hash_unittest.cc",
    "hash/legacy_hash_unittest.cc",
    "hash/md5_constexpr_unittest.cc",
    "hash/md5_unittest.cc",
    "hash/sha1_unittest.cc",
    "i18n/break_iterator_unittest.cc",
    "i18n/case_conversion_unittest.cc",
    "i18n/char_iterator_unittest.cc",
    "i18n/character_encoding_unittest.cc",
    "i18n/file_util_icu_unittest.cc",
    "i18n/icu_string_conversions_unittest.cc",
    "i18n/icu_util_unittest.cc",
    "i18n/message_formatter_unittest.cc",
    "i18n/number_formatting_unittest.cc",
    "i18n/rtl_unittest.cc",
    "i18n/streaming_utf8_validator_unittest.cc",
    "i18n/string_search_unittest.cc",
    "i18n/time_formatting_unittest.cc",
    "i18n/timezone_unittest.cc",
    "i18n/transliterator_unittest.cc",
    "immediate_crash_unittest.cc",
    "json/json_parser_unittest.cc",
    "json/json_reader_unittest.cc",
    "json/json_value_converter_unittest.cc",
    "json/json_value_serializer_unittest.cc",
    "json/json_writer_unittest.cc",
    "json/string_escape_unittest.cc",
    "json/values_util_unittest.cc",
    "lazy_instance_unittest.cc",
    "logging_unittest.cc",
    "memory/aligned_memory_unittest.cc",
    "memory/discardable_memory_backing_field_trial_unittest.cc",
    "memory/discardable_shared_memory_unittest.cc",
    "memory/memory_pressure_listener_unittest.cc",
    "memory/platform_shared_memory_region_unittest.cc",
    "memory/protected_memory_unittest.cc",
    "memory/ptr_util_unittest.cc",
    "memory/raw_ptr_asan_unittest.cc",
    "memory/raw_ptr_chromium_unittest.cc",
    "memory/raw_span_unittest.cc",
    "memory/ref_counted_memory_unittest.cc",
    "memory/ref_counted_unittest.cc",
    "memory/safe_ref_unittest.cc",
    "memory/safety_checks_unittest.cc",
    "memory/shared_memory_hooks_unittest.cc",
    "memory/shared_memory_mapping_unittest.cc",
    "memory/shared_memory_region_unittest.cc",
    "memory/singleton_unittest.cc",
    "memory/unsafe_shared_memory_pool_unittest.cc",
    "memory/values_equivalent_unittest.cc",
    "memory/weak_auto_reset_unittest.cc",
    "memory/weak_ptr_unittest.cc",
    "message_loop/message_pump_glib_unittest.cc",
    "message_loop/message_pump_unittest.cc",
    "message_loop/work_id_provider_unittest.cc",
    "metrics/bucket_ranges_unittest.cc",
    "metrics/crc32_unittest.cc",
    "metrics/field_trial_params_unittest.cc",
    "metrics/field_trial_unittest.cc",
    "metrics/histogram_base_unittest.cc",
    "metrics/histogram_delta_serialization_unittest.cc",
    "metrics/histogram_functions_unittest.cc",
    "metrics/histogram_macros_unittest.cc",
    "metrics/histogram_samples_unittest.cc",
    "metrics/histogram_snapshot_manager_unittest.cc",
    "metrics/histogram_threadsafe_unittest.cc",
    "metrics/histogram_unittest.cc",
    "metrics/metrics_hashes_unittest.cc",
    "metrics/persistent_histogram_allocator_unittest.cc",
    "metrics/persistent_histogram_storage_unittest.cc",
    "metrics/persistent_memory_allocator_unittest.cc",
    "metrics/persistent_sample_map_unittest.cc",
    "metrics/ranges_manager_unittest.cc",
    "metrics/sample_map_unittest.cc",
    "metrics/sample_vector_unittest.cc",
    "metrics/single_sample_metrics_unittest.cc",
    "metrics/sparse_histogram_unittest.cc",
    "metrics/statistics_recorder_starvation_unittest.cc",
    "metrics/statistics_recorder_unittest.cc",
    "moving_window_unittest.cc",
    "native_library_unittest.cc",
    "no_destructor_unittest.cc",
    "observer_list_threadsafe_unittest.cc",
    "observer_list_unittest.cc",
    "one_shot_event_unittest.cc",
    "parameter_pack_unittest.cc",
    "pickle_unittest.cc",
    "power_monitor/battery_level_provider_unittest.cc",
    "power_monitor/battery_state_sampler_unittest.cc",
    "power_monitor/power_monitor_device_source_unittest.cc",
    "power_monitor/power_monitor_unittest.cc",
    "power_monitor/timer_sampling_event_source_unittest.cc",
    "process/environment_internal_unittest.cc",
    "process/memory_unittest.cc",
    "process/process_metrics_unittest.cc",
    "process/process_unittest.cc",
    "process/process_util_unittest.cc",
    "profiler/metadata_recorder_unittest.cc",
    "profiler/module_cache_unittest.cc",
    "profiler/sample_metadata_unittest.cc",
    "profiler/stack_buffer_unittest.cc",
    "profiler/stack_copier_suspend_unittest.cc",
    "profiler/stack_copier_unittest.cc",
    "profiler/stack_sampler_unittest.cc",
    "profiler/stack_sampling_profiler_unittest.cc",
    "rand_util_unittest.cc",
    "ranges/algorithm_unittest.cc",
    "ranges/functional_unittest.cc",
    "ranges/ranges_unittest.cc",
    "run_loop_unittest.cc",
    "safe_numerics_unittest.cc",
    "sampling_heap_profiler/lock_free_address_hash_set_unittest.cc",
    "scoped_add_feature_flags_unittest.cc",
    "scoped_clear_last_error_unittest.cc",
    "scoped_generic_unittest.cc",
    "scoped_multi_source_observation_unittest.cc",
    "scoped_native_library_unittest.cc",
    "scoped_observation_unittest.cc",
    "security_unittest.cc",
    "sequence_checker_unittest.cc",
    "sequence_token_unittest.cc",
    "state_transitions_unittest.cc",
    "std_clamp_unittest.cc",
    "stl_util_unittest.cc",
    "strings/abseil_string_number_conversions_unittest.cc",
    "strings/cstring_view_unittest.cc",
    "strings/escape_unittest.cc",
    "strings/levenshtein_distance_unittest.cc",
    "strings/no_trigraphs_unittest.cc",
    "strings/pattern_unittest.cc",
    "strings/safe_sprintf_unittest.cc",
    "strings/strcat_unittest.cc",
    "strings/string_number_conversions_unittest.cc",
    "strings/string_piece_unittest.cc",
    "strings/string_split_unittest.cc",
    "strings/string_tokenizer_unittest.cc",
    "strings/string_util_unittest.cc",
    "strings/stringize_macros_unittest.cc",
    "strings/stringprintf_unittest.cc",
    "strings/sys_string_conversions_unittest.cc",
    "strings/to_string_unittest.cc",
    "strings/utf_offset_string_conversions_unittest.cc",
    "strings/utf_string_conversion_utils_unittest.cc",
    "strings/utf_string_conversions_unittest.cc",
    "substring_set_matcher/string_pattern_unittest.cc",
    "substring_set_matcher/substring_set_matcher_unittest.cc",
    "supports_user_data_unittest.cc",
    "sync_socket_unittest.cc",
    "synchronization/atomic_flag_unittest.cc",
    "synchronization/condition_variable_unittest.cc",
    "synchronization/lock_unittest.cc",
    "synchronization/waitable_event_unittest.cc",
    "synchronization/waitable_event_watcher_unittest.cc",
    "sys_byteorder_unittest.cc",
    "system/sys_info_unittest.cc",
    "system/system_monitor_unittest.cc",
    "task/bind_post_task_unittest.cc",
    "task/cancelable_task_tracker_unittest.cc",
    "task/common/checked_lock_unittest.cc",
    "task/common/operations_controller_unittest.cc",
    "task/common/task_annotator_unittest.cc",
    "task/default_delayed_task_handle_delegate_unittest.cc",
    "task/deferred_sequenced_task_runner_unittest.cc",
    "task/delayed_task_handle_unittest.cc",
    "task/lazy_thread_pool_task_runner_unittest.cc",
    "task/post_job_unittest.cc",
    "task/scoped_set_task_priority_for_current_thread_unittest.cc",
    "task/sequence_manager/atomic_flag_set_unittest.cc",
    "task/sequence_manager/lazily_deallocated_deque_unittest.cc",
    "task/sequence_manager/sequence_manager_impl_unittest.cc",
    "task/sequence_manager/task_order_unittest.cc",
    "task/sequence_manager/task_queue_selector_unittest.cc",
    "task/sequence_manager/task_queue_unittest.cc",
    "task/sequence_manager/test/mock_time_message_pump_unittest.cc",
    "task/sequence_manager/thread_controller_power_monitor_unittest.cc",
    "task/sequence_manager/thread_controller_with_message_pump_impl_unittest.cc",
    "task/sequence_manager/wake_up_queue_unittest.cc",
    "task/sequence_manager/work_deduplicator_unittest.cc",
    "task/sequence_manager/work_queue_sets_unittest.cc",
    "task/sequence_manager/work_queue_unittest.cc",
    "task/sequence_manager/work_tracker_unittest.cc",
    "task/sequenced_task_runner_unittest.cc",
    "task/single_thread_task_executor_unittest.cc",
    "task/single_thread_task_runner_unittest.cc",
    "task/task_runner_unittest.cc",
    "task/task_traits_unittest.cc",
    "task/thread_pool/can_run_policy_test.h",
    "task/thread_pool/delayed_priority_queue_unittest.cc",
    "task/thread_pool/delayed_task_manager_unittest.cc",
    "task/thread_pool/environment_config_unittest.cc",
    "task/thread_pool/job_task_source_unittest.cc",
    "task/thread_pool/pooled_single_thread_task_runner_manager_unittest.cc",
    "task/thread_pool/priority_queue_unittest.cc",
    "task/thread_pool/semaphore/semaphore_unittest.cc",
    "task/thread_pool/sequence_unittest.cc",
    "task/thread_pool/service_thread_unittest.cc",
    "task/thread_pool/task_source_sort_key_unittest.cc",
    "task/thread_pool/task_tracker_unittest.cc",
    "task/thread_pool/test_task_factory.cc",
    "task/thread_pool/test_task_factory.h",
    "task/thread_pool/test_utils.cc",
    "task/thread_pool/test_utils.h",
    "task/thread_pool/thread_group_impl_unittest.cc",
    "task/thread_pool/thread_group_semaphore_unittest.cc",
    "task/thread_pool/thread_group_unittest.cc",
    "task/thread_pool/thread_pool_impl_unittest.cc",
    "task/thread_pool/tracked_ref_unittest.cc",
    "task/thread_pool/worker_thread_set_unittest.cc",
    "task/thread_pool/worker_thread_waitable_event_unittest.cc",
    "task/thread_pool_unittest.cc",
    "template_util_unittest.cc",
    "test/gmock_callback_support_unittest.cc",
    "test/gmock_expected_support_unittest.cc",
    "test/gmock_move_support_unittest.cc",
    "test/gtest_links_unittest.cc",
    "test/gtest_tags_unittest.cc",
    "test/gtest_xml_unittest_result_printer_unittest.cc",
    "test/launcher/test_launcher_unittest.cc",
    "test/launcher/test_results_tracker_unittest.cc",
    "test/memory/dangling_ptr_instrumentation.cc",
    "test/memory/dangling_ptr_instrumentation.h",
    "test/metrics/histogram_enum_reader_unittest.cc",
    "test/metrics/histogram_tester_unittest.cc",
    "test/metrics/user_action_tester_unittest.cc",
    "test/mock_callback_unittest.cc",
    "test/rectify_callback_unittest.cc",
    "test/repeating_test_future_unittest.cc",
    "test/run_until_unittest.cc",
    "test/scoped_feature_list_unittest.cc",
    "test/scoped_logging_settings.h",
    "test/scoped_mock_clock_override_unittest.cc",
    "test/scoped_mock_time_message_loop_task_runner_unittest.cc",
    "test/scoped_run_loop_timeout_unittest.cc",
    "test/task_environment_unittest.cc",
    "test/test_future_unittest.cc",
    "test/test_mock_time_task_runner_unittest.cc",
    "test/test_pending_task_unittest.cc",
    "test/test_proto_loader_unittest.cc",
    "test/test_waitable_event_unittest.cc",
    "third_party/dynamic_annotations/dynamic_annotations_compiletest.cc",
    "thread_annotations_unittest.cc",
    "threading/hang_watcher_unittest.cc",
    "threading/platform_thread_unittest.cc",
    "threading/post_task_and_reply_impl_unittest.cc",
    "threading/scoped_blocking_call_unittest.cc",
    "threading/scoped_thread_priority_unittest.cc",
    "threading/sequence_bound_unittest.cc",
    "threading/sequence_local_storage_map_unittest.cc",
    "threading/sequence_local_storage_slot_unittest.cc",
    "threading/simple_thread_unittest.cc",
    "threading/thread_checker_unittest.cc",
    "threading/thread_collision_warner_unittest.cc",
    "threading/thread_id_name_manager_unittest.cc",
    "threading/thread_local_storage_unittest.cc",
    "threading/thread_local_unittest.cc",
    "threading/thread_restrictions_unittest.cc",
    "threading/thread_unittest.cc",
    "threading/watchdog_unittest.cc",
    "time/pr_time_unittest.cc",
    "time/time_delta_from_string_unittest.cc",
    "time/time_unittest.cc",
    "timer/elapsed_timer_unittest.cc",
    "timer/hi_res_timer_manager_unittest.cc",
    "timer/lap_timer_unittest.cc",
    "timer/mock_timer_unittest.cc",
    "timer/timer_unittest.cc",
    "timer/wall_clock_timer_unittest.cc",
    "token_unittest.cc",
    "tools_sanity_unittest.cc",
    "traits_bag_unittest.cc",
    "tuple_unittest.cc",
    "types/cxx23_to_underlying_unittest.cc",
    "types/expected_macros_unittest.cc",
    "types/expected_unittest.cc",
    "types/fixed_array_unittest.cc",
    "types/id_type_unittest.cc",
    "types/is_complete_unittest.cc",
    "types/is_instantiation_unittest.cc",
    "types/optional_ref_unittest.cc",
    "types/optional_unittest.cc",
    "types/optional_util_unittest.cc",
    "types/pass_key_unittest.cc",
    "types/strong_alias_unittest.cc",
    "types/supports_ostream_operator_unittest.cc",
    "types/to_address_unittest.cc",
    "types/token_type_unittest.cc",
    "types/variant_util_unittest.cc",
    "unguessable_token_unittest.cc",
    "unsafe_buffers_unittest.cc",
    "uuid_unittest.cc",
    "value_iterators_unittest.cc",
    "values_unittest.cc",
    "version_unittest.cc",
    "vlog_unittest.cc",
  ]

  if (!is_cronet_build) {
    # location_unittest.cc fails gn check for tracing-shimmed Cronet builds.
    # Cronet buildbot do not run base_unittests, so exclusing this test
    # instead of adding a nogncheck is preferred (crbug.com/1400235).
    sources += [ "location_unittest.cc" ]
  }

  if (build_rust_base_conversions) {
    sources += [
      "containers/span_rust_unittest.cc",
      "strings/string_piece_rust_unittest.cc",
    ]
  }

  if (use_safe_libcxx || use_safe_libstdcxx) {
    sources += [ "libcpp_hardening_test.cc" ]
  }

  defines = []

  deps = [
    ":arm_bti_testfunctions",
    ":base",
    ":base_stack_sampling_profiler_test_util",
    ":check_version_internal",
    ":feature_list_buildflags",
    ":i18n",
    ":partition_alloc_test_support",
    ":path_service_unittest",
    ":sanitizer_buildflags",
    "//base/allocator:buildflags",
    "//base/numerics:unittests",
    "//base/test:native_library_test_utils",
    "//base/test:proto_test_support",
    "//base/test:run_all_unittests",
    "//base/test:test_proto",
    "//base/test:test_support",
    "//base/third_party/dynamic_annotations",
    "//build:blink_buildflags",
    "//build:chromecast_buildflags",
    "//build:chromeos_buildflags",
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/icu",
    "//third_party/modp_b64",
  ]

  data_deps = [
    "//base/test:immediate_crash_test_helper",
    "//base/test:test_child_process",
    "//base/test:test_shared_library",
    "//testing/buildbot/filters:base_unittests_filters",
  ]

  if (is_android && enable_chrome_android_internal) {
    data_deps += [ "//clank/build/bot/filters:base_unittests_filters" ]
  }

  if (build_rust_base_conversions) {
    deps += [ "//build/rust:cxx_cppdeps" ]
  }

  if (is_apple) {
    public_deps = [
      ":base_unittests_bundle_data",
      ":base_unittests_noarc",
    ]
  }

  data = [
    "test/data/",
    "//tools/metrics/histograms/enums.xml",
  ]

  if (use_blink) {
    sources += [
      "allocator/partition_allocator/src/partition_alloc/tagging_unittest.cc",
      "metrics/histogram_shared_memory_unittest.cc",
    ]

    if (!is_ios) {
      sources += [ "memory/shared_memory_switch_unittest.cc" ]
    }

    data_deps += [ "//base/test:test_proto_descriptor" ]
    data += [ "$root_gen_dir/base/test/test_proto.descriptor" ]
  }

  if (is_win) {
    deps += [ "//base/win:base_win_buildflags" ]

    sources += [
      "debug/gdi_debug_util_win_unittest.cc",
      "file_version_info_win_unittest.cc",
      "process/launch_unittest_win.cc",
      "test/fake_iasync_operation_win_unittest.cc",
      "test/test_file_util_win_unittest.cc",
      "test/test_reg_util_win_unittest.cc",
      "threading/platform_thread_win_unittest.cc",
      "time/time_win_unittest.cc",
      "win/access_control_list_unittest.cc",
      "win/access_token_unittest.cc",
      "win/async_operation_unittest.cc",
      "win/com_init_balancer_unittest.cc",
      "win/com_init_check_hook_unittest.cc",
      "win/com_init_util_unittest.cc",
      "win/dark_mode_support_unittest.cc",
      "win/dispatch_stub.cc",
      "win/dispatch_stub.h",
      "win/dllmain.cc",
      "win/embedded_i18n/language_selector_unittest.cc",
      "win/enum_variant_unittest.cc",
      "win/event_trace_consumer_unittest.cc",
      "win/event_trace_controller_unittest.cc",
      "win/event_trace_provider_unittest.cc",
      "win/hstring_reference_unittest.cc",
      "win/i18n_unittest.cc",
      "win/map_unittest.cc",
      "win/message_window_unittest.cc",
      "win/object_watcher_unittest.cc",
      "win/pe_image_reader_unittest.cc",
      "win/pe_image_unittest.cc",
      "win/post_async_results_unittest.cc",
      "win/reference_unittest.cc",
      "win/registry_unittest.cc",
      "win/scoped_bstr_unittest.cc",
      "win/scoped_handle_unittest.cc",
      "win/scoped_hstring_unittest.cc",
      "win/scoped_localalloc_unittest.cc",
      "win/scoped_process_information_unittest.cc",
      "win/scoped_safearray_unittest.cc",
      "win/scoped_variant_unittest.cc",
      "win/scoped_winrt_initializer_unittest.cc",
      "win/security_descriptor_unittest.cc",
      "win/security_util_unittest.cc",
      "win/shortcut_unittest.cc",
      "win/sid_unittest.cc",
      "win/startup_information_unittest.cc",
      "win/variant_conversions_unittest.cc",
      "win/variant_vector_unittest.cc",
      "win/vector_unittest.cc",
      "win/win_includes_unittest.cc",
      "win/win_util_unittest.cc",
      "win/window_enumerator_unittest.cc",
      "win/windows_version_unittest.cc",
      "win/winrt_storage_util_unittest.cc",
      "win/wmi_unittest.cc",
      "win/wrapped_window_proc_unittest.cc",
    ]

    if (enable_cet_shadow_stack) {
      sources += [ "win/cet_shadow_stack_unittest.cc" ]
    }

    libs = [
      "ntdll.lib",
      "onecore.lib",
    ]
  }

  if (is_linux || is_chromeos) {
    sources += [
      "debug/proc_maps_linux_unittest.cc",
      "files/scoped_file_linux_unittest.cc",
      "nix/mime_util_xdg_unittest.cc",
      "process/set_process_title_linux_unittest.cc",
    ]

    if (!is_nacl) {
      deps += [ ":stack_canary_linux_unittests" ]
    }
  }

  if (enable_base_tracing) {
    sources += [ "test/test_trace_processor_example_unittest.cc" ]
  }

  if (is_posix) {
    sources += [
      "files/dir_reader_posix_unittest.cc",
      "files/file_descriptor_watcher_posix_unittest.cc",
      "memory/madv_free_discardable_memory_allocator_posix_unittest.cc",
      "memory/madv_free_discardable_memory_posix_unittest.cc",
      "message_loop/fd_watch_controller_posix_unittest.cc",
      "posix/file_descriptor_shuffle_unittest.cc",
      "posix/unix_domain_socket_unittest.cc",
    ]
    if (!is_nacl && !is_apple) {
      sources += [
        "profiler/stack_base_address_posix_unittest.cc",
        "profiler/stack_copier_signal_unittest.cc",
        "profiler/thread_delegate_posix_unittest.cc",
      ]
    }
  }

  # Allow more direct string conversions on platforms with native utf8
  # strings
  if (is_apple || is_chromeos || is_castos || is_cast_android || is_fuchsia) {
    defines += [ "SYSTEM_NATIVE_UTF8" ]
  }

  if (is_android) {
    # Add unwind tables in base_unittests_apk test apk. The unwind tables are
    # generated from debug info in the binary. Removing "default_symbols" and
    # adding symbols config removes the "strip_debug" config that strips the
    # debug info, on base unittests apk.
    if (can_unwind_with_cfi_table || enable_arm_cfi_table) {
      configs -= [ "//build/config/compiler:default_symbols" ]
      if (symbol_level == 2) {
        configs += [ "//build/config/compiler:symbols" ]
      } else {
        configs += [ "//build/config/compiler:minimal_symbols" ]
      }
      add_unwind_tables_in_apk = true
    }
    if (can_unwind_with_cfi_table) {
      sources += [ "trace_event/cfi_backtrace_android_unittest.cc" ]
    }
    if (current_cpu == "arm") {
      sources += [
        "profiler/chrome_unwind_info_android_unittest.cc",
        "profiler/chrome_unwinder_android_unittest.cc",
      ]
    }
    if (current_cpu == "arm64") {
      sources += [ "profiler/frame_pointer_unwinder_unittest.cc" ]
    }
    if (!exclude_unwind_tables &&
        (current_cpu == "arm" || current_cpu == "arm64")) {
      sources += [
        "profiler/libunwindstack_unwinder_android_unittest.cc",
        "profiler/native_unwinder_android_unittest.cc",
      ]
      deps += [
        ":base_profiler_reparsing_test_support_library",
        ":base_profiler_test_support_java",
        ":base_profiler_test_support_jni",
        ":base_profiler_test_support_library",
        ":native_unwinder_android",
      ]
    }

    sources += [
      "android/application_status_listener_unittest.cc",
      "android/child_process_unittest.cc",
      "android/content_uri_utils_unittest.cc",
      "android/jank_metric_uma_recorder_unittest.cc",
      "android/java_handler_thread_unittest.cc",
      "android/jni_android_unittest.cc",
      "android/jni_array_unittest.cc",
      "android/jni_bytebuffer_unittest.cc",
      "android/jni_string_unittest.cc",
      "android/library_loader/library_prefetcher_unittest.cc",
      "android/linker/linker_jni.cc",
      "android/linker/linker_jni.h",
      "android/linker/linker_unittest.cc",
      "android/meminfo_dump_provider_unittest.cc",
      "android/path_utils_unittest.cc",
      "android/pmf_utils_unittest.cc",
      "android/pre_freeze_background_memory_trimmer_unittest.cc",
      "android/radio_utils_unittest.cc",
      "android/scoped_java_ref_unittest.cc",
      "android/sys_utils_unittest.cc",
      "android/token_android_unittest.cc",
      "android/unguessable_token_android_unittest.cc",
      "os_compat_android_unittest.cc",
    ]

    # Android does not use test_launcher to run gtests.
    sources -= [
      "process/process_unittest.cc",
      "process/process_util_unittest.cc",
      "test/gtest_links_unittest.cc",
      "test/gtest_tags_unittest.cc",
      "test/gtest_xml_unittest_result_printer_unittest.cc",
      "test/launcher/test_launcher_unittest.cc",
      "test/launcher/test_results_tracker_unittest.cc",
    ]
    deps += [
      ":base_unittest_support_java",
      ":base_unittest_support_jni",
      "//base/test:test_support_java",
      "//third_party/jni_zero",
    ]
  }

  if (build_allocation_stack_trace_recorder) {
    sources += [ "debug/allocation_trace_unittest.cc" ]
  }

  if (is_apple || current_os == "freebsd" || current_os == "openbsd") {
    sources += [ "posix/sysctl_unittest.cc" ]
  }
  if (is_apple) {
    sources += [
      "apple/backup_util_unittest.mm",
      "apple/bind_objc_block_unittest.mm",
      "apple/dispatch_source_mach_unittest.cc",
      "apple/foundation_util_unittest.mm",
      "strings/sys_string_conversions_apple_unittest.mm",
    ]
  }

  if (is_apple) {
    sources += [ "time/time_apple_unittest.mm" ]
  }

  if (is_mac) {
    sources += [
      "apple/call_with_eh_frame_unittest.mm",
      "apple/scoped_cftyperef_unittest.cc",
      "apple/scoped_mach_vm_unittest.cc",
      "apple/scoped_nsautorelease_pool_unittest.mm",
      "apple/scoped_objc_class_swizzler_unittest.mm",
      "enterprise_util_mac_unittest.mm",
      "mac/launch_application_unittest.mm",
      "mac/mac_util_unittest.mm",
      "mac/mach_port_rendezvous_unittest.cc",
      "mac/scoped_sending_event_unittest.mm",
      "message_loop/message_pump_apple_unittest.mm",
      "power_monitor/thermal_state_observer_mac_unittest.mm",
      "process/memory_unittest_mac.h",
      "process/memory_unittest_mac.mm",
      "system/sys_info_mac_unittest.mm",
    ]
    data_deps += [ "//base/mac:launch_application_test_helper" ]
  }

  if (is_ios) {
    sources += [
      "ios/crb_protocol_observers_unittest.mm",
      "ios/device_util_unittest.mm",
      "ios/scoped_critical_action_unittest.mm",
    ]

    bundle_deps = [ ":base_test_proto_bundle_data" ]
    if (use_blink) {
      bundle_deps +=
          [ "//testing/buildbot/filters:base_unittests_filters_bundle_data" ]
    }
    if (is_cronet_build) {
      sources += [ "message_loop/message_pump_io_ios_unittest.cc" ]
    } else {
      sources += [ "message_loop/message_pump_kqueue_unittest.cc" ]
    }

    # ios does not use test_launcher to run gtests.
    sources -= [
      "files/file_path_watcher_unittest.cc",
      "memory/discardable_shared_memory_unittest.cc",
      "process/memory_unittest.cc",
      "process/process_unittest.cc",
      "process/process_util_unittest.cc",
      "sync_socket_unittest.cc",
      "synchronization/waitable_event_watcher_unittest.cc",
      "test/gtest_links_unittest.cc",
      "test/gtest_tags_unittest.cc",
      "test/gtest_xml_unittest_result_printer_unittest.cc",
      "test/launcher/test_launcher_unittest.cc",
      "test/launcher/test_results_tracker_unittest.cc",
    ]

    sources -= [
      # The immediate crash tests require shared libraries, which we don't
      # support loading on iOS.
      "immediate_crash_unittest.cc",
    ]

    if (use_allocator_shim) {
      sources += [
        "allocator/partition_allocator/src/partition_alloc/shim/allocator_interception_apple_unittest.mm",
        "allocator/partition_allocator/src/partition_alloc/shim/malloc_zone_functions_apple_unittest.cc",
      ]
    }

    if (use_blink) {
      sources += [ "files/file_path_watcher_unittest.cc" ]
    }
  }

  if (use_partition_alloc) {
    sources += [
      "allocator/partition_allocator/src/partition_alloc/address_pool_manager_unittest.cc",
      "allocator/partition_allocator/src/partition_alloc/address_space_randomization_unittest.cc",
      "allocator/partition_allocator/src/partition_alloc/compressed_pointer_unittest.cc",
      "allocator/partition_allocator/src/partition_alloc/freeslot_bitmap_unittest.cc",
      "allocator/partition_allocator/src/partition_alloc/hardening_unittest.cc",
      "allocator/partition_allocator/src/partition_alloc/lightweight_quarantine_unittest.cc",
      "allocator/partition_allocator/src/partition_alloc/memory_reclaimer_unittest.cc",
      "allocator/partition_allocator/src/partition_alloc/page_allocator_unittest.cc",
      "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits_pa_unittest.cc",
      "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export_pa_unittest.cc",
      "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/cpu_pa_unittest.cc",
      "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging_pa_unittest.cc",
      "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/no_destructor_pa_unittest.cc",
      "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util_pa_unittest.cc",
      "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/scoped_clear_last_error_pa_unittest.cc",
      "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/cstring_builder_pa_unittest.cc",
      "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/safe_sprintf_pa_unittest.cc",
      "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/string_util_pa_unittest.cc",
      "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/stringprintf_pa_unittest.cc",
      "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations_pa_unittest.cc",
      "allocator/partition_allocator/src/partition_alloc/partition_alloc_unittest.cc",
      "allocator/partition_allocator/src/partition_alloc/partition_lock_unittest.cc",
      "allocator/partition_allocator/src/partition_alloc/reverse_bytes_unittest.cc",
      "allocator/partition_allocator/src/partition_alloc/thread_cache_unittest.cc",
    ]

    if (use_starscan) {
      sources += [
        "allocator/partition_allocator/src/partition_alloc/stack/stack_unittest.cc",
        "allocator/partition_allocator/src/partition_alloc/starscan/pcscan_scheduling_unittest.cc",
        "allocator/partition_allocator/src/partition_alloc/starscan/pcscan_unittest.cc",
        "allocator/partition_allocator/src/partition_alloc/starscan/scan_loop_unittest.cc",
        "allocator/partition_allocator/src/partition_alloc/starscan/state_bitmap_unittest.cc",
      ]
    }

    if ((is_android || is_linux) && target_cpu == "arm64") {
      cflags = [
        "-Xclang",
        "-target-feature",
        "-Xclang",
        "+mte",
      ]
    }

    if (is_android) {
      sources += [
        "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/files/file_path_pa_unittest.cc",
        "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/native_library_pa_unittest.cc",
      ]
    } else if (is_fuchsia) {
      sources += [ "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/fuchsia/fuchsia_logging_pa_unittest.cc" ]
    }

    if (enable_pkeys && is_debug && !is_component_build) {
      # This test requires RELRO, which is not enabled in component builds.
      # Also, require a debug build, since we only disable stack protectors in
      # debug builds in PartitionAlloc (see below why it's needed).
      sources += [ "allocator/partition_allocator/src/partition_alloc/thread_isolation/pkey_unittest.cc" ]

      # We want to test the pkey code without access to memory that is not
      # pkey-tagged. This will allow us to catch unintended memory accesses
      # that could break our security assumptions. The stack protector reads a
      # value from the TLS which won't be pkey-tagged, hence disabling it for
      # the test.
      configs += [ ":no_stack_protector" ]
    }

    deps += [ ":partition_alloc_test_support" ]
  }

  if (is_mac) {
    sources += [ "message_loop/message_pump_kqueue_unittest.cc" ]
    frameworks = [
      "CoreFoundation.framework",
      "Foundation.framework",
      "OpenCL.framework",
    ]
    if (current_cpu == "x64") {
      deps += [ ":base_profiler_test_support_library" ]
    }
  }

  if (is_fuchsia || is_linux || is_chromeos) {
    sources += [
      "debug/elf_reader_unittest.cc",
      "debug/test_elf_image_builder.cc",
      "debug/test_elf_image_builder.h",
    ]

    deps += [ "//base/test:malloc_wrapper" ]
    defines += [
      # This library is used by ElfReaderTest to test reading elf files.
      "MALLOC_WRAPPER_LIB=\"${shlib_prefix}malloc_wrapper${shlib_extension}\"",
    ]

    if (!is_component_build) {
      # Set rpath to find libmalloc_wrapper.so even in a non-component build.
      configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
    }
  }

  if (is_chromeos_lacros) {
    sources += [ "i18n/icu_mergeable_data_file_unittest.cc" ]
  }

  if (is_linux || is_chromeos_lacros) {
    sources += [
      "linux_util_unittest.cc",
      "nix/xdg_util_unittest.cc",
    ]
  }

  if (!use_glib) {
    sources -= [ "message_loop/message_pump_glib_unittest.cc" ]
  }

  if (use_libevent) {
    sources += [ "message_loop/message_pump_libevent_unittest.cc" ]
    deps += [
      ":message_pump_buildflags",
      "//third_party/libevent",
    ]
  }

  if (is_fuchsia) {
    sources += [
      "files/dir_reader_posix_unittest.cc",
      "files/file_descriptor_watcher_posix_unittest.cc",
      "fuchsia/fidl_event_handler_unittest.cc",
      "fuchsia/file_utils_unittest.cc",
      "fuchsia/filtered_service_directory_unittest.cc",
      "fuchsia/fuchsia_logging_unittest.cc",
      "fuchsia/intl_profile_watcher_unittest.cc",
      "fuchsia/mem_buffer_util_unittest.cc",
      "fuchsia/scoped_natural_service_binding_unittest.cc",
      "fuchsia/scoped_natural_service_publisher_unittest.cc",
      "fuchsia/scoped_service_binding_unittest.cc",
      "fuchsia/scoped_service_publisher_unittest.cc",
      "fuchsia/system_build_info_unittest.cc",
      "fuchsia/system_product_info_unittest.cc",
      "fuchsia/test_component_context_for_process_unittest.cc",
      "fuchsia/time_zone_data_unittest.cc",
      "message_loop/fd_watch_controller_posix_unittest.cc",
      "posix/file_descriptor_shuffle_unittest.cc",
    ]

    deps += [
      ":test_interface_impl",
      ":test_interface_natural_impl",
      ":test_log_listener_safe",
      "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.buildinfo:fuchsia.buildinfo_cpp",
      "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.buildinfo:fuchsia.buildinfo_hlcpp",
      "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.hwinfo:fuchsia.hwinfo_cpp",
      "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.intl:fuchsia.intl_hlcpp",
      "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.logger:fuchsia.logger_cpp",
      "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.mem:fuchsia.mem_hlcpp",
      "//third_party/fuchsia-sdk/sdk/pkg/async",
      "//third_party/fuchsia-sdk/sdk/pkg/async-default",
      "//third_party/fuchsia-sdk/sdk/pkg/component_incoming_cpp",
      "//third_party/fuchsia-sdk/sdk/pkg/fdio",
      "//third_party/fuchsia-sdk/sdk/pkg/sys_cpp",
    ]

    additional_manifest_fragments = [
      "//build/config/fuchsia/test/logger.shard.test-cml",

      # Required by PartitionAllocPageAllocatorTest tests with exec capability.
      "//build/config/fuchsia/test/mark_vmo_executable.shard.test-cml",
    ]
  }

  if (!is_fuchsia && !is_ios) {
    sources += [ "files/file_locking_unittest.cc" ]
  }

  if (is_android) {
    deps += [ "//testing/android/native_test:native_test_native_code" ]
    sources += [
      "debug/elf_reader_unittest.cc",
      "debug/proc_maps_linux_unittest.cc",
      "debug/test_elf_image_builder.cc",
      "debug/test_elf_image_builder.h",
    ]
  }

  if (is_win) {
    deps += [ "//base:scoped_handle_test_dll" ]
    if (current_cpu == "x64" || current_cpu == "arm64") {
      sources += [ "profiler/win32_stack_frame_unwinder_unittest.cc" ]
      deps += [ ":base_profiler_test_support_library" ]
    }

    # These tests are not built by default because they make heavy use of
    # parameterized tests. Even when disabled, they incur a startup penalty on
    # base_unittests. See comments in the file as for why they are disabled by
    # default, and https://crbug.com/1475518 for one consequence of the process
    # startup penalty.
    # sources += [ "files/os_validation_win_unittest.cc" ]

    if (toolchain_has_rust && win_enable_cfg_guards) {
      deps += [ ":rust_cfg_win_test" ]
    }
  }
  if (is_apple) {
    sources += [ "profiler/frame_pointer_unwinder_unittest.cc" ]
  }
  if (is_chromeos && (current_cpu == "x64" || current_cpu == "arm64")) {
    sources += [ "profiler/frame_pointer_unwinder_unittest.cc" ]
    deps += [ ":base_profiler_test_support_library" ]
  }

  if (use_allocator_shim) {
    sources += [
      "allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_unittest.cc",
      "sampling_heap_profiler/poisson_allocation_sampler_unittest.cc",
      "sampling_heap_profiler/sampling_heap_profiler_unittest.cc",
    ]

    if (is_win) {
      sources += [ "allocator/partition_allocator/src/partition_alloc/shim/winheap_stubs_win_unittest.cc" ]
    }

    sources += [
      "allocator/partition_alloc_support_unittest.cc",
      "allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc_unittest.cc",
    ]
  }

  if (enable_base_tracing) {
    sources += [
      "test/trace_event_analyzer_unittest.cc",
      "trace_event/memory_allocator_dump_unittest.cc",
      "trace_event/memory_dump_manager_unittest.cc",
      "trace_event/memory_dump_scheduler_unittest.cc",
      "trace_event/memory_infra_background_allowlist_unittest.cc",
      "trace_event/memory_usage_estimator_unittest.cc",
      "trace_event/process_memory_dump_unittest.cc",
      "trace_event/trace_arguments_unittest.cc",
      "trace_event/trace_category_unittest.cc",
      "trace_event/trace_config_unittest.cc",
      "trace_event/trace_event_unittest.cc",
      "trace_event/traced_value_support_unittest.cc",
      "trace_event/traced_value_unittest.cc",
      "trace_event/typed_macros_unittest.cc",
      "tracing/perfetto_task_runner_unittest.cc",
    ]

    if (is_android) {
      sources += [
        "trace_event/cpufreq_monitor_android_unittest.cc",
        "trace_event/java_heap_dump_provider_android_unittest.cc",
      ]
    }

    deps += [
      "//third_party/perfetto/include/perfetto/trace_processor:storage",
      "//third_party/perfetto/protos/perfetto/trace:lite",
      "//third_party/perfetto/protos/perfetto/trace/interned_data:lite",
      "//third_party/perfetto/protos/perfetto/trace/track_event:lite",
    ]
  }

  if (enable_nocompile_tests) {
    deps += [ ":base_nocompile_tests" ]
  }
}

# Test that CFG is enabled in Rust code.
if (is_win && toolchain_has_rust) {
  source_set("rust_cfg_win_test") {
    testonly = true
    deps = [
      ":base",
      "//testing/gtest",
    ]
    data_deps = [ "//build/rust/tests/test_control_flow_guard" ]
    sources = [ "memory/rust_cfg_win_unittest.cc" ]
  }
}

action("build_date") {
  script = "write_build_date_header.py"

  outputs = [ "$target_gen_dir/generated_build_date.h" ]

  args = [
    rebase_path("$target_gen_dir/generated_build_date.h", root_build_dir),
    build_timestamp,
  ]
}

if (enable_nocompile_tests) {
  nocompile_source_set("base_nocompile_tests") {
    sources = [
      "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations_pa_nocompile.nc",
      "allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_nocompile.nc",
      "allocator/partition_allocator/src/partition_alloc/pointers/raw_ref_nocompile.nc",
      "callback_list_nocompile.nc",
      "containers/buffer_iterator_nocompile.nc",
      "containers/checked_iterators_nocompile.nc",
      "containers/contains_nocompile.nc",
      "containers/enum_set_nocompile.nc",
      "containers/fixed_flat_map_nocompile.nc",
      "containers/fixed_flat_set_nocompile.nc",
      "containers/heap_array_nocompile.nc",
      "containers/span_nocompile.nc",
      "containers/to_value_list_nocompile.nc",
      "containers/to_vector_nocompile.nc",
      "debug/crash_logging_nocompile.nc",
      "functional/bind_nocompile.nc",
      "functional/callback_nocompile.nc",
      "functional/function_ref_nocompile.nc",
      "functional/overloaded_nocompile.nc",
      "logging_nocompile.nc",
      "memory/ref_counted_nocompile.nc",
      "memory/weak_ptr_nocompile.nc",
      "metrics/field_trial_params_nocompile.nc",
      "metrics/histogram_nocompile.nc",
      "no_destructor_nocompile.nc",
      "observer_list_nocompile.nc",
      "sequence_checker_nocompile.nc",
      "strings/cstring_view_nocompile.nc",
      "strings/string_piece_nocompile.nc",
      "strings/stringprintf_nocompile.nc",
      "task/bind_post_task_nocompile.nc",
      "task/task_traits_nocompile.nc",
      "test/bind_test_nocompile.nc",
      "thread_annotations_nocompile.nc",
      "traits_bag_nocompile.nc",
      "types/pass_key_nocompile.nc",
      "types/variant_util_nocompile.nc",
      "unsafe_buffers_nocompile.nc",
      "values_nocompile.nc",
    ]
    deps = [
      ":base",
      "//build/config/clang:unsafe_buffers_buildflags",
    ]
  }
}

if (is_android || is_robolectric) {
  # This is a subset of the main "base_jni", used in the robolectric toolchain.
  # While it would be nice to just make 2 unique generate_jnis, we can't because
  # we will have 2 GEN_JNI classes in one compilation unit. This is fixable, see
  # crbug.com/330173100.
  generate_jni("base_robolectric_jni") {
    sources = [
      "android/java/src/org/chromium/base/Callback.java",
      "android/java/src/org/chromium/base/CommandLine.java",
      "android/java/src/org/chromium/base/JNIUtils.java",
      "android/java/src/org/chromium/base/JavaExceptionReporter.java",
      "android/java/src/org/chromium/base/JniAndroid.java",
      "android/java/src/org/chromium/base/Token.java",
      "android/java/src/org/chromium/base/TraceEvent.java",
      "android/java/src/org/chromium/base/library_loader/LibraryLoader.java",
      "android/java/src/org/chromium/base/metrics/NativeUmaRecorder.java",
    ]
    public_deps = [ ":android_runtime_jni_headers" ]
  }

  generate_jni("base_jni") {
    sources = [
      "android/java/src/org/chromium/base/ApkAssets.java",
      "android/java/src/org/chromium/base/ApplicationStatus.java",
      "android/java/src/org/chromium/base/BuildInfo.java",
      "android/java/src/org/chromium/base/BundleUtils.java",
      "android/java/src/org/chromium/base/Callback.java",
      "android/java/src/org/chromium/base/CommandLine.java",
      "android/java/src/org/chromium/base/ContentUriUtils.java",
      "android/java/src/org/chromium/base/CpuFeatures.java",
      "android/java/src/org/chromium/base/EarlyTraceEvent.java",
      "android/java/src/org/chromium/base/EventLog.java",
      "android/java/src/org/chromium/base/FeatureList.java",
      "android/java/src/org/chromium/base/FeatureMap.java",
      "android/java/src/org/chromium/base/Features.java",
      "android/java/src/org/chromium/base/FieldTrialList.java",
      "android/java/src/org/chromium/base/FileUtils.java",
      "android/java/src/org/chromium/base/ImportantFileWriterAndroid.java",
      "android/java/src/org/chromium/base/InputHintChecker.java",
      "android/java/src/org/chromium/base/IntStringCallback.java",
      "android/java/src/org/chromium/base/JNIUtils.java",
      "android/java/src/org/chromium/base/JavaExceptionReporter.java",
      "android/java/src/org/chromium/base/JavaHandlerThread.java",
      "android/java/src/org/chromium/base/JniAndroid.java",
      "android/java/src/org/chromium/base/LocaleUtils.java",
      "android/java/src/org/chromium/base/MemoryPressureListener.java",
      "android/java/src/org/chromium/base/PathService.java",
      "android/java/src/org/chromium/base/PathUtils.java",
      "android/java/src/org/chromium/base/PowerMonitor.java",
      "android/java/src/org/chromium/base/RadioUtils.java",
      "android/java/src/org/chromium/base/SysUtils.java",
      "android/java/src/org/chromium/base/ThreadUtils.java",
      "android/java/src/org/chromium/base/TimezoneUtils.java",
      "android/java/src/org/chromium/base/Token.java",
      "android/java/src/org/chromium/base/TraceEvent.java",
      "android/java/src/org/chromium/base/UnguessableToken.java",
      "android/java/src/org/chromium/base/jank_tracker/JankMetricUMARecorder.java",
      "android/java/src/org/chromium/base/library_loader/LibraryLoader.java",
      "android/java/src/org/chromium/base/library_loader/LibraryPrefetcher.java",
      "android/java/src/org/chromium/base/memory/JavaHeapDumpGenerator.java",
      "android/java/src/org/chromium/base/memory/MemoryInfoBridge.java",
      "android/java/src/org/chromium/base/memory/MemoryPurgeManager.java",
      "android/java/src/org/chromium/base/metrics/NativeUmaRecorder.java",
      "android/java/src/org/chromium/base/metrics/StatisticsRecorderAndroid.java",
      "android/java/src/org/chromium/base/task/PostTask.java",
      "android/java/src/org/chromium/base/task/TaskRunnerImpl.java",
    ]

    if (use_clang_profiling) {
      sources += [
        "test/android/javatests/src/org/chromium/base/test/ClangProfiler.java",
      ]
    }

    public_deps = [ ":android_runtime_jni_headers" ]
  }

  generate_jar_jni("android_runtime_jni_headers") {
    classes = [
      "java/lang/Runnable.class",
      "java/lang/Runtime.class",
      "java/lang/Throwable.class",
    ]
  }

  generate_jni("process_launcher_jni") {
    sources = [ "android/java/src/org/chromium/base/process_launcher/ChildProcessService.java" ]
  }

  generate_jni("base_shared_preferences_jni") {
    sources = [ "android/java/src/org/chromium/base/shared_preferences/SharedPreferencesManager.java" ]
  }

  shared_library_with_jni("libbase_junit_tests") {
    testonly = true
    enable_target = is_robolectric
    sources = [ "android/robolectric_jni_onload.cc" ]
    deps = [ ":base($robolectric_toolchain)" ]
    java_targets = [ ":base_junit_tests" ]
    visibility = [ ":*" ]

    # Make jni.h available.
    configs += [ "//third_party/jdk" ]
  }
}  # is_android || is_robolectric

if (is_android) {
  java_cpp_features("java_features_srcjar") {
    # External code should depend on ":base_java" instead.
    visibility = [ ":*" ]
    sources = [
      "allocator/partition_alloc_features.cc",
      "features.cc",
      "task/task_features.cc",
    ]
    template = "android/java/src/org/chromium/base/BaseFeatures.java.tmpl"
  }

  java_cpp_strings("java_switches_srcjar") {
    # External code should depend on ":base_java" instead.
    visibility = [ ":*" ]
    sources = [ "base_switches.cc" ]
    template = "android/java/src/org/chromium/base/BaseSwitches.java.tmpl"
  }

  android_library("process_launcher_java") {
    srcjar_deps = [
      ":process_launcher_aidl",
      ":process_launcher_jni",
    ]
    deps = [
      ":base_java",
      "//build/android:build_java",
      "//third_party/android_deps:com_google_code_findbugs_jsr305_java",
      "//third_party/androidx:androidx_annotation_annotation_experimental_java",
      "//third_party/androidx:androidx_annotation_annotation_java",
      "//third_party/androidx:androidx_collection_collection_java",
      "//third_party/androidx:androidx_core_core_java",
      "//third_party/jni_zero:jni_zero_java",
    ]
    sources = [
      "android/java/src/org/chromium/base/process_launcher/BindService.java",
      "android/java/src/org/chromium/base/process_launcher/ChildConnectionAllocator.java",
      "android/java/src/org/chromium/base/process_launcher/ChildProcessConnection.java",
      "android/java/src/org/chromium/base/process_launcher/ChildProcessConstants.java",
      "android/java/src/org/chromium/base/process_launcher/ChildProcessLauncher.java",
      "android/java/src/org/chromium/base/process_launcher/ChildProcessService.java",
      "android/java/src/org/chromium/base/process_launcher/ChildProcessServiceDelegate.java",
      "android/java/src/org/chromium/base/process_launcher/ChildServiceConnection.java",
      "android/java/src/org/chromium/base/process_launcher/ChildServiceConnectionDelegate.java",
      "android/java/src/org/chromium/base/process_launcher/ChildServiceConnectionFactory.java",
      "android/java/src/org/chromium/base/process_launcher/ChildServiceConnectionImpl.java",
      "android/java/src/org/chromium/base/process_launcher/FileDescriptorInfo.java",
    ]
  }

  android_library("base_java") {
    srcjar_deps = [
      ":base_android_java_enums_srcjar",
      ":base_jni",
      ":java_features_srcjar",
      ":java_switches_srcjar",
    ]

    deps = [
      "//build/android:build_java",
      "//third_party/android_deps:com_google_code_findbugs_jsr305_java",
      "//third_party/android_deps:com_google_errorprone_error_prone_annotations_java",
      "//third_party/androidx:androidx_annotation_annotation_experimental_java",
      "//third_party/androidx:androidx_annotation_annotation_java",
      "//third_party/jni_zero:jni_zero_java",
    ]

    sources = [
      "android/java/src/org/chromium/base/ActivityState.java",
      "android/java/src/org/chromium/base/ApiCompatibilityUtils.java",
      "android/java/src/org/chromium/base/ApkAssets.java",
      "android/java/src/org/chromium/base/ApplicationStatus.java",
      "android/java/src/org/chromium/base/BuildInfo.java",
      "android/java/src/org/chromium/base/BundleUtils.java",
      "android/java/src/org/chromium/base/Callback.java",
      "android/java/src/org/chromium/base/CallbackController.java",
      "android/java/src/org/chromium/base/CollectionUtil.java",
      "android/java/src/org/chromium/base/CommandLine.java",
      "android/java/src/org/chromium/base/CommandLineInitUtil.java",
      "android/java/src/org/chromium/base/ContentUriUtils.java",
      "android/java/src/org/chromium/base/ContextUtils.java",
      "android/java/src/org/chromium/base/CpuFeatures.java",
      "android/java/src/org/chromium/base/DiscardableReferencePool.java",
      "android/java/src/org/chromium/base/EarlyTraceEvent.java",
      "android/java/src/org/chromium/base/EventLog.java",
      "android/java/src/org/chromium/base/FeatureList.java",
      "android/java/src/org/chromium/base/FeatureMap.java",
      "android/java/src/org/chromium/base/FeatureParam.java",
      "android/java/src/org/chromium/base/Features.java",
      "android/java/src/org/chromium/base/FieldTrialList.java",
      "android/java/src/org/chromium/base/FileUtils.java",
      "android/java/src/org/chromium/base/Flag.java",
      "android/java/src/org/chromium/base/ImportantFileWriterAndroid.java",
      "android/java/src/org/chromium/base/InputHintChecker.java",
      "android/java/src/org/chromium/base/IntStringCallback.java",
      "android/java/src/org/chromium/base/IntentUtils.java",
      "android/java/src/org/chromium/base/JNIUtils.java",
      "android/java/src/org/chromium/base/JavaExceptionReporter.java",
      "android/java/src/org/chromium/base/JavaHandlerThread.java",
      "android/java/src/org/chromium/base/JniAndroid.java",
      "android/java/src/org/chromium/base/LifetimeAssert.java",
      "android/java/src/org/chromium/base/LocaleUtils.java",
      "android/java/src/org/chromium/base/Log.java",
      "android/java/src/org/chromium/base/MathUtils.java",
      "android/java/src/org/chromium/base/MemoryPressureListener.java",
      "android/java/src/org/chromium/base/MutableBooleanParamWithSafeDefault.java",
      "android/java/src/org/chromium/base/MutableFlagWithSafeDefault.java",
      "android/java/src/org/chromium/base/MutableParamWithSafeDefault.java",
      "android/java/src/org/chromium/base/ObserverList.java",
      "android/java/src/org/chromium/base/PackageManagerUtils.java",
      "android/java/src/org/chromium/base/PackageUtils.java",
      "android/java/src/org/chromium/base/PathService.java",
      "android/java/src/org/chromium/base/PathUtils.java",
      "android/java/src/org/chromium/base/PiiElider.java",
      "android/java/src/org/chromium/base/PowerMonitor.java",
      "android/java/src/org/chromium/base/PowerMonitorForQ.java",
      "android/java/src/org/chromium/base/Promise.java",
      "android/java/src/org/chromium/base/RadioUtils.java",
      "android/java/src/org/chromium/base/RequiredCallback.java",
      "android/java/src/org/chromium/base/ResettersForTesting.java",
      "android/java/src/org/chromium/base/StreamUtil.java",
      "android/java/src/org/chromium/base/StrictModeContext.java",
      "android/java/src/org/chromium/base/SysUtils.java",
      "android/java/src/org/chromium/base/ThreadUtils.java",
      "android/java/src/org/chromium/base/TimeUtils.java",
      "android/java/src/org/chromium/base/TimezoneUtils.java",
      "android/java/src/org/chromium/base/Token.java",
      "android/java/src/org/chromium/base/TraceEvent.java",
      "android/java/src/org/chromium/base/UnguessableToken.java",
      "android/java/src/org/chromium/base/UnownedUserData.java",
      "android/java/src/org/chromium/base/UnownedUserDataHost.java",
      "android/java/src/org/chromium/base/UnownedUserDataKey.java",
      "android/java/src/org/chromium/base/UserData.java",
      "android/java/src/org/chromium/base/UserDataHost.java",
      "android/java/src/org/chromium/base/ValueChangedCallback.java",
      "android/java/src/org/chromium/base/WrappedClassLoader.java",
      "android/java/src/org/chromium/base/compat/ApiHelperForM.java",
      "android/java/src/org/chromium/base/compat/ApiHelperForN.java",
      "android/java/src/org/chromium/base/compat/ApiHelperForO.java",
      "android/java/src/org/chromium/base/compat/ApiHelperForOMR1.java",
      "android/java/src/org/chromium/base/compat/ApiHelperForP.java",
      "android/java/src/org/chromium/base/compat/ApiHelperForQ.java",
      "android/java/src/org/chromium/base/compat/ApiHelperForR.java",
      "android/java/src/org/chromium/base/compat/ApiHelperForS.java",
      "android/java/src/org/chromium/base/jank_tracker/FrameMetricsListener.java",
      "android/java/src/org/chromium/base/jank_tracker/FrameMetricsStore.java",
      "android/java/src/org/chromium/base/jank_tracker/JankActivityTracker.java",
      "android/java/src/org/chromium/base/jank_tracker/JankEndScenarioTime.java",
      "android/java/src/org/chromium/base/jank_tracker/JankMetricUMARecorder.java",
      "android/java/src/org/chromium/base/jank_tracker/JankMetrics.java",
      "android/java/src/org/chromium/base/jank_tracker/JankReportingRunnable.java",
      "android/java/src/org/chromium/base/jank_tracker/JankReportingScheduler.java",
      "android/java/src/org/chromium/base/jank_tracker/JankScenario.java",
      "android/java/src/org/chromium/base/jank_tracker/JankTracker.java",
      "android/java/src/org/chromium/base/jank_tracker/JankTrackerImpl.java",
      "android/java/src/org/chromium/base/jank_tracker/JankTrackerStateController.java",
      "android/java/src/org/chromium/base/jank_tracker/PlaceholderJankTracker.java",
      "android/java/src/org/chromium/base/library_loader/LibraryLoader.java",
      "android/java/src/org/chromium/base/library_loader/LibraryPrefetcher.java",
      "android/java/src/org/chromium/base/library_loader/Linker.java",
      "android/java/src/org/chromium/base/library_loader/LinkerJni.java",
      "android/java/src/org/chromium/base/library_loader/LoaderErrors.java",
      "android/java/src/org/chromium/base/library_loader/NativeLibraryPreloader.java",
      "android/java/src/org/chromium/base/library_loader/ProcessInitException.java",
      "android/java/src/org/chromium/base/lifetime/DestroyChecker.java",
      "android/java/src/org/chromium/base/lifetime/Destroyable.java",
      "android/java/src/org/chromium/base/memory/JavaHeapDumpGenerator.java",
      "android/java/src/org/chromium/base/memory/MemoryInfoBridge.java",
      "android/java/src/org/chromium/base/memory/MemoryPressureCallback.java",
      "android/java/src/org/chromium/base/memory/MemoryPressureMonitor.java",
      "android/java/src/org/chromium/base/memory/MemoryPressureUma.java",
      "android/java/src/org/chromium/base/memory/MemoryPurgeManager.java",
      "android/java/src/org/chromium/base/metrics/CachingUmaRecorder.java",
      "android/java/src/org/chromium/base/metrics/HistogramBucket.java",
      "android/java/src/org/chromium/base/metrics/NativeUmaRecorder.java",
      "android/java/src/org/chromium/base/metrics/NoopUmaRecorder.java",
      "android/java/src/org/chromium/base/metrics/RecordHistogram.java",
      "android/java/src/org/chromium/base/metrics/RecordUserAction.java",
      "android/java/src/org/chromium/base/metrics/ScopedSysTraceEvent.java",
      "android/java/src/org/chromium/base/metrics/StatisticsRecorderAndroid.java",
      "android/java/src/org/chromium/base/metrics/TimingMetric.java",
      "android/java/src/org/chromium/base/metrics/UmaRecorder.java",
      "android/java/src/org/chromium/base/metrics/UmaRecorderHolder.java",
      "android/java/src/org/chromium/base/supplier/DestroyableObservableSupplier.java",
      "android/java/src/org/chromium/base/supplier/LazyOneshotSupplier.java",
      "android/java/src/org/chromium/base/supplier/LazyOneshotSupplierImpl.java",
      "android/java/src/org/chromium/base/supplier/ObservableSupplier.java",
      "android/java/src/org/chromium/base/supplier/ObservableSupplierImpl.java",
      "android/java/src/org/chromium/base/supplier/OneShotCallback.java",
      "android/java/src/org/chromium/base/supplier/OneshotSupplier.java",
      "android/java/src/org/chromium/base/supplier/OneshotSupplierImpl.java",
      "android/java/src/org/chromium/base/supplier/Supplier.java",
      "android/java/src/org/chromium/base/supplier/SupplierUtils.java",
      "android/java/src/org/chromium/base/supplier/SyncOneshotSupplier.java",
      "android/java/src/org/chromium/base/supplier/SyncOneshotSupplierImpl.java",
      "android/java/src/org/chromium/base/supplier/TransitiveObservableSupplier.java",
      "android/java/src/org/chromium/base/supplier/UnownedUserDataSupplier.java",
      "android/java/src/org/chromium/base/supplier/UnwrapObservableSupplier.java",
      "android/java/src/org/chromium/base/task/AsyncTask.java",
      "android/java/src/org/chromium/base/task/BackgroundOnlyAsyncTask.java",
      "android/java/src/org/chromium/base/task/ChainedTasks.java",
      "android/java/src/org/chromium/base/task/ChromeThreadPoolExecutor.java",
      "android/java/src/org/chromium/base/task/PostTask.java",
      "android/java/src/org/chromium/base/task/SequencedTaskRunner.java",
      "android/java/src/org/chromium/base/task/SequencedTaskRunnerImpl.java",
      "android/java/src/org/chromium/base/task/SerialExecutor.java",
      "android/java/src/org/chromium/base/task/SingleThreadTaskRunner.java",
      "android/java/src/org/chromium/base/task/SingleThreadTaskRunnerImpl.java",
      "android/java/src/org/chromium/base/task/TaskExecutor.java",
      "android/java/src/org/chromium/base/task/TaskRunner.java",
      "android/java/src/org/chromium/base/task/TaskRunnerImpl.java",
      "android/java/src/org/chromium/base/task/ThreadPoolTaskExecutor.java",
      "android/java/src/org/chromium/base/task/UiThreadTaskExecutor.java",
    ]

    if (use_clang_profiling) {
      sources += [
        "test/android/javatests/src/org/chromium/base/test/ClangProfiler.java",
      ]
    } else {
      sources += [ "test/android/javatests/src/stub/org/chromium/base/test/ClangProfiler.java" ]
    }

    resources_package = "org.chromium.base"

    proguard_configs = [ "android/proguard/chromium_code.flags" ]
    if (!is_cronet_build) {
      proguard_configs += [
        "android/proguard/chromium_apk.flags",
        "android/proguard/remove_logging.flags",
      ]
    }
  }

  android_library("base_shared_preferences_java") {
    deps = [
      ":base_java",
      "//build/android:build_java",
      "//third_party/android_deps:guava_android_java",
      "//third_party/androidx:androidx_annotation_annotation_java",
      "//third_party/jni_zero:jni_zero_java",
    ]

    sources = [
      "android/java/src/org/chromium/base/shared_preferences/KeyPrefix.java",
      "android/java/src/org/chromium/base/shared_preferences/KnownPreferenceKeyRegistries.java",
      "android/java/src/org/chromium/base/shared_preferences/NoOpPreferenceKeyChecker.java",
      "android/java/src/org/chromium/base/shared_preferences/PreferenceKeyChecker.java",
      "android/java/src/org/chromium/base/shared_preferences/PreferenceKeyRegistry.java",
      "android/java/src/org/chromium/base/shared_preferences/SharedPreferencesManager.java",
      "android/java/src/org/chromium/base/shared_preferences/StrictPreferenceKeyChecker.java",
    ]
  }

  android_library("base_cached_flags_java") {
    deps = [
      ":base_java",
      ":base_shared_preferences_java",
      "//base/version_info/android:version_constants_java",
      "//build/android:build_java",
      "//third_party/androidx:androidx_annotation_annotation_java",
    ]

    sources = [
      "android/java/src/org/chromium/base/cached_flags/AllCachedFieldTrialParameters.java",
      "android/java/src/org/chromium/base/cached_flags/BooleanCachedFieldTrialParameter.java",
      "android/java/src/org/chromium/base/cached_flags/CachedFieldTrialParameter.java",
      "android/java/src/org/chromium/base/cached_flags/CachedFlag.java",
      "android/java/src/org/chromium/base/cached_flags/CachedFlagUtils.java",
      "android/java/src/org/chromium/base/cached_flags/CachedFlagsSafeMode.java",
      "android/java/src/org/chromium/base/cached_flags/CachedFlagsSharedPreferences.java",
      "android/java/src/org/chromium/base/cached_flags/DoubleCachedFieldTrialParameter.java",
      "android/java/src/org/chromium/base/cached_flags/IntCachedFieldTrialParameter.java",
      "android/java/src/org/chromium/base/cached_flags/PostNativeFlag.java",
      "android/java/src/org/chromium/base/cached_flags/StringCachedFieldTrialParameter.java",
      "android/java/src/org/chromium/base/cached_flags/ValuesOverridden.java",
      "android/java/src/org/chromium/base/cached_flags/ValuesReturned.java",
    ]
  }

  android_aidl("process_launcher_aidl") {
    import_include = [ "android/java/src" ]
    sources = [
      "android/java/src/org/chromium/base/process_launcher/IChildProcessService.aidl",
      "android/java/src/org/chromium/base/process_launcher/IParentProcess.aidl",
    ]
  }

  android_library("base_javatests") {
    testonly = true

    deps = [
      ":base_java",
      ":base_java_test_support",
      ":base_java_test_support_uncommon",
      "//base/test:test_support_java",
      "//build/android:build_java",
      "//third_party/androidx:androidx_annotation_annotation_java",
      "//third_party/androidx:androidx_test_monitor_java",
      "//third_party/androidx:androidx_test_rules_java",
      "//third_party/androidx:androidx_test_runner_java",
      "//third_party/hamcrest:hamcrest_java",
      "//third_party/jni_zero:jni_zero_java",
      "//third_party/junit:junit",
      "//third_party/mockito:mockito_java",
    ]

    sources = [
      # AssertsTest doesn't really belong in //base but it's preferable to
      # stick it here than create another target for a single test.
      "android/javatests/src/org/chromium/base/AdvancedMockContextTest.java",
      "android/javatests/src/org/chromium/base/AssertsTest.java",
      "android/javatests/src/org/chromium/base/CommandLineFlagsTest.java",
      "android/javatests/src/org/chromium/base/CommandLineTest.java",
      "android/javatests/src/org/chromium/base/EarlyTraceEventTest.java",
      "android/javatests/src/org/chromium/base/IntentUtilsTest.java",
      "android/javatests/src/org/chromium/base/LocaleUtilsTest.java",
      "android/javatests/src/org/chromium/base/ObserverListTest.java",
      "android/javatests/src/org/chromium/base/PackageUtilsTest.java",
      "android/javatests/src/org/chromium/base/StrictModeContextTest.java",
      "android/javatests/src/org/chromium/base/UserDataHostTest.java",
      "android/javatests/src/org/chromium/base/jank_tracker/JankTrackerTest.java",
      "android/javatests/src/org/chromium/base/library_loader/EarlyNativeTest.java",
      "android/javatests/src/org/chromium/base/metrics/RecordHistogramTest.java",
      "android/javatests/src/org/chromium/base/task/AsyncTaskTest.java",
      "android/javatests/src/org/chromium/base/task/PostTaskTest.java",
      "android/javatests/src/org/chromium/base/task/SequencedTaskRunnerImplTest.java",
      "android/javatests/src/org/chromium/base/task/SingleThreadTaskRunnerImplTest.java",
      "android/javatests/src/org/chromium/base/task/TaskRunnerImplTest.java",
      "android/javatests/src/org/chromium/base/test/metrics/HistogramWatcherTestBase.java",
      "android/javatests/src/org/chromium/base/test/metrics/HistogramWatcherTransitionToNativeTest.java",
      "android/javatests/src/org/chromium/base/test/metrics/HistogramWatcherWithNativeTest.java",
      "android/javatests/src/org/chromium/base/test/metrics/HistogramWatcherWithoutNativeTest.java",
      "android/javatests/src/org/chromium/base/util/GarbageCollectionTestUtilsTest.java",
    ]
    srcjar_deps = [ ":base_javatests_jni" ]
  }

  source_set("base_javatests_lib") {
    testonly = true
    deps = [
      ":base",
      ":base_javatests_jni",
    ]
    sources = [ "test/library_loader/early_native_test_helper.cc" ]
  }

  generate_jni("base_javatests_jni") {
    testonly = true
    sources = [ "android/javatests/src/org/chromium/base/library_loader/EarlyNativeTest.java" ]
  }

  android_library("base_java_url_utils_for_test") {
    testonly = true
    sources = [
      "test/android/javatests/src/org/chromium/base/test/util/UrlUtils.java",
    ]

    deps = [
      ":base_java",
      "//build/android:build_java",
      "//third_party/androidx:androidx_annotation_annotation_java",
      "//third_party/jni_zero:jni_zero_java",
      "//third_party/junit:junit",
    ]
  }

  android_library("base_java_test_support") {
    testonly = true

    deps = [
      ":base_cached_flags_java",
      ":base_java",
      "//build/android:build_java",
      "//testing/android/instrumentation:instrumentation_test_runner_java",
      "//third_party/accessibility_test_framework:accessibility_core_java",
      "//third_party/android_deps:com_google_code_findbugs_jsr305_java",
      "//third_party/android_deps:espresso_java",
      "//third_party/android_deps:guava_android_java",
      "//third_party/android_sdk:android_test_mock_java",
      "//third_party/androidx:androidx_annotation_annotation_java",
      "//third_party/androidx:androidx_core_core_java",
      "//third_party/androidx:androidx_multidex_multidex_java",
      "//third_party/androidx:androidx_test_monitor_java",
      "//third_party/androidx:androidx_test_runner_java",
      "//third_party/androidx:androidx_test_uiautomator_uiautomator_java",
      "//third_party/hamcrest:hamcrest_java",
      "//third_party/jni_zero:jni_zero_java",
      "//third_party/junit",
    ]

    public_deps = [ ":base_java_url_utils_for_test" ]

    sources = [
      "test/android/java/src/org/chromium/base/multidex/ChromiumMultiDexInstaller.java",
      "test/android/javatests/src/org/chromium/base/test/BaseActivityTestRule.java",
      "test/android/javatests/src/org/chromium/base/test/BaseChromiumAndroidJUnitRunner.java",
      "test/android/javatests/src/org/chromium/base/test/BaseJUnit4ClassRunner.java",
      "test/android/javatests/src/org/chromium/base/test/BaseJUnit4TestRule.java",
      "test/android/javatests/src/org/chromium/base/test/LoadNative.java",
      "test/android/javatests/src/org/chromium/base/test/MockitoErrorHandler.java",
      "test/android/javatests/src/org/chromium/base/test/ResetCachedFlagValuesTestHook.java",
      "test/android/javatests/src/org/chromium/base/test/ScreenshotOnFailureStatement.java",
      "test/android/javatests/src/org/chromium/base/test/TestTraceEvent.java",
      "test/android/javatests/src/org/chromium/base/test/UnitTestLifetimeAssertRule.java",
      "test/android/javatests/src/org/chromium/base/test/UnitTestNoBrowserProcessHook.java",
      "test/android/javatests/src/org/chromium/base/test/params/BaseJUnit4RunnerDelegate.java",
      "test/android/javatests/src/org/chromium/base/test/params/BlockJUnit4RunnerDelegate.java",
      "test/android/javatests/src/org/chromium/base/test/params/MethodParamAnnotationRule.java",
      "test/android/javatests/src/org/chromium/base/test/params/MethodParamRule.java",
      "test/android/javatests/src/org/chromium/base/test/params/ParameterAnnotations.java",
      "test/android/javatests/src/org/chromium/base/test/params/ParameterProvider.java",
      "test/android/javatests/src/org/chromium/base/test/params/ParameterSet.java",
      "test/android/javatests/src/org/chromium/base/test/params/ParameterizedCommandLineFlags.java",
      "test/android/javatests/src/org/chromium/base/test/params/ParameterizedFrameworkMethod.java",
      "test/android/javatests/src/org/chromium/base/test/params/ParameterizedRunner.java",
      "test/android/javatests/src/org/chromium/base/test/params/ParameterizedRunnerDelegate.java",
      "test/android/javatests/src/org/chromium/base/test/params/ParameterizedRunnerDelegateCommon.java",
      "test/android/javatests/src/org/chromium/base/test/params/ParameterizedRunnerDelegateFactory.java",
      "test/android/javatests/src/org/chromium/base/test/params/SkipCommandLineParameterization.java",
      "test/android/javatests/src/org/chromium/base/test/util/AdvancedMockContext.java",
      "test/android/javatests/src/org/chromium/base/test/util/AndroidSdkLevelSkipCheck.java",
      "test/android/javatests/src/org/chromium/base/test/util/AnnotationProcessingUtils.java",
      "test/android/javatests/src/org/chromium/base/test/util/AnnotationRule.java",
      "test/android/javatests/src/org/chromium/base/test/util/ApplicationContextWrapper.java",
      "test/android/javatests/src/org/chromium/base/test/util/ApplicationTestUtils.java",
      "test/android/javatests/src/org/chromium/base/test/util/Batch.java",
      "test/android/javatests/src/org/chromium/base/test/util/CallbackHelper.java",
      "test/android/javatests/src/org/chromium/base/test/util/CommandLineFlags.java",
      "test/android/javatests/src/org/chromium/base/test/util/Criteria.java",
      "test/android/javatests/src/org/chromium/base/test/util/CriteriaHelper.java",
      "test/android/javatests/src/org/chromium/base/test/util/CriteriaNotSatisfiedException.java",
      "test/android/javatests/src/org/chromium/base/test/util/DisableIf.java",
      "test/android/javatests/src/org/chromium/base/test/util/DisableIfSkipCheck.java",
      "test/android/javatests/src/org/chromium/base/test/util/DisabledTest.java",
      "test/android/javatests/src/org/chromium/base/test/util/DoNotBatch.java",
      "test/android/javatests/src/org/chromium/base/test/util/DoNotRevive.java",
      "test/android/javatests/src/org/chromium/base/test/util/DumpThreadsOnFailureRule.java",
      "test/android/javatests/src/org/chromium/base/test/util/EnormousTest.java",
      "test/android/javatests/src/org/chromium/base/test/util/EspressoIdleTimeoutRule.java",
      "test/android/javatests/src/org/chromium/base/test/util/Feature.java",
      "test/android/javatests/src/org/chromium/base/test/util/Features.java",
      "test/android/javatests/src/org/chromium/base/test/util/FieldTrials.java",
      "test/android/javatests/src/org/chromium/base/test/util/HistogramWatcher.java",
      "test/android/javatests/src/org/chromium/base/test/util/InMemorySharedPreferences.java",
      "test/android/javatests/src/org/chromium/base/test/util/InMemorySharedPreferencesContext.java",
      "test/android/javatests/src/org/chromium/base/test/util/IntegrationTest.java",
      "test/android/javatests/src/org/chromium/base/test/util/JniMocker.java",
      "test/android/javatests/src/org/chromium/base/test/util/LooperUtils.java",
      "test/android/javatests/src/org/chromium/base/test/util/Manual.java",
      "test/android/javatests/src/org/chromium/base/test/util/MaxAndroidSdkLevel.java",
      "test/android/javatests/src/org/chromium/base/test/util/MinAndroidSdkLevel.java",
      "test/android/javatests/src/org/chromium/base/test/util/PackageManagerWrapper.java",
      "test/android/javatests/src/org/chromium/base/test/util/PayloadCallbackHelper.java",
      "test/android/javatests/src/org/chromium/base/test/util/RequiresRestart.java",
      "test/android/javatests/src/org/chromium/base/test/util/Restriction.java",
      "test/android/javatests/src/org/chromium/base/test/util/RestrictionSkipCheck.java",
      "test/android/javatests/src/org/chromium/base/test/util/ScalableTimeout.java",
      "test/android/javatests/src/org/chromium/base/test/util/SkipCheck.java",
      "test/android/javatests/src/org/chromium/base/test/util/TestFileUtil.java",
      "test/android/javatests/src/org/chromium/base/test/util/TestThreadUtils.java",
      "test/android/javatests/src/org/chromium/base/test/util/TimeoutScale.java",
      "test/android/javatests/src/org/chromium/base/test/util/TimeoutTimer.java",
      "test/android/javatests/src/org/chromium/base/test/util/UserActionTester.java",
      "test/android/javatests/src/org/chromium/base/test/util/ViewActionOnDescendant.java",
      "test/android/javatests/src/org/chromium/base/test/util/ViewPrinter.java",
    ]
  }

  generate_jni("base_java_test_support_uncommon_jni") {
    testonly = true
    sources = [ "test/android/javatests/src/org/chromium/base/test/task/ThreadPoolTestHelpers.java" ]
  }

  android_library("base_java_test_support_uncommon") {
    testonly = true

    deps = [
      "//base:base_java",
      "//third_party/androidx:androidx_annotation_annotation_java",
      "//third_party/androidx:androidx_test_monitor_java",
      "//third_party/hamcrest:hamcrest_java",
      "//third_party/jni_zero:jni_zero_java",
      "//third_party/junit:junit",
    ]

    srcjar_deps = [ ":base_java_test_support_uncommon_jni" ]
    sources = [
      "test/android/javatests/src/org/chromium/base/FakeTimeTestRule.java",
      "test/android/javatests/src/org/chromium/base/test/BundleTestRule.java",
      "test/android/javatests/src/org/chromium/base/test/SetUpStatement.java",
      "test/android/javatests/src/org/chromium/base/test/SetUpTestRule.java",
      "test/android/javatests/src/org/chromium/base/test/task/SchedulerTestHelpers.java",
      "test/android/javatests/src/org/chromium/base/test/task/ThreadPoolTestHelpers.java",
      "test/android/javatests/src/org/chromium/base/test/util/CloseableOnMainThread.java",
      "test/android/javatests/src/org/chromium/base/test/util/InstrumentationUtils.java",
      "test/android/javatests/src/org/chromium/base/test/util/Matchers.java",
    ]
  }

  android_library("base_java_process_launcher_test_support") {
    testonly = true

    public_deps = [ ":process_launcher_java" ]

    sources = [ "test/android/javatests/src/org/chromium/base/process_launcher/TestChildProcessConnection.java" ]
  }

  robolectric_library("base_junit_test_support") {
    sources = [
      "//third_party/robolectric/custom_asynctask/java/src/org/chromium/base/task/test/ShadowAsyncTask.java",
      "//third_party/robolectric/custom_asynctask/java/src/org/chromium/base/task/test/ShadowAsyncTaskBridge.java",
      "test/android/junit/src/org/chromium/base/task/test/BackgroundShadowAsyncTask.java",
      "test/android/junit/src/org/chromium/base/task/test/CustomShadowAsyncTask.java",
      "test/android/junit/src/org/chromium/base/task/test/PausedExecutorTestRule.java",
      "test/android/junit/src/org/chromium/base/task/test/ShadowPostTask.java",
      "test/android/junit/src/org/chromium/base/test/BaseRobolectricAndroidConfigurer.java",
      "test/android/junit/src/org/chromium/base/test/BaseRobolectricTestListener.java",
      "test/android/junit/src/org/chromium/base/test/BaseRobolectricTestRule.java",
      "test/android/junit/src/org/chromium/base/test/BaseRobolectricTestRunner.java",
      "test/android/junit/src/org/chromium/base/test/ShadowBuildInfo.java",
      "test/android/junit/src/org/chromium/base/test/util/BaseFlagTestRule.java",
      "test/android/junit/src/org/chromium/base/test/util/TestRunnerTestRule.java",
    ]

    # Make sure robolectric tests have classes filtered out of base_java by
    # jar_excluded_patterns.
    srcjar_deps = [ "//build/android:native_libraries_gen" ]

    annotation_processor_deps =
        [ "//third_party/android_deps:auto_service_processor" ]
    deps = [
      ":base_java",
      ":base_java_test_support",
      "//base:base_cached_flags_java",
      "//testing/android/junit:junit_test_support",
      "//third_party/android_deps:com_google_auto_service_auto_service_annotations_java",
      "//third_party/androidx:androidx_test_core_java",
      "//third_party/androidx:androidx_test_monitor_java",
      "//third_party/hamcrest:hamcrest_java",
      "//third_party/junit:junit",
    ]
  }

  robolectric_binary("base_junit_tests") {
    shared_libraries = [ ":libbase_junit_tests($robolectric_toolchain)" ]
    sources = [
      "android/junit/src/org/chromium/base/ApplicationStatusTest.java",
      "android/junit/src/org/chromium/base/BuildInfoTest.java",
      "android/junit/src/org/chromium/base/CallbackControllerTest.java",
      "android/junit/src/org/chromium/base/CollectionUtilTest.java",
      "android/junit/src/org/chromium/base/CommandLineTest.java",
      "android/junit/src/org/chromium/base/DiscardableReferencePoolTest.java",
      "android/junit/src/org/chromium/base/FeatureListUnitTest.java",
      "android/junit/src/org/chromium/base/FileUtilsTest.java",
      "android/junit/src/org/chromium/base/FlagUnitTest.java",
      "android/junit/src/org/chromium/base/LifetimeAssertTest.java",
      "android/junit/src/org/chromium/base/LogTest.java",
      "android/junit/src/org/chromium/base/MathUtilsTest.java",
      "android/junit/src/org/chromium/base/MutableBooleanParamWithSafeDefaultUnitTest.java",
      "android/junit/src/org/chromium/base/MutableFlagWithSafeDefaultUnitTest.java",
      "android/junit/src/org/chromium/base/PathUtilsTest.java",
      "android/junit/src/org/chromium/base/PiiEliderTest.java",
      "android/junit/src/org/chromium/base/PostNativeFlagUnitTest.java",
      "android/junit/src/org/chromium/base/PromiseTest.java",
      "android/junit/src/org/chromium/base/ResettersForTestingTest.java",
      "android/junit/src/org/chromium/base/TimeUtilsTest.java",
      "android/junit/src/org/chromium/base/TokenUnitTest.java",
      "android/junit/src/org/chromium/base/TraceEventTest.java",
      "android/junit/src/org/chromium/base/UnownedUserDataHostTest.java",
      "android/junit/src/org/chromium/base/UnownedUserDataKeyTest.java",
      "android/junit/src/org/chromium/base/ValueChangedCallbackTest.java",
      "android/junit/src/org/chromium/base/cached_flags/CachedFeatureFlagsSafeModeUnitTest.java",
      "android/junit/src/org/chromium/base/cached_flags/CachedFieldTrialParameterUnitTest.java",
      "android/junit/src/org/chromium/base/cached_flags/CachedFlagUnitTest.java",
      "android/junit/src/org/chromium/base/jank_tracker/FrameMetricsListenerTest.java",
      "android/junit/src/org/chromium/base/jank_tracker/FrameMetricsStoreTest.java",
      "android/junit/src/org/chromium/base/jank_tracker/JankActivityTrackerTest.java",
      "android/junit/src/org/chromium/base/jank_tracker/JankMetricUMARecorderTest.java",
      "android/junit/src/org/chromium/base/jank_tracker/JankReportingRunnableTest.java",
      "android/junit/src/org/chromium/base/jank_tracker/JankReportingSchedulerTest.java",
      "android/junit/src/org/chromium/base/library_loader/LinkerTest.java",
      "android/junit/src/org/chromium/base/memory/MemoryPressureMonitorTest.java",
      "android/junit/src/org/chromium/base/memory/MemoryPurgeManagerTest.java",
      "android/junit/src/org/chromium/base/metrics/CachingUmaRecorderTest.java",
      "android/junit/src/org/chromium/base/process_launcher/ChildConnectionAllocatorTest.java",
      "android/junit/src/org/chromium/base/process_launcher/ChildProcessConnectionTest.java",
      "android/junit/src/org/chromium/base/shared_preferences/KeyPrefixTest.java",
      "android/junit/src/org/chromium/base/shared_preferences/KnownPreferenceKeyRegistriesTest.java",
      "android/junit/src/org/chromium/base/shared_preferences/SharedPreferencesManagerTest.java",
      "android/junit/src/org/chromium/base/shared_preferences/StrictPreferenceKeyCheckerTest.java",
      "android/junit/src/org/chromium/base/supplier/LazyOneshotSupplierImplTest.java",
      "android/junit/src/org/chromium/base/supplier/LazyOneshotSupplierTest.java",
      "android/junit/src/org/chromium/base/supplier/ObservableSupplierImplTest.java",
      "android/junit/src/org/chromium/base/supplier/OneShotCallbackTest.java",
      "android/junit/src/org/chromium/base/supplier/OneshotSupplierImplTest.java",
      "android/junit/src/org/chromium/base/supplier/SupplierUtilsTest.java",
      "android/junit/src/org/chromium/base/supplier/SyncOneshotSupplierImplTest.java",
      "android/junit/src/org/chromium/base/supplier/TransitiveObservableSupplierTest.java",
      "android/junit/src/org/chromium/base/supplier/UnownedUserDataSupplierTest.java",
      "android/junit/src/org/chromium/base/supplier/UnwrapObservableSupplierTest.java",
      "android/junit/src/org/chromium/base/task/AsyncTaskThreadTest.java",
      "android/junit/src/org/chromium/base/task/SequencedTaskRunnerTaskMigrationTest.java",
      "android/junit/src/org/chromium/base/util/GarbageCollectionTestUtilsUnitTest.java",
      "test/android/junit/src/org/chromium/base/test/SetUpStatementTest.java",
      "test/android/junit/src/org/chromium/base/test/TestListInstrumentationRunListenerTest.java",
      "test/android/junit/src/org/chromium/base/test/params/ExampleParameterizedTest.java",
      "test/android/junit/src/org/chromium/base/test/params/ParameterizedRunnerDelegateCommonTest.java",
      "test/android/junit/src/org/chromium/base/test/params/ParameterizedRunnerDelegateFactoryTest.java",
      "test/android/junit/src/org/chromium/base/test/params/ParameterizedRunnerTest.java",
      "test/android/junit/src/org/chromium/base/test/params/ParameterizedTestNameTest.java",
      "test/android/junit/src/org/chromium/base/test/util/AndroidSdkLevelSkipCheckTest.java",
      "test/android/junit/src/org/chromium/base/test/util/AnnotationProcessingUtilsTest.java",
      "test/android/junit/src/org/chromium/base/test/util/CommandLineFlagsNoClassAnnotationCheckTest.java",
      "test/android/junit/src/org/chromium/base/test/util/CommandLineFlagsWithClassAnnotationCheckTest.java",
      "test/android/junit/src/org/chromium/base/test/util/DisableIfTest.java",
      "test/android/junit/src/org/chromium/base/test/util/DisabledTestForClassRobolectricTest.java",
      "test/android/junit/src/org/chromium/base/test/util/DisabledTestRobolectricTest.java",
      "test/android/junit/src/org/chromium/base/test/util/RestrictionSkipCheckTest.java",
      "test/android/junit/src/org/chromium/base/test/util/SkipCheckTest.java",
    ]
    deps = [
      ":base_cached_flags_java",
      ":base_java",
      ":base_java_process_launcher_test_support",
      ":base_java_test_support",
      ":base_java_test_support_uncommon",
      ":base_junit_test_support",
      ":base_shared_preferences_java",
      "//base/test:test_support_java",
      "//testing/android/instrumentation:instrumentation_test_runner_java",
      "//third_party/android_deps:guava_android_java",
      "//third_party/androidx:androidx_annotation_annotation_java",
      "//third_party/androidx:androidx_test_core_java",
      "//third_party/androidx:androidx_test_runner_java",
      "//third_party/hamcrest:hamcrest_java",
      "//third_party/jni_zero:jni_zero_java",
    ]
  }

  java_cpp_enum("base_android_java_enums_srcjar") {
    sources = [
      "android/application_status_listener.h",
      "android/child_process_binding_types.h",
      "android/library_loader/library_loader_hooks.h",
      "android/linker/linker_jni.h",
      "android/task_scheduler/task_runner_android.h",
      "android/task_scheduler/task_traits_android.h",
      "memory/memory_pressure_listener.h",
      "metrics/histogram_base.h",
      "task/task_traits.h",
    ]
    if (enable_base_tracing) {
      sources += [ "trace_event/trace_config.h" ]
    }
  }

  generate_jni("base_profiler_test_support_jni") {
    testonly = true
    sources =
        [ "android/javatests/src/org/chromium/base/profiler/TestSupport.java" ]
  }

  android_library("base_profiler_test_support_java") {
    testonly = true
    sources =
        [ "android/javatests/src/org/chromium/base/profiler/TestSupport.java" ]
    srcjar_deps = [ ":base_profiler_test_support_jni" ]

    deps = [
      "//build/android:build_java",
      "//third_party/jni_zero:jni_zero_java",
    ]
  }

  generate_jni("base_unittest_support_jni") {
    testonly = true
    sources =
        [ "test/android/java/src/org/chromium/base/JniAndroidTestUtils.java" ]
  }

  # Used by gtests and not by robolectric / instrumentation tests.
  android_library("base_unittest_support_java") {
    testonly = true

    deps = [
      ":base_java",
      "//third_party/jni_zero:jni_zero_java",
    ]
    srcjar_deps = [ ":base_unittest_support_jni" ]

    sources = [
      "test/android/java/src/org/chromium/base/ContentUriTestUtils.java",
      "test/android/java/src/org/chromium/base/JavaHandlerThreadHelpers.java",
      "test/android/java/src/org/chromium/base/JniAndroidTestUtils.java",
    ]
  }
}  # is_android

# Keep the list of fuzzer_tests in alphabetical order.
fuzzer_test("base64_decode_fuzzer") {
  sources = [ "base64_decode_fuzzer.cc" ]
  deps = [ "//base" ]
}

fuzzer_test("base64_encode_fuzzer") {
  sources = [ "base64_encode_fuzzer.cc" ]
  deps = [ "//base" ]
}

fuzzer_test("base64url_fuzzer") {
  sources = [ "base64url_fuzzer.cc" ]
  deps = [ "//base" ]
}

fuzzer_test("base_json_correctness_fuzzer") {
  sources = [ "json/json_correctness_fuzzer.cc" ]
  deps = [ ":base" ]
  dict = "//testing/libfuzzer/fuzzers/dicts/json.dict"
}

fuzzer_test("base_json_reader_fuzzer") {
  sources = [ "json/json_reader_fuzzer.cc" ]
  deps = [ "//base" ]
  dict = "//testing/libfuzzer/fuzzers/dicts/json.dict"
}

fuzzer_test("base_json_string_escape_fuzzer") {
  sources = [ "json/string_escape_fuzzer.cc" ]
  deps = [ "//base" ]
}

if (is_mac) {
  protoc_convert("base_mach_port_rendezvous_convert_corpus") {
    sources = [
      "test/data/mach_port_rendezvous_fuzz/dead_name.textproto",
      "test/data/mach_port_rendezvous_fuzz/send.textproto",
    ]
    inputs = [ "//testing/libfuzzer/fuzzers/mach/mach_message.proto" ]
    output_pattern = "$target_gen_dir/base_mach_port_rendezvous_corpus/{{source_name_part}}.binarypb"
    args = [
      "--encode=mach_fuzzer.MachMessage",
      "-I",
      rebase_path("//"),
      rebase_path(inputs[0]),
    ]
  }
  fuzzer_test("base_mach_port_rendezvous_fuzzer") {
    sources = [ "mac/mach_port_rendezvous_fuzzer.cc" ]
    deps = [
      "//base",
      "//testing/libfuzzer/fuzzers/mach:converter",
      "//third_party/libprotobuf-mutator",
    ]
    seed_corpus = "$target_gen_dir/base_mach_port_rendezvous_corpus"
    seed_corpus_deps = [ ":base_mach_port_rendezvous_convert_corpus" ]
  }
}

fuzzer_test("command_line_fuzzer") {
  sources = [ "command_line_fuzzer.cc" ]
  deps = [ "//base" ]
}

fuzzer_test("escape_fuzzer") {
  sources = [ "strings/escape_fuzzer.cc" ]
  deps = [ "//base" ]
}

fuzzer_test("file_path_fuzzer") {
  sources = [ "files/file_path_fuzzer.cc" ]
  deps = [ "//base" ]
}

if (is_linux || is_chromeos) {
  fuzzer_test("mime_util_xdg_fuzzer") {
    sources = [ "nix/mime_util_xdg_fuzzer.cc" ]
    deps = [ "//base" ]
  }
}

fuzzer_test("base_persistent_histogram_allocator_fuzzer") {
  sources = [ "metrics/persistent_histogram_allocator_fuzzer.cc" ]
  deps = [ "//base" ]
  seed_corpus = "//base/test/data/pma_corpus"
}

fuzzer_test("string_number_conversions_fuzzer") {
  sources = [ "strings/string_number_conversions_fuzzer.cc" ]
  deps = [ "//base" ]
}

fuzzer_test("string_pattern_fuzzer") {
  sources = [ "strings/pattern_fuzzer.cc" ]
  deps = [ "//base" ]
}

fuzzer_test("string_tokenizer_fuzzer") {
  sources = [ "strings/string_tokenizer_fuzzer.cc" ]
  deps = [ "//base" ]
}

fuzzer_test("substring_set_matcher_fuzzer") {
  sources = [ "substring_set_matcher/substring_set_matcher_fuzzer.cc" ]
  deps = [ "//base" ]
}

fuzzer_test("sys_string_conversions_fuzzer") {
  sources = [ "strings/sys_string_conversions_fuzzer.cc" ]
  deps = [ "//base" ]
}

fuzzer_test("time_delta_from_string_fuzzer") {
  sources = [ "time/time_delta_from_string_fuzzer.cc" ]
  deps = [ "//base" ]
}

fuzzer_test("time_fuzzer") {
  sources = [ "time/time_fuzzer.cc" ]
  deps = [
    "//base",
    "//base/test:test_support",
  ]
}

fuzzer_test("utf_string_conversions_fuzzer") {
  sources = [ "strings/utf_string_conversions_fuzzer.cc" ]
  deps = [ "//base" ]
}

fuzzer_test("pickle_fuzzer") {
  sources = [ "pickle_fuzzer.cc" ]
  deps = [
    "//base",
    "//base/test:test_support",
  ]
}

# TODO(1151236): Temporarily move test_support from
# //base/allocator/partition_allocator/src/partition_alloc/BUILD.gn to //base/BUILD.gn. After
# fixing partition_allocator tests issue, we will move test_support to
# //base/allocator/partition_allocator/src/partition_alloc/BUILD.gn again.
source_set("partition_alloc_test_support") {
  testonly = true

  sources = [
    "allocator/partition_allocator/src/partition_alloc/extended_api.cc",
    "allocator/partition_allocator/src/partition_alloc/extended_api.h",
    "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_for_testing.h",
    "allocator/partition_allocator/src/partition_alloc/partition_alloc_for_testing.h",
    "allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_counting_impl_for_test.h",
  ]
  if (is_posix) {
    sources += [ "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_posix_for_testing.cc" ]
  }
  if (is_fuchsia) {
    sources += [
      "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_fuchsia_for_testing.cc",
      "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_posix_for_testing.cc",
    ]
  }
  if (is_win) {
    sources += [ "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_win_for_testing.cc" ]
  }
  if (is_apple) {
    sources += [ "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_apple_for_testing.mm" ]
  }
  if (is_linux || is_chromeos) {
    sources += [ "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_linux_for_testing.cc" ]
  }
  if (is_android) {
    sources += [ "allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_android_for_testing.cc" ]
  }
  public_deps = [
    "allocator/partition_allocator:buildflags",
    "//build:branding_buildflags",
    "//build/config/compiler:compiler_buildflags",
  ]
  public_configs = []
  if (is_fuchsia) {
    public_deps += [
      "//third_party/fuchsia-sdk/sdk/pkg/fit",
      "//third_party/fuchsia-sdk/sdk/pkg/sync",
      "//third_party/fuchsia-sdk/sdk/pkg/zx",
    ]

    # Needed for users of spinning_mutex.h, which for performance reasons,
    # contains inlined calls to `libsync` inside the header file.
    # It appends an entry to the "libs" section of the dependent target.
    public_configs += [ ":fuchsia_sync_lib" ]
  }
  deps = [ ":base" ]

  if (!is_debug) {
    configs -= [ "//build/config/compiler:default_optimization" ]
    configs += [ "//build/config/compiler:optimize_speed" ]
  }
}

if (enable_base_tracing) {
  # This group makes visible those targets in subdirectories that are not
  # explicitly depended on.
  group("gn_all") {
    testonly = true
    deps = [ "//base/tracing:perfetto_diff_tests" ]
  }
}

process_version("check_version_internal") {
  template_file = "//base/check_version_internal.h.in"
  output = "$target_gen_dir/check_version_internal.h"

  # TODO(pbos): Consider moving chrome/VERSION into base/VERSION now that base
  # depends on it. This dependency currently breaks webrtc which pulls in //base
  # (but not //chrome). crbug.com/webrtc/13662 tracks removing webrtc's
  # dependency on //base. For now we fake the check version far into the future.
  # This breaks check_unittest.cc when built outside of chromium, but webrtc
  # doesn't need to build base_unittests. If this is required in the future, but
  # we haven't moved chrome/VERSION, we should ifdef out those tests.
  if (build_with_chromium) {
    sources = [ "//chrome/VERSION" ]
    extra_args = [
      "-e",
      "VERSION_MAJOR=\"%s\" % (MAJOR)",
      "-e",
      "NEXT_VERSION_MAJOR=\"%d\" % (int(MAJOR) + 1)",
    ]
  } else {
    extra_args = [
      "-e",
      "VERSION_MAJOR=\"9998\"",
      "-e",
      "NEXT_VERSION_MAJOR=\"9999\"",
    ]
  }
}
