# 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")

# 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/allocator_extension.cc",
    "allocator/allocator_extension.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/cxx20_erase.h",
    "containers/cxx20_erase_internal.h",
    "containers/cxx20_erase_vector.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/stack.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/buffered_dwarf_reader.cc",
    "debug/buffered_dwarf_reader.h",
    "debug/debugger.cc",
    "debug/debugger.h",
    "debug/dump_without_crashing.cc",
    "debug/dump_without_crashing.h",
    "debug/dwarf_line_no.cc",
    "debug/dwarf_line_no.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/process_metrics_iocounters.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/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/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 += [ "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_custom_libcxx && enable_safe_libcxx && !is_debug) {
    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/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/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_shared_preferences_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" ]
  }
  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 += [
      ":base_jni",
      ":process_launcher_jni",
      "//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/sys_inspect_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",
      "time/time_exploded_posix.cc",
    ]

    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/launch_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",
      ]
      libs += [ "bsm" ]
    } 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",
      ]
    }

    if (current_cpu == "x64" || current_cpu == "arm64") {
      sources += [ "time/time_exploded_posix.cc" ]
    } else {
      sources += [ "time/time_exploded_ios.cc" ]
    }

    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 += [ "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/xdg_util.cc",
        "nix/xdg_util.h",
      ]
      defines += [ "USE_SYMBOLIZE" ]
      deps += [
        "//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_exploded_posix.cc",
      "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 && !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" ]
  }
}

# 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

  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_safe_libcxx && !is_debug) {
  # 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/checked_iterators_unittest.cc",
    "containers/circular_deque_unittest.cc",
    "containers/contains_unittest.cc",
    "containers/enum_set_unittest.cc",
    "containers/erase_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_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/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",
    "test/to_vector_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/token_type_unittest.cc",
    "types/variant_util_unittest.cc",
    "unguessable_token_unittest.cc",
    "uuid_unittest.cc",
    "value_iterators_unittest.cc",
    "values_unittest.cc",
    "version_unittest.cc",
    "vlog_unittest.cc",
  ]

  if (use_blink) {
    sources += [
      "memory/shared_memory_switch_unittest.cc",
      "metrics/histogram_shared_memory_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) {
    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",
  ]
  if (is_clang) {
    deps += [ ":base_unsafe_buffers_unittest_sources" ]
  }

  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 (!is_ios) {
    sources += [
      "allocator/partition_allocator/src/partition_alloc/tagging_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",
    ]

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

  if (enable_base_tracing) {
    sources += [ "test/test_trace_processor_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/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/stack/stack_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 partition alloc (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" ]
    if (is_clang) {
      deps += [ ":base_unsafe_buffers_nocompile_tests" ]
    }
  }
}

source_set("base_unsafe_buffers_unittest_sources") {
  testonly = true
  visibility = [ ":*" ]
  configs += [ "//build/config/compiler:unsafe_buffer_warning" ]
  sources = [
    "containers/buffer_iterator_unittest.cc",
    "unsafe_buffers_unittest.cc",
  ]
  deps = [
    "//base",
    "//testing/gtest",
  ]
}

# 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/checked_iterators_nocompile.nc",
      "containers/contains_nocompile.nc",
      "containers/enum_set_nocompile.nc",
      "containers/heap_array_nocompile.nc",
      "containers/span_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/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",
      "values_nocompile.nc",
    ]
    deps = [ ":base" ]
  }

  nocompile_source_set("base_unsafe_buffers_nocompile_tests") {
    configs = [ "//build/config/compiler:unsafe_buffer_warning" ]
    sources = [
      "containers/buffer_iterator_nocompile.nc",
      "unsafe_buffers_nocompile.nc",
    ]
    deps = [ ":base" ]
  }
}

if (is_android || is_robolectric) {
  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/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/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/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/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/MutableFlagWithSafeDefault.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_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",
      "//third_party/accessibility_test_framework:accessibility_test_framework_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_base_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/TestListInstrumentationRunListener.java",
      "test/android/javatests/src/org/chromium/base/test/TestTraceEvent.java",
      "test/android/javatests/src/org/chromium/base/test/UiThreadStatement.java",
      "test/android/javatests/src/org/chromium/base/test/UiThreadTest.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/ReachedCodeProfiler.java",
      "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/ReachedCodeProfiler.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/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",
      "//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("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\"",
    ]
  }
}
