Merge changes Ie937102c,I47405379,Ic88a99ed,I37ad0250,I1583db83

* changes:
  gn2bp: change filegroup to cc_defaults
  gn2bp: change remove to discard
  gn2bp: move module_is_compiled to Module class
  gn2bp: using dep.name when adding dependency is more correct
  gn2bp: properly add proto_deps
diff --git a/tools/gn2bp/Android.bp.swp b/tools/gn2bp/Android.bp.swp
index dae4cc5..97b4371 100644
--- a/tools/gn2bp/Android.bp.swp
+++ b/tools/gn2bp/Android.bp.swp
@@ -134,6 +134,7 @@
     ],
     defaults: [
         "cronet_aml_defaults",
+        "cronet_aml_third_party_android_ndk_cpu_features",
     ],
     cflags: [
         "-DANDROID",
@@ -175,7 +176,6 @@
     arch: {
         x86: {
             srcs: [
-                ":cronet_aml_third_party_android_ndk_cpu_features",
                 "base/allocator/partition_allocator/address_pool_manager.cc",
                 "base/allocator/partition_allocator/address_pool_manager_bitmap.cc",
                 "base/allocator/partition_allocator/address_space_randomization.cc",
@@ -230,7 +230,6 @@
         },
         x86_64: {
             srcs: [
-                ":cronet_aml_third_party_android_ndk_cpu_features",
                 "base/allocator/partition_allocator/address_pool_manager.cc",
                 "base/allocator/partition_allocator/address_pool_manager_bitmap.cc",
                 "base/allocator/partition_allocator/address_space_randomization.cc",
@@ -379,120 +378,6 @@
 cc_library_static {
     name: "cronet_aml_base_base",
     srcs: [
-        ":cronet_aml_base_numerics_base_numerics",
-        ":cronet_aml_third_party_abseil_cpp_absl",
-        ":cronet_aml_third_party_abseil_cpp_absl_algorithm_algorithm",
-        ":cronet_aml_third_party_abseil_cpp_absl_algorithm_container",
-        ":cronet_aml_third_party_abseil_cpp_absl_base_atomic_hook",
-        ":cronet_aml_third_party_abseil_cpp_absl_base_base",
-        ":cronet_aml_third_party_abseil_cpp_absl_base_base_internal",
-        ":cronet_aml_third_party_abseil_cpp_absl_base_config",
-        ":cronet_aml_third_party_abseil_cpp_absl_base_core_headers",
-        ":cronet_aml_third_party_abseil_cpp_absl_base_cycleclock_internal",
-        ":cronet_aml_third_party_abseil_cpp_absl_base_dynamic_annotations",
-        ":cronet_aml_third_party_abseil_cpp_absl_base_endian",
-        ":cronet_aml_third_party_abseil_cpp_absl_base_errno_saver",
-        ":cronet_aml_third_party_abseil_cpp_absl_base_fast_type_id",
-        ":cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        ":cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
-        ":cronet_aml_third_party_abseil_cpp_absl_base_prefetch",
-        ":cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        ":cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        ":cronet_aml_third_party_abseil_cpp_absl_base_strerror",
-        ":cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        ":cronet_aml_third_party_abseil_cpp_absl_cleanup_cleanup",
-        ":cronet_aml_third_party_abseil_cpp_absl_cleanup_cleanup_internal",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_btree",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_common",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_common_policy_traits",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_compressed_tuple",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_container_memory",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_fixed_array",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_flat_hash_map",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_flat_hash_set",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_hash_function_defaults",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_hash_policy_traits",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_hashtable_debug_hooks",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_inlined_vector",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_inlined_vector_internal",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_layout",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_node_hash_map",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_node_hash_set",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_node_slot_policy",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_map",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set",
-        ":cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
-        ":cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
-        ":cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack",
-        ":cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler",
-        ":cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
-        ":cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
-        ":cronet_aml_third_party_abseil_cpp_absl_functional_any_invocable",
-        ":cronet_aml_third_party_abseil_cpp_absl_functional_bind_front",
-        ":cronet_aml_third_party_abseil_cpp_absl_functional_function_ref",
-        ":cronet_aml_third_party_abseil_cpp_absl_hash_city",
-        ":cronet_aml_third_party_abseil_cpp_absl_hash_hash",
-        ":cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash",
-        ":cronet_aml_third_party_abseil_cpp_absl_memory_memory",
-        ":cronet_aml_third_party_abseil_cpp_absl_meta_type_traits",
-        ":cronet_aml_third_party_abseil_cpp_absl_numeric_bits",
-        ":cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        ":cronet_aml_third_party_abseil_cpp_absl_numeric_representation",
-        ":cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
-        ":cronet_aml_third_party_abseil_cpp_absl_profiling_sample_recorder",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_distributions",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_distribution_caller",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_fast_uniform_bits",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_fastmath",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_generate_real",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_iostream_state_saver",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_nonsecure_base",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_pcg_engine",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_platform",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_randen",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_engine",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_salted_seed_seq",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_traits",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_uniform_helper",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_wide_multiply",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_random",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences",
-        ":cronet_aml_third_party_abseil_cpp_absl_status_status",
-        ":cronet_aml_third_party_abseil_cpp_absl_status_statusor",
-        ":cronet_aml_third_party_abseil_cpp_absl_strings_cord",
-        ":cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal",
-        ":cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions",
-        ":cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle",
-        ":cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info",
-        ":cronet_aml_third_party_abseil_cpp_absl_strings_cordz_statistics",
-        ":cronet_aml_third_party_abseil_cpp_absl_strings_cordz_update_scope",
-        ":cronet_aml_third_party_abseil_cpp_absl_strings_cordz_update_tracker",
-        ":cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        ":cronet_aml_third_party_abseil_cpp_absl_strings_str_format",
-        ":cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal",
-        ":cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        ":cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
-        ":cronet_aml_third_party_abseil_cpp_absl_synchronization_kernel_timeout_internal",
-        ":cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
-        ":cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
-        ":cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
-        ":cronet_aml_third_party_abseil_cpp_absl_time_time",
-        ":cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
-        ":cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access",
-        ":cronet_aml_third_party_abseil_cpp_absl_types_compare",
-        ":cronet_aml_third_party_abseil_cpp_absl_types_optional",
-        ":cronet_aml_third_party_abseil_cpp_absl_types_span",
-        ":cronet_aml_third_party_abseil_cpp_absl_types_variant",
-        ":cronet_aml_third_party_abseil_cpp_absl_utility_utility",
-        ":cronet_aml_third_party_android_ndk_cpu_features",
-        ":cronet_aml_third_party_ashmem_ashmem",
         "base/allocator/allocator_check.cc",
         "base/allocator/allocator_extension.cc",
         "base/allocator/dispatcher/dispatcher.cc",
@@ -933,7 +818,121 @@
         "cronet_aml_build_config_compiler_compiler_buildflags",
     ],
     defaults: [
+        "cronet_aml_base_numerics_base_numerics",
         "cronet_aml_defaults",
+        "cronet_aml_third_party_abseil_cpp_absl",
+        "cronet_aml_third_party_abseil_cpp_absl_algorithm_algorithm",
+        "cronet_aml_third_party_abseil_cpp_absl_algorithm_container",
+        "cronet_aml_third_party_abseil_cpp_absl_base_atomic_hook",
+        "cronet_aml_third_party_abseil_cpp_absl_base_base",
+        "cronet_aml_third_party_abseil_cpp_absl_base_base_internal",
+        "cronet_aml_third_party_abseil_cpp_absl_base_config",
+        "cronet_aml_third_party_abseil_cpp_absl_base_core_headers",
+        "cronet_aml_third_party_abseil_cpp_absl_base_cycleclock_internal",
+        "cronet_aml_third_party_abseil_cpp_absl_base_dynamic_annotations",
+        "cronet_aml_third_party_abseil_cpp_absl_base_endian",
+        "cronet_aml_third_party_abseil_cpp_absl_base_errno_saver",
+        "cronet_aml_third_party_abseil_cpp_absl_base_fast_type_id",
+        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
+        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
+        "cronet_aml_third_party_abseil_cpp_absl_base_prefetch",
+        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
+        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
+        "cronet_aml_third_party_abseil_cpp_absl_base_strerror",
+        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
+        "cronet_aml_third_party_abseil_cpp_absl_cleanup_cleanup",
+        "cronet_aml_third_party_abseil_cpp_absl_cleanup_cleanup_internal",
+        "cronet_aml_third_party_abseil_cpp_absl_container_btree",
+        "cronet_aml_third_party_abseil_cpp_absl_container_common",
+        "cronet_aml_third_party_abseil_cpp_absl_container_common_policy_traits",
+        "cronet_aml_third_party_abseil_cpp_absl_container_compressed_tuple",
+        "cronet_aml_third_party_abseil_cpp_absl_container_container_memory",
+        "cronet_aml_third_party_abseil_cpp_absl_container_fixed_array",
+        "cronet_aml_third_party_abseil_cpp_absl_container_flat_hash_map",
+        "cronet_aml_third_party_abseil_cpp_absl_container_flat_hash_set",
+        "cronet_aml_third_party_abseil_cpp_absl_container_hash_function_defaults",
+        "cronet_aml_third_party_abseil_cpp_absl_container_hash_policy_traits",
+        "cronet_aml_third_party_abseil_cpp_absl_container_hashtable_debug_hooks",
+        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler",
+        "cronet_aml_third_party_abseil_cpp_absl_container_inlined_vector",
+        "cronet_aml_third_party_abseil_cpp_absl_container_inlined_vector_internal",
+        "cronet_aml_third_party_abseil_cpp_absl_container_layout",
+        "cronet_aml_third_party_abseil_cpp_absl_container_node_hash_map",
+        "cronet_aml_third_party_abseil_cpp_absl_container_node_hash_set",
+        "cronet_aml_third_party_abseil_cpp_absl_container_node_slot_policy",
+        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_map",
+        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set",
+        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
+        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
+        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack",
+        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler",
+        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
+        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
+        "cronet_aml_third_party_abseil_cpp_absl_functional_any_invocable",
+        "cronet_aml_third_party_abseil_cpp_absl_functional_bind_front",
+        "cronet_aml_third_party_abseil_cpp_absl_functional_function_ref",
+        "cronet_aml_third_party_abseil_cpp_absl_hash_city",
+        "cronet_aml_third_party_abseil_cpp_absl_hash_hash",
+        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash",
+        "cronet_aml_third_party_abseil_cpp_absl_memory_memory",
+        "cronet_aml_third_party_abseil_cpp_absl_meta_type_traits",
+        "cronet_aml_third_party_abseil_cpp_absl_numeric_bits",
+        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
+        "cronet_aml_third_party_abseil_cpp_absl_numeric_representation",
+        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
+        "cronet_aml_third_party_abseil_cpp_absl_profiling_sample_recorder",
+        "cronet_aml_third_party_abseil_cpp_absl_random_distributions",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_distribution_caller",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_fast_uniform_bits",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_fastmath",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_generate_real",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_iostream_state_saver",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_nonsecure_base",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pcg_engine",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_engine",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_salted_seed_seq",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_traits",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_uniform_helper",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_wide_multiply",
+        "cronet_aml_third_party_abseil_cpp_absl_random_random",
+        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception",
+        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences",
+        "cronet_aml_third_party_abseil_cpp_absl_status_status",
+        "cronet_aml_third_party_abseil_cpp_absl_status_statusor",
+        "cronet_aml_third_party_abseil_cpp_absl_strings_cord",
+        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal",
+        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions",
+        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle",
+        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info",
+        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_statistics",
+        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_update_scope",
+        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_update_tracker",
+        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
+        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format",
+        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal",
+        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
+        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
+        "cronet_aml_third_party_abseil_cpp_absl_synchronization_kernel_timeout_internal",
+        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
+        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
+        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
+        "cronet_aml_third_party_abseil_cpp_absl_time_time",
+        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
+        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access",
+        "cronet_aml_third_party_abseil_cpp_absl_types_compare",
+        "cronet_aml_third_party_abseil_cpp_absl_types_optional",
+        "cronet_aml_third_party_abseil_cpp_absl_types_span",
+        "cronet_aml_third_party_abseil_cpp_absl_types_variant",
+        "cronet_aml_third_party_abseil_cpp_absl_utility_utility",
+        "cronet_aml_third_party_android_ndk_cpu_features",
+        "cronet_aml_third_party_ashmem_ashmem",
     ],
     cflags: [
         "-DABSL_ALLOCATOR_NOTHROW=1",
@@ -1620,7 +1619,7 @@
 }
 
 // GN: //base/numerics:base_numerics
-filegroup {
+cc_defaults {
     name: "cronet_aml_base_numerics_base_numerics",
 }
 
@@ -2019,7 +2018,7 @@
 }
 
 // GN: //build:buildflag_header_h
-filegroup {
+cc_defaults {
     name: "cronet_aml_build_buildflag_header_h",
 }
 
@@ -2084,7 +2083,7 @@
 }
 
 // GN: //buildtools/third_party/libc++:libc++
-filegroup {
+cc_defaults {
     name: "cronet_aml_buildtools_third_party_libc___libc__",
     srcs: [
         "buildtools/third_party/libc++/trunk/src/algorithm.cpp",
@@ -2133,7 +2132,7 @@
 }
 
 // GN: //buildtools/third_party/libc++abi:libc++abi
-filegroup {
+cc_defaults {
     name: "cronet_aml_buildtools_third_party_libc__abi_libc__abi",
     srcs: [
         "buildtools/third_party/libc++abi/trunk/src/abort_message.cpp",
@@ -2168,7 +2167,7 @@
 }
 
 // GN: //buildtools/third_party/libunwind:libunwind
-filegroup {
+cc_defaults {
     name: "cronet_aml_buildtools_third_party_libunwind_libunwind",
     srcs: [
         "buildtools/third_party/libunwind/trunk/src/Unwind-EHABI.cpp",
@@ -2205,18 +2204,6 @@
 cc_library_shared {
     name: "cronet_aml_components_cronet_android_cronet",
     srcs: [
-        ":cronet_aml_buildtools_third_party_libc___libc__",
-        ":cronet_aml_buildtools_third_party_libc__abi_libc__abi",
-        ":cronet_aml_buildtools_third_party_libunwind_libunwind",
-        ":cronet_aml_components_cronet_android_cronet_static",
-        ":cronet_aml_components_cronet_cronet_common",
-        ":cronet_aml_components_cronet_cronet_version_header",
-        ":cronet_aml_components_cronet_metrics_util",
-        ":cronet_aml_components_cronet_native_cronet_native_headers",
-        ":cronet_aml_components_cronet_native_cronet_native_impl",
-        ":cronet_aml_components_grpc_support_grpc_support",
-        ":cronet_aml_components_grpc_support_headers",
-        ":cronet_aml_components_metrics_library_support",
         ":cronet_aml_third_party_metrics_proto_metrics_proto_gen",
         "components/cronet/android/cronet_jni.cc",
     ],
@@ -2266,6 +2253,18 @@
         "cronet_aml_url_buildflags",
     ],
     defaults: [
+        "cronet_aml_buildtools_third_party_libc___libc__",
+        "cronet_aml_buildtools_third_party_libc__abi_libc__abi",
+        "cronet_aml_buildtools_third_party_libunwind_libunwind",
+        "cronet_aml_components_cronet_android_cronet_static",
+        "cronet_aml_components_cronet_cronet_common",
+        "cronet_aml_components_cronet_cronet_version_header",
+        "cronet_aml_components_cronet_metrics_util",
+        "cronet_aml_components_cronet_native_cronet_native_headers",
+        "cronet_aml_components_cronet_native_cronet_native_impl",
+        "cronet_aml_components_grpc_support_grpc_support",
+        "cronet_aml_components_grpc_support_headers",
+        "cronet_aml_components_metrics_library_support",
         "cronet_aml_defaults",
     ],
     cflags: [
@@ -2444,7 +2443,7 @@
 }
 
 // GN: //components/cronet/android:cronet_static
-filegroup {
+cc_defaults {
     name: "cronet_aml_components_cronet_android_cronet_static",
     srcs: [
         "components/cronet/android/cronet_bidirectional_stream_adapter.cc",
@@ -2478,7 +2477,7 @@
 }
 
 // GN: //components/cronet:cronet_common
-filegroup {
+cc_defaults {
     name: "cronet_aml_components_cronet_cronet_common",
     srcs: [
         "components/cronet/cronet_context.cc",
@@ -2492,7 +2491,7 @@
 }
 
 // GN: //components/cronet:cronet_version_header
-filegroup {
+cc_defaults {
     name: "cronet_aml_components_cronet_cronet_version_header",
 }
 
@@ -2520,7 +2519,7 @@
 }
 
 // GN: //components/cronet:metrics_util
-filegroup {
+cc_defaults {
     name: "cronet_aml_components_cronet_metrics_util",
     srcs: [
         "components/cronet/metrics_util.cc",
@@ -2528,12 +2527,12 @@
 }
 
 // GN: //components/cronet/native:cronet_native_headers
-filegroup {
+cc_defaults {
     name: "cronet_aml_components_cronet_native_cronet_native_headers",
 }
 
 // GN: //components/cronet/native:cronet_native_impl
-filegroup {
+cc_defaults {
     name: "cronet_aml_components_cronet_native_cronet_native_impl",
     srcs: [
         "components/cronet/native/buffer.cc",
@@ -2549,7 +2548,7 @@
 }
 
 // GN: //components/grpc_support:grpc_support
-filegroup {
+cc_defaults {
     name: "cronet_aml_components_grpc_support_grpc_support",
     srcs: [
         "components/grpc_support/bidirectional_stream.cc",
@@ -2558,12 +2557,12 @@
 }
 
 // GN: //components/grpc_support:headers
-filegroup {
+cc_defaults {
     name: "cronet_aml_components_grpc_support_headers",
 }
 
 // GN: //components/metrics:library_support
-filegroup {
+cc_defaults {
     name: "cronet_aml_components_metrics_library_support",
     srcs: [
         "components/metrics/histogram_encoder.cc",
@@ -2866,7 +2865,7 @@
 }
 
 // GN: //ipc:param_traits
-filegroup {
+cc_defaults {
     name: "cronet_aml_ipc_param_traits",
 }
 
@@ -2970,7 +2969,7 @@
 }
 
 // GN: //net:constants
-filegroup {
+cc_defaults {
     name: "cronet_aml_net_constants",
 }
 
@@ -2998,7 +2997,7 @@
 }
 
 // GN: //net/dns:dns
-filegroup {
+cc_defaults {
     name: "cronet_aml_net_dns_dns",
     srcs: [
         "net/dns/address_info.cc",
@@ -3042,27 +3041,27 @@
 }
 
 // GN: //net/dns:dns_client
-filegroup {
+cc_defaults {
     name: "cronet_aml_net_dns_dns_client",
 }
 
 // GN: //net/dns:host_resolver
-filegroup {
+cc_defaults {
     name: "cronet_aml_net_dns_host_resolver",
 }
 
 // GN: //net/dns:host_resolver_manager
-filegroup {
+cc_defaults {
     name: "cronet_aml_net_dns_host_resolver_manager",
 }
 
 // GN: //net/dns:mdns_client
-filegroup {
+cc_defaults {
     name: "cronet_aml_net_dns_mdns_client",
 }
 
 // GN: //net/dns/public:public
-filegroup {
+cc_defaults {
     name: "cronet_aml_net_dns_public_public",
     srcs: [
         "net/dns/public/dns_config_overrides.cc",
@@ -3077,7 +3076,7 @@
 }
 
 // GN: //net/http:transport_security_state_generated_files
-filegroup {
+cc_defaults {
     name: "cronet_aml_net_http_transport_security_state_generated_files",
     srcs: [
         "net/http/transport_security_state.cc",
@@ -3143,21 +3142,9 @@
 cc_library_static {
     name: "cronet_aml_net_net",
     srcs: [
-        ":cronet_aml_net_constants",
-        ":cronet_aml_net_dns_dns",
-        ":cronet_aml_net_dns_dns_client",
-        ":cronet_aml_net_dns_host_resolver",
-        ":cronet_aml_net_dns_host_resolver_manager",
-        ":cronet_aml_net_dns_mdns_client",
-        ":cronet_aml_net_dns_public_public",
-        ":cronet_aml_net_http_transport_security_state_generated_files",
         ":cronet_aml_net_isolation_info_proto_gen",
-        ":cronet_aml_net_net_deps",
-        ":cronet_aml_net_net_export_header",
         ":cronet_aml_net_net_nqe_proto_gen",
-        ":cronet_aml_net_net_public_deps",
         ":cronet_aml_net_third_party_quiche_net_quic_test_tools_proto_gen",
-        ":cronet_aml_net_traffic_annotation_traffic_annotation",
         "net/android/android_http_util.cc",
         "net/android/cert_verify_result_android.cc",
         "net/android/gurl_utils.cc",
@@ -3707,6 +3694,18 @@
     ],
     defaults: [
         "cronet_aml_defaults",
+        "cronet_aml_net_constants",
+        "cronet_aml_net_dns_dns",
+        "cronet_aml_net_dns_dns_client",
+        "cronet_aml_net_dns_host_resolver",
+        "cronet_aml_net_dns_host_resolver_manager",
+        "cronet_aml_net_dns_mdns_client",
+        "cronet_aml_net_dns_public_public",
+        "cronet_aml_net_http_transport_security_state_generated_files",
+        "cronet_aml_net_net_deps",
+        "cronet_aml_net_net_export_header",
+        "cronet_aml_net_net_public_deps",
+        "cronet_aml_net_traffic_annotation_traffic_annotation",
     ],
     cflags: [
         "-DANDROID",
@@ -3754,12 +3753,12 @@
 }
 
 // GN: //net:net_deps
-filegroup {
+cc_defaults {
     name: "cronet_aml_net_net_deps",
 }
 
 // GN: //net:net_export_header
-filegroup {
+cc_defaults {
     name: "cronet_aml_net_net_export_header",
 }
 
@@ -3902,7 +3901,7 @@
 }
 
 // GN: //net:net_public_deps
-filegroup {
+cc_defaults {
     name: "cronet_aml_net_net_public_deps",
 }
 
@@ -4043,117 +4042,6 @@
     name: "cronet_aml_net_third_party_quiche_quiche",
     srcs: [
         ":cronet_aml_net_third_party_quiche_net_quic_proto_gen",
-        ":cronet_aml_third_party_abseil_cpp_absl",
-        ":cronet_aml_third_party_abseil_cpp_absl_algorithm_algorithm",
-        ":cronet_aml_third_party_abseil_cpp_absl_algorithm_container",
-        ":cronet_aml_third_party_abseil_cpp_absl_base_atomic_hook",
-        ":cronet_aml_third_party_abseil_cpp_absl_base_base",
-        ":cronet_aml_third_party_abseil_cpp_absl_base_base_internal",
-        ":cronet_aml_third_party_abseil_cpp_absl_base_config",
-        ":cronet_aml_third_party_abseil_cpp_absl_base_core_headers",
-        ":cronet_aml_third_party_abseil_cpp_absl_base_cycleclock_internal",
-        ":cronet_aml_third_party_abseil_cpp_absl_base_dynamic_annotations",
-        ":cronet_aml_third_party_abseil_cpp_absl_base_endian",
-        ":cronet_aml_third_party_abseil_cpp_absl_base_errno_saver",
-        ":cronet_aml_third_party_abseil_cpp_absl_base_fast_type_id",
-        ":cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        ":cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
-        ":cronet_aml_third_party_abseil_cpp_absl_base_prefetch",
-        ":cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        ":cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        ":cronet_aml_third_party_abseil_cpp_absl_base_strerror",
-        ":cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        ":cronet_aml_third_party_abseil_cpp_absl_cleanup_cleanup",
-        ":cronet_aml_third_party_abseil_cpp_absl_cleanup_cleanup_internal",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_btree",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_common",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_common_policy_traits",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_compressed_tuple",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_container_memory",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_fixed_array",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_flat_hash_map",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_flat_hash_set",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_hash_function_defaults",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_hash_policy_traits",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_hashtable_debug_hooks",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_inlined_vector",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_inlined_vector_internal",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_layout",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_node_hash_map",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_node_hash_set",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_node_slot_policy",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_map",
-        ":cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set",
-        ":cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
-        ":cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
-        ":cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack",
-        ":cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler",
-        ":cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
-        ":cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
-        ":cronet_aml_third_party_abseil_cpp_absl_functional_any_invocable",
-        ":cronet_aml_third_party_abseil_cpp_absl_functional_bind_front",
-        ":cronet_aml_third_party_abseil_cpp_absl_functional_function_ref",
-        ":cronet_aml_third_party_abseil_cpp_absl_hash_city",
-        ":cronet_aml_third_party_abseil_cpp_absl_hash_hash",
-        ":cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash",
-        ":cronet_aml_third_party_abseil_cpp_absl_memory_memory",
-        ":cronet_aml_third_party_abseil_cpp_absl_meta_type_traits",
-        ":cronet_aml_third_party_abseil_cpp_absl_numeric_bits",
-        ":cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        ":cronet_aml_third_party_abseil_cpp_absl_numeric_representation",
-        ":cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
-        ":cronet_aml_third_party_abseil_cpp_absl_profiling_sample_recorder",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_distributions",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_distribution_caller",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_fast_uniform_bits",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_fastmath",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_generate_real",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_iostream_state_saver",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_nonsecure_base",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_pcg_engine",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_platform",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_randen",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_engine",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_salted_seed_seq",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_traits",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_uniform_helper",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_internal_wide_multiply",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_random",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception",
-        ":cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences",
-        ":cronet_aml_third_party_abseil_cpp_absl_status_status",
-        ":cronet_aml_third_party_abseil_cpp_absl_status_statusor",
-        ":cronet_aml_third_party_abseil_cpp_absl_strings_cord",
-        ":cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal",
-        ":cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions",
-        ":cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle",
-        ":cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info",
-        ":cronet_aml_third_party_abseil_cpp_absl_strings_cordz_statistics",
-        ":cronet_aml_third_party_abseil_cpp_absl_strings_cordz_update_scope",
-        ":cronet_aml_third_party_abseil_cpp_absl_strings_cordz_update_tracker",
-        ":cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        ":cronet_aml_third_party_abseil_cpp_absl_strings_str_format",
-        ":cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal",
-        ":cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        ":cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
-        ":cronet_aml_third_party_abseil_cpp_absl_synchronization_kernel_timeout_internal",
-        ":cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
-        ":cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
-        ":cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
-        ":cronet_aml_third_party_abseil_cpp_absl_time_time",
-        ":cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
-        ":cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access",
-        ":cronet_aml_third_party_abseil_cpp_absl_types_compare",
-        ":cronet_aml_third_party_abseil_cpp_absl_types_optional",
-        ":cronet_aml_third_party_abseil_cpp_absl_types_span",
-        ":cronet_aml_third_party_abseil_cpp_absl_types_variant",
-        ":cronet_aml_third_party_abseil_cpp_absl_utility_utility",
         "net/third_party/quiche/overrides/quiche_platform_impl/quiche_mutex_impl.cc",
         "net/third_party/quiche/overrides/quiche_platform_impl/quiche_time_utils_impl.cc",
         "net/third_party/quiche/overrides/quiche_platform_impl/quiche_url_utils_impl.cc",
@@ -4467,6 +4355,117 @@
     ],
     defaults: [
         "cronet_aml_defaults",
+        "cronet_aml_third_party_abseil_cpp_absl",
+        "cronet_aml_third_party_abseil_cpp_absl_algorithm_algorithm",
+        "cronet_aml_third_party_abseil_cpp_absl_algorithm_container",
+        "cronet_aml_third_party_abseil_cpp_absl_base_atomic_hook",
+        "cronet_aml_third_party_abseil_cpp_absl_base_base",
+        "cronet_aml_third_party_abseil_cpp_absl_base_base_internal",
+        "cronet_aml_third_party_abseil_cpp_absl_base_config",
+        "cronet_aml_third_party_abseil_cpp_absl_base_core_headers",
+        "cronet_aml_third_party_abseil_cpp_absl_base_cycleclock_internal",
+        "cronet_aml_third_party_abseil_cpp_absl_base_dynamic_annotations",
+        "cronet_aml_third_party_abseil_cpp_absl_base_endian",
+        "cronet_aml_third_party_abseil_cpp_absl_base_errno_saver",
+        "cronet_aml_third_party_abseil_cpp_absl_base_fast_type_id",
+        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
+        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
+        "cronet_aml_third_party_abseil_cpp_absl_base_prefetch",
+        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
+        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
+        "cronet_aml_third_party_abseil_cpp_absl_base_strerror",
+        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
+        "cronet_aml_third_party_abseil_cpp_absl_cleanup_cleanup",
+        "cronet_aml_third_party_abseil_cpp_absl_cleanup_cleanup_internal",
+        "cronet_aml_third_party_abseil_cpp_absl_container_btree",
+        "cronet_aml_third_party_abseil_cpp_absl_container_common",
+        "cronet_aml_third_party_abseil_cpp_absl_container_common_policy_traits",
+        "cronet_aml_third_party_abseil_cpp_absl_container_compressed_tuple",
+        "cronet_aml_third_party_abseil_cpp_absl_container_container_memory",
+        "cronet_aml_third_party_abseil_cpp_absl_container_fixed_array",
+        "cronet_aml_third_party_abseil_cpp_absl_container_flat_hash_map",
+        "cronet_aml_third_party_abseil_cpp_absl_container_flat_hash_set",
+        "cronet_aml_third_party_abseil_cpp_absl_container_hash_function_defaults",
+        "cronet_aml_third_party_abseil_cpp_absl_container_hash_policy_traits",
+        "cronet_aml_third_party_abseil_cpp_absl_container_hashtable_debug_hooks",
+        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler",
+        "cronet_aml_third_party_abseil_cpp_absl_container_inlined_vector",
+        "cronet_aml_third_party_abseil_cpp_absl_container_inlined_vector_internal",
+        "cronet_aml_third_party_abseil_cpp_absl_container_layout",
+        "cronet_aml_third_party_abseil_cpp_absl_container_node_hash_map",
+        "cronet_aml_third_party_abseil_cpp_absl_container_node_hash_set",
+        "cronet_aml_third_party_abseil_cpp_absl_container_node_slot_policy",
+        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_map",
+        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set",
+        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
+        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
+        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack",
+        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler",
+        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
+        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
+        "cronet_aml_third_party_abseil_cpp_absl_functional_any_invocable",
+        "cronet_aml_third_party_abseil_cpp_absl_functional_bind_front",
+        "cronet_aml_third_party_abseil_cpp_absl_functional_function_ref",
+        "cronet_aml_third_party_abseil_cpp_absl_hash_city",
+        "cronet_aml_third_party_abseil_cpp_absl_hash_hash",
+        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash",
+        "cronet_aml_third_party_abseil_cpp_absl_memory_memory",
+        "cronet_aml_third_party_abseil_cpp_absl_meta_type_traits",
+        "cronet_aml_third_party_abseil_cpp_absl_numeric_bits",
+        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
+        "cronet_aml_third_party_abseil_cpp_absl_numeric_representation",
+        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
+        "cronet_aml_third_party_abseil_cpp_absl_profiling_sample_recorder",
+        "cronet_aml_third_party_abseil_cpp_absl_random_distributions",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_distribution_caller",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_fast_uniform_bits",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_fastmath",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_generate_real",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_iostream_state_saver",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_nonsecure_base",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pcg_engine",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_engine",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_salted_seed_seq",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_traits",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_uniform_helper",
+        "cronet_aml_third_party_abseil_cpp_absl_random_internal_wide_multiply",
+        "cronet_aml_third_party_abseil_cpp_absl_random_random",
+        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception",
+        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences",
+        "cronet_aml_third_party_abseil_cpp_absl_status_status",
+        "cronet_aml_third_party_abseil_cpp_absl_status_statusor",
+        "cronet_aml_third_party_abseil_cpp_absl_strings_cord",
+        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal",
+        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions",
+        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle",
+        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info",
+        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_statistics",
+        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_update_scope",
+        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_update_tracker",
+        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
+        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format",
+        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal",
+        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
+        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
+        "cronet_aml_third_party_abseil_cpp_absl_synchronization_kernel_timeout_internal",
+        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
+        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
+        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
+        "cronet_aml_third_party_abseil_cpp_absl_time_time",
+        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
+        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access",
+        "cronet_aml_third_party_abseil_cpp_absl_types_compare",
+        "cronet_aml_third_party_abseil_cpp_absl_types_optional",
+        "cronet_aml_third_party_abseil_cpp_absl_types_span",
+        "cronet_aml_third_party_abseil_cpp_absl_types_variant",
+        "cronet_aml_third_party_abseil_cpp_absl_utility_utility",
     ],
     cflags: [
         "-DABSL_ALLOCATOR_NOTHROW=1",
@@ -4509,7 +4508,7 @@
 }
 
 // GN: //net/traffic_annotation:traffic_annotation
-filegroup {
+cc_defaults {
     name: "cronet_aml_net_traffic_annotation_traffic_annotation",
     srcs: [
         "net/traffic_annotation/network_traffic_annotation_android.cc",
@@ -4572,27 +4571,27 @@
 }
 
 // GN: //third_party/abseil-cpp:absl
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl",
 }
 
 // GN: //third_party/abseil-cpp/absl/algorithm:algorithm
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_algorithm_algorithm",
 }
 
 // GN: //third_party/abseil-cpp/absl/algorithm:container
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_algorithm_container",
 }
 
 // GN: //third_party/abseil-cpp/absl/base:atomic_hook
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_base_atomic_hook",
 }
 
 // GN: //third_party/abseil-cpp/absl/base:base
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_base_base",
     srcs: [
         "third_party/abseil-cpp/absl/base/internal/cycleclock.cc",
@@ -4604,47 +4603,47 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/base:base_internal
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_base_base_internal",
 }
 
 // GN: //third_party/abseil-cpp/absl/base:config
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_base_config",
 }
 
 // GN: //third_party/abseil-cpp/absl/base:core_headers
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_base_core_headers",
 }
 
 // GN: //third_party/abseil-cpp/absl/base:cycleclock_internal
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_base_cycleclock_internal",
 }
 
 // GN: //third_party/abseil-cpp/absl/base:dynamic_annotations
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_base_dynamic_annotations",
 }
 
 // GN: //third_party/abseil-cpp/absl/base:endian
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_base_endian",
 }
 
 // GN: //third_party/abseil-cpp/absl/base:errno_saver
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_base_errno_saver",
 }
 
 // GN: //third_party/abseil-cpp/absl/base:fast_type_id
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_base_fast_type_id",
 }
 
 // GN: //third_party/abseil-cpp/absl/base:log_severity
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
     srcs: [
         "third_party/abseil-cpp/absl/base/log_severity.cc",
@@ -4652,7 +4651,7 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/base:malloc_internal
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
     srcs: [
         "third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc",
@@ -4660,12 +4659,12 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/base:prefetch
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_base_prefetch",
 }
 
 // GN: //third_party/abseil-cpp/absl/base:raw_logging_internal
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
     srcs: [
         "third_party/abseil-cpp/absl/base/internal/raw_logging.cc",
@@ -4673,7 +4672,7 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/base:spinlock_wait
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
     srcs: [
         "third_party/abseil-cpp/absl/base/internal/spinlock_wait.cc",
@@ -4681,7 +4680,7 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/base:strerror
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_base_strerror",
     srcs: [
         "third_party/abseil-cpp/absl/base/internal/strerror.cc",
@@ -4689,7 +4688,7 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/base:throw_delegate
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
     srcs: [
         "third_party/abseil-cpp/absl/base/internal/throw_delegate.cc",
@@ -4697,72 +4696,72 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/cleanup:cleanup
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_cleanup_cleanup",
 }
 
 // GN: //third_party/abseil-cpp/absl/cleanup:cleanup_internal
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_cleanup_cleanup_internal",
 }
 
 // GN: //third_party/abseil-cpp/absl/container:btree
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_container_btree",
 }
 
 // GN: //third_party/abseil-cpp/absl/container:common
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_container_common",
 }
 
 // GN: //third_party/abseil-cpp/absl/container:common_policy_traits
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_container_common_policy_traits",
 }
 
 // GN: //third_party/abseil-cpp/absl/container:compressed_tuple
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_container_compressed_tuple",
 }
 
 // GN: //third_party/abseil-cpp/absl/container:container_memory
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_container_container_memory",
 }
 
 // GN: //third_party/abseil-cpp/absl/container:fixed_array
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_container_fixed_array",
 }
 
 // GN: //third_party/abseil-cpp/absl/container:flat_hash_map
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_container_flat_hash_map",
 }
 
 // GN: //third_party/abseil-cpp/absl/container:flat_hash_set
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_container_flat_hash_set",
 }
 
 // GN: //third_party/abseil-cpp/absl/container:hash_function_defaults
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_container_hash_function_defaults",
 }
 
 // GN: //third_party/abseil-cpp/absl/container:hash_policy_traits
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_container_hash_policy_traits",
 }
 
 // GN: //third_party/abseil-cpp/absl/container:hashtable_debug_hooks
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_container_hashtable_debug_hooks",
 }
 
 // GN: //third_party/abseil-cpp/absl/container:hashtablez_sampler
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler",
     srcs: [
         "third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc",
@@ -4771,42 +4770,42 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/container:inlined_vector
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_container_inlined_vector",
 }
 
 // GN: //third_party/abseil-cpp/absl/container:inlined_vector_internal
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_container_inlined_vector_internal",
 }
 
 // GN: //third_party/abseil-cpp/absl/container:layout
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_container_layout",
 }
 
 // GN: //third_party/abseil-cpp/absl/container:node_hash_map
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_container_node_hash_map",
 }
 
 // GN: //third_party/abseil-cpp/absl/container:node_hash_set
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_container_node_hash_set",
 }
 
 // GN: //third_party/abseil-cpp/absl/container:node_slot_policy
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_container_node_slot_policy",
 }
 
 // GN: //third_party/abseil-cpp/absl/container:raw_hash_map
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_map",
 }
 
 // GN: //third_party/abseil-cpp/absl/container:raw_hash_set
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set",
     srcs: [
         "third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc",
@@ -4814,7 +4813,7 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/debugging:debugging_internal
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
     srcs: [
         "third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc",
@@ -4824,7 +4823,7 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/debugging:demangle_internal
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
     srcs: [
         "third_party/abseil-cpp/absl/debugging/internal/demangle.cc",
@@ -4832,7 +4831,7 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/debugging:examine_stack
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack",
     srcs: [
         "third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc",
@@ -4840,7 +4839,7 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/debugging:failure_signal_handler
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler",
     srcs: [
         "third_party/abseil-cpp/absl/debugging/failure_signal_handler.cc",
@@ -4848,7 +4847,7 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/debugging:stacktrace
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
     srcs: [
         "third_party/abseil-cpp/absl/debugging/stacktrace.cc",
@@ -4856,7 +4855,7 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/debugging:symbolize
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
     srcs: [
         "third_party/abseil-cpp/absl/debugging/symbolize.cc",
@@ -4864,22 +4863,22 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/functional:any_invocable
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_functional_any_invocable",
 }
 
 // GN: //third_party/abseil-cpp/absl/functional:bind_front
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_functional_bind_front",
 }
 
 // GN: //third_party/abseil-cpp/absl/functional:function_ref
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_functional_function_ref",
 }
 
 // GN: //third_party/abseil-cpp/absl/hash:city
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_hash_city",
     srcs: [
         "third_party/abseil-cpp/absl/hash/internal/city.cc",
@@ -4887,7 +4886,7 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/hash:hash
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_hash_hash",
     srcs: [
         "third_party/abseil-cpp/absl/hash/internal/hash.cc",
@@ -4895,7 +4894,7 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/hash:low_level_hash
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash",
     srcs: [
         "third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc",
@@ -4903,22 +4902,22 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/memory:memory
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_memory_memory",
 }
 
 // GN: //third_party/abseil-cpp/absl/meta:type_traits
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_meta_type_traits",
 }
 
 // GN: //third_party/abseil-cpp/absl/numeric:bits
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_numeric_bits",
 }
 
 // GN: //third_party/abseil-cpp/absl/numeric:int128
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
     srcs: [
         "third_party/abseil-cpp/absl/numeric/int128.cc",
@@ -4926,12 +4925,12 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/numeric:representation
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_numeric_representation",
 }
 
 // GN: //third_party/abseil-cpp/absl/profiling:exponential_biased
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
     srcs: [
         "third_party/abseil-cpp/absl/profiling/internal/exponential_biased.cc",
@@ -4939,12 +4938,12 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/profiling:sample_recorder
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_profiling_sample_recorder",
 }
 
 // GN: //third_party/abseil-cpp/absl/random:distributions
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_random_distributions",
     srcs: [
         "third_party/abseil-cpp/absl/random/discrete_distribution.cc",
@@ -4953,42 +4952,42 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/random/internal:distribution_caller
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_distribution_caller",
 }
 
 // GN: //third_party/abseil-cpp/absl/random/internal:fast_uniform_bits
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_fast_uniform_bits",
 }
 
 // GN: //third_party/abseil-cpp/absl/random/internal:fastmath
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_fastmath",
 }
 
 // GN: //third_party/abseil-cpp/absl/random/internal:generate_real
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_generate_real",
 }
 
 // GN: //third_party/abseil-cpp/absl/random/internal:iostream_state_saver
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_iostream_state_saver",
 }
 
 // GN: //third_party/abseil-cpp/absl/random/internal:nonsecure_base
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_nonsecure_base",
 }
 
 // GN: //third_party/abseil-cpp/absl/random/internal:pcg_engine
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_pcg_engine",
 }
 
 // GN: //third_party/abseil-cpp/absl/random/internal:platform
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform",
     srcs: [
         "third_party/abseil-cpp/absl/random/internal/randen_round_keys.cc",
@@ -4996,7 +4995,7 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/random/internal:pool_urbg
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg",
     srcs: [
         "third_party/abseil-cpp/absl/random/internal/pool_urbg.cc",
@@ -5004,7 +5003,7 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/random/internal:randen
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen",
     srcs: [
         "third_party/abseil-cpp/absl/random/internal/randen.cc",
@@ -5012,12 +5011,12 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/random/internal:randen_engine
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_engine",
 }
 
 // GN: //third_party/abseil-cpp/absl/random/internal:randen_hwaes
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes",
     srcs: [
         "third_party/abseil-cpp/absl/random/internal/randen_detect.cc",
@@ -5025,7 +5024,7 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/random/internal:randen_hwaes_impl
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl",
     srcs: [
         "third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc",
@@ -5033,7 +5032,7 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/random/internal:randen_slow
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow",
     srcs: [
         "third_party/abseil-cpp/absl/random/internal/randen_slow.cc",
@@ -5041,12 +5040,12 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/random/internal:salted_seed_seq
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_salted_seed_seq",
 }
 
 // GN: //third_party/abseil-cpp/absl/random/internal:seed_material
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material",
     srcs: [
         "third_party/abseil-cpp/absl/random/internal/seed_material.cc",
@@ -5054,27 +5053,27 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/random/internal:traits
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_traits",
 }
 
 // GN: //third_party/abseil-cpp/absl/random/internal:uniform_helper
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_uniform_helper",
 }
 
 // GN: //third_party/abseil-cpp/absl/random/internal:wide_multiply
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_wide_multiply",
 }
 
 // GN: //third_party/abseil-cpp/absl/random:random
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_random_random",
 }
 
 // GN: //third_party/abseil-cpp/absl/random:seed_gen_exception
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception",
     srcs: [
         "third_party/abseil-cpp/absl/random/seed_gen_exception.cc",
@@ -5082,7 +5081,7 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/random:seed_sequences
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences",
     srcs: [
         "third_party/abseil-cpp/absl/random/seed_sequences.cc",
@@ -5090,7 +5089,7 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/status:status
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_status_status",
     srcs: [
         "third_party/abseil-cpp/absl/status/status.cc",
@@ -5099,7 +5098,7 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/status:statusor
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_status_statusor",
     srcs: [
         "third_party/abseil-cpp/absl/status/statusor.cc",
@@ -5107,7 +5106,7 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/strings:cord
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_strings_cord",
     srcs: [
         "third_party/abseil-cpp/absl/strings/cord.cc",
@@ -5117,7 +5116,7 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/strings:cord_internal
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal",
     srcs: [
         "third_party/abseil-cpp/absl/strings/internal/cord_internal.cc",
@@ -5131,7 +5130,7 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/strings:cordz_functions
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions",
     srcs: [
         "third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc",
@@ -5139,7 +5138,7 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/strings:cordz_handle
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle",
     srcs: [
         "third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc",
@@ -5147,7 +5146,7 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/strings:cordz_info
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info",
     srcs: [
         "third_party/abseil-cpp/absl/strings/internal/cordz_info.cc",
@@ -5155,22 +5154,22 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/strings:cordz_statistics
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_statistics",
 }
 
 // GN: //third_party/abseil-cpp/absl/strings:cordz_update_scope
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_update_scope",
 }
 
 // GN: //third_party/abseil-cpp/absl/strings:cordz_update_tracker
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_update_tracker",
 }
 
 // GN: //third_party/abseil-cpp/absl/strings:internal
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
     srcs: [
         "third_party/abseil-cpp/absl/strings/internal/escaping.cc",
@@ -5180,12 +5179,12 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/strings:str_format
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_strings_str_format",
 }
 
 // GN: //third_party/abseil-cpp/absl/strings:str_format_internal
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal",
     srcs: [
         "third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc",
@@ -5198,7 +5197,7 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/strings:strings
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
     srcs: [
         "third_party/abseil-cpp/absl/strings/ascii.cc",
@@ -5219,7 +5218,7 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/synchronization:graphcycles_internal
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
     srcs: [
         "third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc",
@@ -5227,12 +5226,12 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/synchronization:kernel_timeout_internal
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_synchronization_kernel_timeout_internal",
 }
 
 // GN: //third_party/abseil-cpp/absl/synchronization:synchronization
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
     srcs: [
         "third_party/abseil-cpp/absl/synchronization/barrier.cc",
@@ -5246,7 +5245,7 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/time/internal/cctz:civil_time
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
     srcs: [
         "third_party/abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc",
@@ -5254,7 +5253,7 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/time/internal/cctz:time_zone
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
     srcs: [
         "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc",
@@ -5270,7 +5269,7 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/time:time
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_time_time",
     srcs: [
         "third_party/abseil-cpp/absl/time/civil_time.cc",
@@ -5282,7 +5281,7 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/types:bad_optional_access
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
     srcs: [
         "third_party/abseil-cpp/absl/types/bad_optional_access.cc",
@@ -5290,7 +5289,7 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/types:bad_variant_access
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access",
     srcs: [
         "third_party/abseil-cpp/absl/types/bad_variant_access.cc",
@@ -5298,32 +5297,32 @@
 }
 
 // GN: //third_party/abseil-cpp/absl/types:compare
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_types_compare",
 }
 
 // GN: //third_party/abseil-cpp/absl/types:optional
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_types_optional",
 }
 
 // GN: //third_party/abseil-cpp/absl/types:span
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_types_span",
 }
 
 // GN: //third_party/abseil-cpp/absl/types:variant
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_types_variant",
 }
 
 // GN: //third_party/abseil-cpp/absl/utility:utility
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_abseil_cpp_absl_utility_utility",
 }
 
 // GN: //third_party/android_ndk:cpu_features
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_android_ndk_cpu_features",
     srcs: [
         "third_party/android_ndk/sources/android/cpufeatures/cpu-features.c",
@@ -5331,7 +5330,7 @@
 }
 
 // GN: //third_party/ashmem:ashmem
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_ashmem_ashmem",
     srcs: [
         "third_party/ashmem/ashmem-dev.c",
@@ -5344,6 +5343,8 @@
     host_supported: true,
     defaults: [
         "cronet_aml_defaults",
+        "cronet_aml_third_party_boringssl_boringssl_asm",
+        "cronet_aml_third_party_boringssl_src_third_party_fiat_fiat_license",
     ],
     cflags: [
         "-DANDROID",
@@ -5388,7 +5389,6 @@
         x86: {
             srcs: [
                 ":cronet_aml_third_party_boringssl_boringssl_asm_x86",
-                ":cronet_aml_third_party_boringssl_src_third_party_fiat_fiat_license",
                 "third_party/boringssl/err_data.c",
                 "third_party/boringssl/src/crypto/asn1/a_bitstr.c",
                 "third_party/boringssl/src/crypto/asn1/a_bool.c",
@@ -5659,8 +5659,6 @@
         },
         x86_64: {
             srcs: [
-                ":cronet_aml_third_party_boringssl_boringssl_asm",
-                ":cronet_aml_third_party_boringssl_src_third_party_fiat_fiat_license",
                 "third_party/boringssl/err_data.c",
                 "third_party/boringssl/src/crypto/asn1/a_bitstr.c",
                 "third_party/boringssl/src/crypto/asn1/a_bool.c",
@@ -5933,7 +5931,7 @@
 }
 
 // GN: //third_party/boringssl:boringssl_asm
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_boringssl_boringssl_asm",
     srcs: [
         "third_party/boringssl/linux-x86_64/crypto/chacha/chacha-x86_64.S",
@@ -5960,7 +5958,7 @@
 }
 
 // GN: //third_party/boringssl:boringssl_asm(//build/toolchain/android:android_clang_x86)
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_boringssl_boringssl_asm___build_toolchain_android_android_clang_x86__x86",
     srcs: [
         "third_party/boringssl/linux-x86_64/crypto/chacha/chacha-x86_64.S",
@@ -6006,7 +6004,7 @@
 }
 
 // GN: //third_party/boringssl/src/third_party/fiat:fiat_license
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_boringssl_src_third_party_fiat_fiat_license",
 }
 
@@ -6014,7 +6012,6 @@
 cc_library_static {
     name: "cronet_aml_third_party_brotli_common",
     srcs: [
-        ":cronet_aml_third_party_brotli_headers",
         "third_party/brotli/common/constants.c",
         "third_party/brotli/common/context.c",
         "third_party/brotli/common/dictionary.c",
@@ -6024,6 +6021,7 @@
     ],
     defaults: [
         "cronet_aml_defaults",
+        "cronet_aml_third_party_brotli_headers",
     ],
     cflags: [
         "-DANDROID",
@@ -6057,7 +6055,6 @@
 cc_library_static {
     name: "cronet_aml_third_party_brotli_dec",
     srcs: [
-        ":cronet_aml_third_party_brotli_headers",
         "third_party/brotli/dec/bit_reader.c",
         "third_party/brotli/dec/decode.c",
         "third_party/brotli/dec/huffman.c",
@@ -6068,6 +6065,7 @@
     ],
     defaults: [
         "cronet_aml_defaults",
+        "cronet_aml_third_party_brotli_headers",
     ],
     cflags: [
         "-DANDROID",
@@ -6098,7 +6096,7 @@
 }
 
 // GN: //third_party/brotli:headers
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_brotli_headers",
 }
 
@@ -6407,7 +6405,6 @@
 cc_library_static {
     name: "cronet_aml_third_party_icu_icuuc_private",
     srcs: [
-        ":cronet_aml_third_party_icu_icuuc_public",
         "third_party/icu/source/common/appendable.cpp",
         "third_party/icu/source/common/bmpset.cpp",
         "third_party/icu/source/common/brkeng.cpp",
@@ -6611,6 +6608,7 @@
     host_supported: true,
     defaults: [
         "cronet_aml_defaults",
+        "cronet_aml_third_party_icu_icuuc_public",
     ],
     cflags: [
         "-DANDROID",
@@ -6665,7 +6663,7 @@
 }
 
 // GN: //third_party/icu:icuuc_public
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_icu_icuuc_public",
 }
 
@@ -7136,13 +7134,10 @@
     cpp_std: "c++20",
 }
 
-// GN: //third_party/protobuf:protoc(//build/toolchain/linux:clang_x64)
+// GN: //third_party/protobuf:protoc
 cc_binary {
-    name: "cronet_aml_third_party_protobuf_protoc___build_toolchain_linux_clang_x64_",
+    name: "cronet_aml_third_party_protobuf_protoc",
     srcs: [
-        ":cronet_aml_buildtools_third_party_libc___libc__",
-        ":cronet_aml_buildtools_third_party_libc__abi_libc__abi",
-        ":cronet_aml_buildtools_third_party_libunwind_libunwind",
         "third_party/protobuf/src/google/protobuf/compiler/main.cc",
     ],
     static_libs: [
@@ -7153,6 +7148,9 @@
     host_supported: true,
     device_supported: false,
     defaults: [
+        "cronet_aml_buildtools_third_party_libc___libc__",
+        "cronet_aml_buildtools_third_party_libc__abi_libc__abi",
+        "cronet_aml_buildtools_third_party_libunwind_libunwind",
         "cronet_aml_defaults",
     ],
     cflags: [
@@ -7346,12 +7344,6 @@
 cc_library_static {
     name: "cronet_aml_third_party_zlib_zlib",
     srcs: [
-        ":cronet_aml_third_party_android_ndk_cpu_features",
-        ":cronet_aml_third_party_zlib_zlib_adler32_simd",
-        ":cronet_aml_third_party_zlib_zlib_common_headers",
-        ":cronet_aml_third_party_zlib_zlib_crc32_simd",
-        ":cronet_aml_third_party_zlib_zlib_inflate_chunk_simd",
-        ":cronet_aml_third_party_zlib_zlib_slide_hash_simd",
         "third_party/zlib/adler32.c",
         "third_party/zlib/compress.c",
         "third_party/zlib/cpu_features.c",
@@ -7371,6 +7363,12 @@
     host_supported: true,
     defaults: [
         "cronet_aml_defaults",
+        "cronet_aml_third_party_android_ndk_cpu_features",
+        "cronet_aml_third_party_zlib_zlib_adler32_simd",
+        "cronet_aml_third_party_zlib_zlib_common_headers",
+        "cronet_aml_third_party_zlib_zlib_crc32_simd",
+        "cronet_aml_third_party_zlib_zlib_inflate_chunk_simd",
+        "cronet_aml_third_party_zlib_zlib_slide_hash_simd",
     ],
     cflags: [
         "-DADLER32_SIMD_SSSE3",
@@ -7421,7 +7419,7 @@
 }
 
 // GN: //third_party/zlib:zlib_adler32_simd
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_zlib_zlib_adler32_simd",
     srcs: [
         "third_party/zlib/adler32_simd.c",
@@ -7429,12 +7427,12 @@
 }
 
 // GN: //third_party/zlib:zlib_common_headers
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_zlib_zlib_common_headers",
 }
 
 // GN: //third_party/zlib:zlib_crc32_simd
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_zlib_zlib_crc32_simd",
     srcs: [
         "third_party/zlib/crc32_simd.c",
@@ -7443,7 +7441,7 @@
 }
 
 // GN: //third_party/zlib:zlib_inflate_chunk_simd
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_zlib_zlib_inflate_chunk_simd",
     srcs: [
         "third_party/zlib/contrib/optimizations/inffast_chunk.c",
@@ -7452,7 +7450,7 @@
 }
 
 // GN: //third_party/zlib:zlib_slide_hash_simd
-filegroup {
+cc_defaults {
     name: "cronet_aml_third_party_zlib_zlib_slide_hash_simd",
 }
 
@@ -7480,7 +7478,6 @@
 cc_library_static {
     name: "cronet_aml_url_url",
     srcs: [
-        ":cronet_aml_ipc_param_traits",
         "url/gurl.cc",
         "url/origin.cc",
         "url/scheme_host_port.cc",
@@ -7537,6 +7534,7 @@
     ],
     defaults: [
         "cronet_aml_defaults",
+        "cronet_aml_ipc_param_traits",
     ],
     cflags: [
         "-DANDROID",
diff --git a/tools/gn2bp/gen_android_bp b/tools/gn2bp/gen_android_bp
index 422e126..24d5584 100755
--- a/tools/gn2bp/gen_android_bp
+++ b/tools/gn2bp/gen_android_bp
@@ -377,6 +377,9 @@
     value = getattr(self, name)
     return write_blueprint_key_value(output, name, value, sort)
 
+  def is_compiled(self):
+    return self.type not in ('genrule', 'filegroup', 'cc_defaults')
+
 
 class Blueprint(object):
   """In-memory representation of an Android.bp file."""
@@ -990,7 +993,7 @@
   elif target.type == 'shared_library':
     module = Module('cc_library_shared', bp_module_name, gn_target_name)
   elif target.type == 'source_set':
-    module = Module('filegroup', bp_module_name, gn_target_name)
+    module = Module('cc_defaults', bp_module_name, gn_target_name)
   elif target.type == 'group':
     # "group" targets are resolved recursively by gn_utils.get_target().
     # There's nothing we need to do at this level for them.
@@ -1070,8 +1073,7 @@
           module.local_include_dirs.append(sysroot + "/usr/include/x86_64-linux-gnu")
         module.local_include_dirs.append(sysroot + "/usr/include")
 
-  module_is_compiled = module.type not in ('genrule', 'filegroup')
-  if module_is_compiled:
+  if module.is_compiled():
     module.host_supported = target.host_supported()
     module.device_supported = target.device_supported()
 
@@ -1124,8 +1126,9 @@
         module.genrule_headers.add(dep_module.name)
         module.genrule_headers.update(dep_module.genrule_headers)
 
-    # For filegroups and genrule, recurse but don't apply the deps.
-    if not module_is_compiled:
+    # For cc_defaults, filegroups, and genrule, recurse but don't apply the
+    # deps.
+    if not module.is_compiled():
       continue
 
     if dep_module is None:
@@ -1134,8 +1137,8 @@
       module.shared_libs.add(dep_module.name)
     elif dep_module.type == 'cc_library_static':
       module.static_libs.add(dep_module.name)
-    elif dep_module.type == 'filegroup':
-      module.srcs.add(':' + dep_module.name)
+    elif dep_module.type == 'cc_defaults':
+      module.defaults.append(dep_module.name)
     elif dep_module.type == 'genrule':
       module.generated_headers.update(dep_module.genrule_headers)
       module.srcs.update(dep_module.genrule_srcs)
@@ -1160,7 +1163,7 @@
     module.srcs.clear()
   elif module.name == "cronet_aml_third_party_boringssl_boringssl":
     x86_srcs = module.srcs.copy()
-    x86_srcs.remove(":cronet_aml_third_party_boringssl_boringssl_asm")
+    x86_srcs.discard(":cronet_aml_third_party_boringssl_boringssl_asm")
     x86_srcs.add(":cronet_aml_third_party_boringssl_boringssl_asm_x86")
     module.arch['x86'] = {'srcs': x86_srcs}
     module.arch['x86_64'] = {'srcs': module.srcs.copy()}
diff --git a/tools/gn2bp/gn_utils.py b/tools/gn2bp/gn_utils.py
index 31cc2e1..494ed25 100644
--- a/tools/gn2bp/gn_utils.py
+++ b/tools/gn2bp/gn_utils.py
@@ -280,7 +280,9 @@
       target.proto_paths.update(self.get_proto_paths(proto_desc))
       target.proto_exports.update(self.get_proto_exports(proto_desc))
       target.proto_in_dir = self.get_proto_in_dir(proto_desc)
-      target.deps.update(proto_desc.get('deps', []))
+      for gn_proto_deps_name in proto_desc.get('deps', []):
+        dep = self.parse_gn_desc(gn_desc, gn_proto_deps_name)
+        target.deps.add(dep.name)
       target.arch[arch].sources.update(proto_desc.get('sources', []))
       assert (all(x.endswith('.proto') for x in target.arch[arch].sources))
     elif target.type == 'source_set':
@@ -324,24 +326,23 @@
     # Recurse in dependencies.
     for gn_dep_name in desc.get('deps', []):
       dep = self.parse_gn_desc(gn_desc, gn_dep_name)
-      dep_name = label_without_toolchain(gn_dep_name)
       if dep.is_third_party_dep_:
-        target.deps.add(dep_name)
+        target.deps.add(dep.name)
       elif dep.type == 'proto_library':
-        target.proto_deps.add(dep_name)
-        target.transitive_proto_deps.add(dep_name)
+        target.proto_deps.add(dep.name)
+        target.transitive_proto_deps.add(dep.name)
         target.proto_paths.update(dep.proto_paths)
         target.transitive_proto_deps.update(dep.transitive_proto_deps)
       elif dep.type == 'source_set':
-        target.source_set_deps.add(dep_name)
+        target.source_set_deps.add(dep.name)
         target.update(dep)  # Bubble up source set's cflags/ldflags etc.
       elif dep.type == 'group':
         target.update(dep)  # Bubble up groups's cflags/ldflags etc.
       elif dep.type in ['action', 'action_foreach', 'copy']:
         if proto_target_type is None:
-          target.deps.add(dep_name)
+          target.deps.add(dep.name)
       elif dep.type in LINKER_UNIT_TYPES:
-        target.deps.add(dep_name)
+        target.deps.add(dep.name)
       elif dep.type == 'java_group':
         # Explicitly break dependency chain when a java_group is added.
         # Java sources are collected and eventually compiled as one large
@@ -351,7 +352,7 @@
       if dep.type == 'static_library':
         # Bubble up static_libs. Necessary, since soong does not propagate
         # static_libs up the build tree.
-        target.transitive_static_libs_deps.add(dep_name)
+        target.transitive_static_libs_deps.add(dep.name)
 
       target.transitive_static_libs_deps.update(dep.transitive_static_libs_deps)
       target.deps.update(target.transitive_static_libs_deps)