diff --git a/infra/args.list b/infra/args.list index db5df831..f021e13f 100644 --- a/infra/args.list +++ b/infra/args.list @@ -8,22 +8,14 @@ action_pool_depth added_rust_stdlib_libs Current value (from the default) = [] - From //build/config/rust.gni:60 + From //build/config/rust.gni:82 Any extra std rlibs in your Rust toolchain, relative to the standard Rust toolchain. Typically used with 'rust_sysroot_absolute' -aida_endpoint - Current value (from the default) = "" - From //chrome/browser/devtools/buildflags.gni:3 - -aida_scope - Current value (from the default) = "" - From //chrome/browser/devtools/buildflags.gni:4 - allow_critical_memory_pressure_handling_in_foreground Current value (from the default) = false - From //content/common/features.gni:15 + From //content/common/features.gni:16 allow_jni_multiplexing Current value (from the default) = false @@ -67,7 +59,7 @@ also_build_lacros_chrome_for_architecture alternate_cdm_storage_id_key Current value (from the default) = "" - From //media/media_options.gni:249 + From //media/media_options.gni:252 If |enable_cdm_storage_id| is set, then an implementation specific key must also be provided. It can be provided by defining CDM_STORAGE_ID_KEY @@ -113,17 +105,17 @@ angle_build_capture_replay_tests angle_build_mesa Current value (from the default) = false - From //third_party/angle/gni/angle.gni:289 + From //third_party/angle/gni/angle.gni:293 angle_build_tests Current value (from the default) = true - From //third_party/angle/gni/angle.gni:302 + From //third_party/angle/gni/angle.gni:306 True if we want to build the ANGLE test suites. On by default in most configs. angle_build_vulkan_system_info Current value (from the default) = true - From //third_party/angle/gni/angle.gni:283 + From //third_party/angle/gni/angle.gni:287 angle_capture_replay_composite_file_id Current value (from the default) = 1 @@ -150,6 +142,10 @@ angle_delegate_workers embedder API. In Chromium code base, it results in sending tasks to the worker thread pool. +angle_dump_pipeline_cache_graph + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:241 + angle_egl_extension Current value (from the default) = "" From //third_party/angle/BUILD.gn:64 @@ -171,11 +167,11 @@ angle_enable_annotator_run_time_checks angle_enable_apple_translator_workarounds Current value (from the default) = false - From //third_party/angle/gni/angle.gni:297 + From //third_party/angle/gni/angle.gni:301 angle_enable_cgl Current value (from the default) = false - From //third_party/angle/gni/angle.gni:294 + From //third_party/angle/gni/angle.gni:298 TODO(jdarpinian): Support enabling CGL and EAGL at the same time using the soft linking code. Also support disabling both for Metal-only builds. @@ -238,7 +234,7 @@ angle_enable_d3d11 angle_enable_d3d11_compositor_native_window Current value (from the default) = false - From //third_party/angle/gni/angle.gni:261 + From //third_party/angle/gni/angle.gni:265 angle_enable_d3d9 Current value (from the default) = false @@ -246,19 +242,19 @@ angle_enable_d3d9 angle_enable_desktop_glsl Current value (from the default) = false - From //third_party/angle/gni/angle.gni:229 + From //third_party/angle/gni/angle.gni:232 Translator frontend support: angle_enable_eagl Current value (from the default) = false - From //third_party/angle/gni/angle.gni:267 + From //third_party/angle/gni/angle.gni:271 We should use EAGL (ES) on iOS except on Mac Catalyst on Intel CPUs, which uses CGL (desktop GL). angle_enable_essl Current value (from the default) = true - From //third_party/angle/gni/angle.gni:233 + From //third_party/angle/gni/angle.gni:236 angle_enable_gl Current value (from the default) = true @@ -288,17 +284,17 @@ angle_enable_global_mutex_recursion angle_enable_glsl Current value (from the default) = true - From //third_party/angle/gni/angle.gni:234 + From //third_party/angle/gni/angle.gni:237 angle_enable_hlsl Current value (from the default) = false - From //third_party/angle/gni/angle.gni:232 + From //third_party/angle/gni/angle.gni:235 Translator backend support: angle_enable_memory_alloc_logging Current value (from the default) = false - From //third_party/angle/gni/angle.gni:245 + From //third_party/angle/gni/angle.gni:249 Memory allocation logging support. This feature is for debugging only. Disabled by default. @@ -317,44 +313,44 @@ angle_enable_null angle_enable_overlay Current value (from the default) = true - From //third_party/angle/gni/angle.gni:287 + From //third_party/angle/gni/angle.gni:291 Enable overlay by default when debug layers are enabled. This is currently only implemented on Vulkan. angle_enable_perf_counter_output Current value (from the default) = false - From //third_party/angle/gni/angle.gni:264 + From //third_party/angle/gni/angle.gni:268 Disable performance counter output by default angle_enable_renderdoc Current value (from the default) = true - From //third_party/angle/gni/angle.gni:306 + From //third_party/angle/gni/angle.gni:310 angle_enable_share_context_lock Current value (from the default) = false - From //third_party/angle/BUILD.gn:70 + From //third_party/angle/BUILD.gn:69 angle_enable_swiftshader Current value (from the default) = true - From //third_party/angle/gni/angle.gni:226 + From //third_party/angle/gni/angle.gni:229 angle_enable_trace Current value (from the default) = false - From //third_party/angle/gni/angle.gni:235 + From //third_party/angle/gni/angle.gni:238 angle_enable_trace_android_logcat Current value (from the default) = false - From //third_party/angle/gni/angle.gni:236 + From //third_party/angle/gni/angle.gni:239 angle_enable_trace_events Current value (from the default) = false - From //third_party/angle/gni/angle.gni:237 + From //third_party/angle/gni/angle.gni:240 angle_enable_unwind_backtrace_support Current value (from the default) = false - From //third_party/angle/gni/angle.gni:241 + From //third_party/angle/gni/angle.gni:245 Unwind backtrace support. This feature is currently only implemented on Android for debugging purposes. Disabled by default. @@ -383,7 +379,13 @@ angle_enable_vulkan_system_info angle_enable_vulkan_validation_layers Current value (from the default) = true - From //third_party/angle/gni/angle.gni:254 + From //third_party/angle/gni/angle.gni:258 + +angle_enable_wgpu + Current value (from the default) = true + From //third_party/angle/gni/angle.gni:200 + + Disable WGPU backend. angle_expose_glx_entry_points Current value (from the default) = false @@ -424,7 +426,7 @@ angle_glesv2_extension angle_has_astc_encoder Current value (from the default) = false - From //third_party/angle/gni/angle.gni:202 + From //third_party/angle/gni/angle.gni:205 ASTC emulation is only built on standalone non-android builds @@ -436,7 +438,7 @@ angle_has_frame_capture angle_has_histograms Current value (from the default) = true - From //third_party/angle/gni/angle.gni:299 + From //third_party/angle/gni/angle.gni:303 angle_has_rapidjson Current value (from the default) = true @@ -482,7 +484,7 @@ angle_standalone angle_test_enable_system_egl Current value (from the default) = false - From //third_party/angle/gni/angle.gni:206 + From //third_party/angle/gni/angle.gni:209 angle_use_custom_libvulkan Current value (from the default) = true @@ -521,29 +523,29 @@ angle_vulkan_headers_dir Current value = "//third_party/vulkan-deps/vulkan-headers/src" From //.gn:58 Overridden from the default = "//third_party/angle/third_party/vulkan-deps/vulkan-headers/src" - From //third_party/angle/gni/angle.gni:275 + From //third_party/angle/gni/angle.gni:279 angle_vulkan_loader_dir Current value = "//third_party/vulkan-deps/vulkan-loader/src" From //.gn:59 Overridden from the default = "//third_party/angle/third_party/vulkan-deps/vulkan-loader/src" - From //third_party/angle/gni/angle.gni:277 + From //third_party/angle/gni/angle.gni:281 angle_vulkan_tools_dir Current value = "//third_party/vulkan-deps/vulkan-tools/src" From //.gn:60 Overridden from the default = "//third_party/angle/third_party/vulkan-deps/vulkan-tools/src" - From //third_party/angle/gni/angle.gni:279 + From //third_party/angle/gni/angle.gni:283 angle_vulkan_validation_layers_dir Current value = "//third_party/vulkan-deps/vulkan-validation-layers/src" From //.gn:62 Overridden from the default = "//third_party/angle/third_party/vulkan-deps/vulkan-validation-layers/src" - From //third_party/angle/gni/angle.gni:281 + From //third_party/angle/gni/angle.gni:285 angle_wayland_dir Current value (from the default) = "//third_party/angle/third_party/wayland" - From //third_party/angle/gni/angle.gni:272 + From //third_party/angle/gni/angle.gni:276 Directory where to find wayland source files @@ -578,7 +580,7 @@ auto_profile_path backup_ref_ptr_poison_oob_ptr Current value (from the default) = false - From //base/allocator/partition_allocator/partition_alloc.gni:200 + From //base/allocator/partition_allocator/partition_alloc.gni:220 Set to `enable_backup_ref_ptr_support && has_64_bit_pointers` when enabling. @@ -618,6 +620,14 @@ blink_gc_plugin_option_warn_unneeded_finalizer a class has an empty destructor which would be unnecessarily invoked when finalized. +blink_heap_inside_shared_library + Current value (from the default) = true + From //third_party/blink/renderer/platform/heap/BUILD.gn:17 + + Whether the blink heap code is compiled into a shared library. + Embedders like CEF use this flag to include blink in a shared library under + non-component build. + blink_symbol_level Current value (from the default) = -1 From //third_party/blink/renderer/config.gni:40 @@ -637,17 +647,17 @@ blink_symbol_level branding_file_path Current value (from the default) = "//chrome/app/theme/chromium/BRANDING" - From //build/config/chrome_build.gni:65 + From //build/config/chrome_build.gni:76 The path to the BRANDING file in chrome/app/theme. branding_path_component Current value (from the default) = "chromium" - From //build/config/chrome_build.gni:58 + From //build/config/chrome_build.gni:69 branding_path_product Current value (from the default) = "chromium" - From //build/config/chrome_build.gni:59 + From //build/config/chrome_build.gni:70 build_allocation_stack_trace_recorder Current value (from the default) = false @@ -672,19 +682,19 @@ build_angle_deqp_tests build_angle_gles1_conform_tests Current value (from the default) = false - From //third_party/angle/src/tests/BUILD.gn:11 + From //third_party/angle/src/tests/BUILD.gn:10 build_angle_perftests Current value (from the default) = true - From //third_party/angle/src/tests/BUILD.gn:14 + From //third_party/angle/src/tests/BUILD.gn:13 build_angle_trace_perf_tests Current value (from the default) = false - From //third_party/angle/src/tests/BUILD.gn:12 + From //third_party/angle/src/tests/BUILD.gn:11 build_angle_trace_tests Current value (from the default) = false - From //third_party/angle/src/tests/BUILD.gn:18 + From //third_party/angle/src/tests/BUILD.gn:17 build_contextual_search Current value (from the default) = false @@ -714,16 +724,19 @@ build_tflite_with_xnnpack Current value (from the default) = true From //third_party/tflite/features.gni:11 -build_webnn_on_cros +build_webnn_with_tflite_model_loader Current value (from the default) = false - From //third_party/blink/renderer/modules/ml/webnn/features.gni:14 + From //third_party/blink/renderer/modules/ml/webnn/features.gni:15 - This build flag enables WebNN on ChromeOS platform to access hardware - acceleration by using ModelLoader mojo interface. + This build flag enables WebNN to access hardware acceleration using TFLite + via the ModelLoader mojo interface. build_webnn_with_xnnpack Current value (from the default) = true - From //third_party/blink/renderer/modules/ml/webnn/features.gni:10 + From //third_party/blink/renderer/modules/ml/webnn/features.gni:9 + + This enables building WebNN with XNNPACK. Currently only available for + Windows, macOS and Linux on x64, x86 and arm64. build_with_internal_optimization_guide Current value (from the default) = false @@ -782,6 +795,21 @@ cc_wrapper Set to "ccache", "icecc" or "distcc". Probably doesn't work on windows. +chrome_certificate_policies_supported + Current value (from the default) = true + From //chrome/common/features.gni:46 + + Platforms where Chrome x509 server certificate enterprise policies are + supported. This must must match the supported_on/future_on list of the + policy in the following policies stored in + components/policy/resources/templates/policy_definitions/: + + * CertificateManagement/CACertificates.yaml + * CertificateManagement/CADistrustedCertificates.yaml + * CertificateManagement/CAHintCertificates.yaml + * CertificateManagement/CAPlatformIntegrationEnabled.yaml + + chrome_enable_logging_by_default Current value (from the default) = true From //chrome/common/features.gni:34 @@ -821,24 +849,13 @@ chrome_root_store_optional builtin verifier using platform roots, depending on the platform. See https://crbug.com/1216547 for status. -chrome_root_store_policy_supported - Current value (from the default) = false - From //chrome/common/features.gni:42 - - Platforms where the ChromeRootStoreEnabled enterprise policy is - supported. This must must match the supported_on/future_on list of the - policy in policy_templates.json and be a subset of the - chrome_root_store_optional platforms. - See https://crbug.com/1228958. This can be removed when the Chrome Root - Store is unconditionally enabled on all platforms. - chrome_root_store_supported Current value (from the default) = true From //net/features.gni:68 chrome_wide_echo_cancellation_supported Current value (from the default) = true - From //media/media_options.gni:342 + From //media/media_options.gni:345 Currently it is available on Win, Mac and Linux, since it requires the audio service to run in a separate process. @@ -916,11 +933,13 @@ clang_use_default_sample_profile clang_version Current value (from the default) = "18" - From //build/toolchain/toolchain.gni:50 + From //build/toolchain/toolchain.gni:53 + + TODO(crbug.com/1517549): Remove in the next Clang roll. com_init_check_hook_disabled Current value (from the default) = false - From //base/BUILD.gn:62 + From //base/BUILD.gn:63 Set to true to disable COM init check hooks. @@ -975,6 +994,13 @@ concurrent_links The default to use varies by platform and by the amount of memory available, so we call out to a script to get the right value. +content_enable_legacy_ipc + Current value (from the default) = false + From //content/common/features.gni:24 + + We allow legacy IPC to be enabled for Android (GIN Java bridge), and + Pepper usage. + content_shell_major_version Current value (from the default) = "999" From //content/shell/BUILD.gn:45 @@ -1007,7 +1033,7 @@ cppgc_allow_allocations_in_prefinalizers cppgc_enable_2gb_cage Current value (from the default) = false - From //v8/gni/v8.gni:127 + From //v8/gni/v8.gni:132 Enable 2gb cage for fast compression/decompression. Currently disabled due to an increased number of OOMs. @@ -1018,25 +1044,25 @@ cppgc_enable_caged_heap cppgc_enable_larger_cage Current value (from the default) = false - From //v8/gni/v8.gni:130 + From //v8/gni/v8.gni:135 Enable support for larger cages, up to 16GB. cppgc_enable_object_names Current value (from the default) = false - From //v8/gni/v8.gni:111 + From //v8/gni/v8.gni:116 Enable object names in cppgc for profiling purposes. cppgc_enable_pointer_compression Current value (from the default) = false - From //v8/gni/v8.gni:123 + From //v8/gni/v8.gni:128 Enable pointer compression in cppgc. cppgc_enable_slim_write_barrier Current value (from the default) = true - From //v8/gni/v8.gni:120 + From //v8/gni/v8.gni:125 Enables a slim write barrier that only performs a single check in the fast path and delegates all further checks to a slow path call. This is fast @@ -1051,13 +1077,13 @@ cppgc_enable_verify_heap cppgc_enable_young_generation Current value (from the default) = false - From //v8/gni/v8.gni:114 + From //v8/gni/v8.gni:119 Enable young generation in cppgc. cppgc_is_standalone Current value (from the default) = false - From //v8/gni/v8.gni:108 + From //v8/gni/v8.gni:113 crashpad_dependencies Current value = "chromium" @@ -1112,13 +1138,13 @@ custom_vulkan_loader_library_name dawn_always_assert Current value (from the default) = false - From //third_party/dawn/scripts/dawn_features.gni:71 + From //third_party/dawn/scripts/dawn_features.gni:66 Enable Dawn's ASSERTs even in release builds dawn_complete_static_libs Current value (from the default) = false - From //third_party/dawn/scripts/dawn_features.gni:76 + From //third_party/dawn/scripts/dawn_features.gni:71 Should the Dawn static libraries be fully linked vs. GN's default of treating them as source sets. This is useful for people using Dawn @@ -1126,79 +1152,73 @@ dawn_complete_static_libs dawn_enable_d3d11 Current value (from the default) = false - From //third_party/dawn/scripts/dawn_features.gni:79 + From //third_party/dawn/scripts/dawn_features.gni:74 Enables the compilation of Dawn's D3D11 backend dawn_enable_d3d12 Current value (from the default) = false - From //third_party/dawn/scripts/dawn_features.gni:82 + From //third_party/dawn/scripts/dawn_features.gni:77 Enables the compilation of Dawn's D3D12 backend dawn_enable_desktop_gl Current value (from the default) = true - From //third_party/dawn/scripts/dawn_features.gni:93 + From //third_party/dawn/scripts/dawn_features.gni:88 Enables the compilation of Dawn's OpenGL backend (best effort, non-conformant) dawn_enable_error_injection Current value (from the default) = true - From //third_party/dawn/scripts/dawn_features.gni:108 + From //third_party/dawn/scripts/dawn_features.gni:103 dawn_enable_metal Current value (from the default) = false - From //third_party/dawn/scripts/dawn_features.gni:85 + From //third_party/dawn/scripts/dawn_features.gni:80 Enables the compilation of Dawn's Metal backend dawn_enable_null Current value (from the default) = true - From //third_party/dawn/scripts/dawn_features.gni:89 + From //third_party/dawn/scripts/dawn_features.gni:84 Enables the compilation of Dawn's Null backend (required for unittests, obviously non-conformant) dawn_enable_opengles Current value (from the default) = true - From //third_party/dawn/scripts/dawn_features.gni:99 + From //third_party/dawn/scripts/dawn_features.gni:94 dawn_enable_spirv_validation Current value (from the default) = true - From //third_party/dawn/scripts/dawn_features.gni:126 + From //third_party/dawn/scripts/dawn_features.gni:121 Disable SPIR-V validation on Android because it adds a significant amount to the binary size, and Tint's output should be well-formed. dawn_enable_vulkan Current value (from the default) = true - From //third_party/dawn/scripts/dawn_features.gni:103 + From //third_party/dawn/scripts/dawn_features.gni:98 Enables the compilation of Dawn's Vulkan backend Disables vulkan when compiling for UWP, since UWP only supports d3d dawn_enable_vulkan_loader Current value (from the default) = true - From //third_party/dawn/scripts/dawn_features.gni:122 + From //third_party/dawn/scripts/dawn_features.gni:117 dawn_enable_vulkan_validation_layers Current value (from the default) = true - From //third_party/dawn/scripts/dawn_features.gni:117 + From //third_party/dawn/scripts/dawn_features.gni:112 -dawn_use_angle +dawn_tests_use_angle Current value (from the default) = true - From //third_party/dawn/scripts/dawn_features.gni:55 - - TODO(dawn:1545): Re-enable dawn_use_angle on Android. In non-component - builds, this is adding a dependency on ANGLE's libEGL.so and - libGLESv2.so, apparently without regard for the use_static_angle=true - GN variable. Chromium's linker on Android disallows production of more - than one shared object per target (?). + From //third_party/dawn/scripts/dawn_features.gni:50 dawn_use_built_dxc Current value (from the default) = false - From //third_party/dawn/scripts/dawn_features.gni:66 + From //third_party/dawn/scripts/dawn_features.gni:61 Whether we allow building DXC. DXC requires SM6.0+ which is blocklisted on x86, @@ -1207,7 +1227,7 @@ dawn_use_built_dxc dawn_use_swiftshader Current value (from the default) = true - From //third_party/dawn/scripts/dawn_features.gni:60 + From //third_party/dawn/scripts/dawn_features.gni:55 Enables SwiftShader as the fallback adapter. Requires dawn_swiftshader_dir to be set to take effect. @@ -1287,7 +1307,7 @@ devtools_root_location devtools_skip_typecheck Current value (from the default) = true - From //third_party/devtools-frontend/src/third_party/typescript/typescript.gni:15 + From //third_party/devtools-frontend/src/third_party/typescript/typescript.gni:16 devtools_third_party_visibility Current value (from the default) = ["*"] @@ -1299,7 +1319,7 @@ devtools_ui_legacy_visibility devtools_use_remoteexec Current value (from the default) = false - From //third_party/devtools-frontend/src/third_party/typescript/typescript.gni:13 + From //third_party/devtools-frontend/src/third_party/typescript/typescript.gni:14 Set to true to enable remote compilation of TypeScript using reclient. This flag is temporarily until DevTools reclient support has stabilized. @@ -1365,13 +1385,9 @@ enable_accessibility_service_internal Current value (from the default) = false From //services/accessibility/buildflags.gni:20 -enable_aida - Current value (from the default) = false - From //chrome/browser/devtools/buildflags.gni:2 - enable_all_rust_features Current value (from the default) = false - From //build/config/rust.gni:38 + From //build/config/rust.gni:50 As we incrementally enable Rust on mainstream builders, we want to enable the toolchain (by switching 'enable_rust' to true) while still disabling @@ -1380,7 +1396,7 @@ enable_all_rust_features enable_arcore Current value (from the default) = false - From //device/vr/buildflags/buildflags.gni:23 + From //device/vr/buildflags/buildflags.gni:21 enable_assistant_integration_tests Current value (from the default) = false @@ -1393,24 +1409,24 @@ enable_assistant_integration_tests enable_av1_decoder Current value (from the default) = true - From //media/media_options.gni:130 + From //media/media_options.gni:133 If overriding this to false, possibly via its component values, `enable_libaom` should likely also be overriddent to false. enable_background_contents Current value (from the default) = true - From //chrome/common/features.gni:45 + From //chrome/common/features.gni:49 Enables support for background apps. enable_background_mode Current value (from the default) = true - From //chrome/common/features.gni:46 + From //chrome/common/features.gni:50 enable_backup_ref_ptr_feature_flag Current value (from the default) = false - From //base/allocator/partition_allocator/partition_alloc.gni:174 + From //base/allocator/partition_allocator/partition_alloc.gni:194 Enable the feature flag required to activate backup ref pointers. That is to say `PartitionAllocBackupRefPtr`. @@ -1419,13 +1435,17 @@ enable_backup_ref_ptr_feature_flag the feature flags using a binary flag instead of updating multiple bots's scripts to pass command line arguments. +enable_backup_ref_ptr_instance_tracer + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:222 + enable_backup_ref_ptr_slow_checks Current value (from the default) = false - From //base/allocator/partition_allocator/partition_alloc.gni:166 + From //base/allocator/partition_allocator/partition_alloc.gni:186 enable_backup_ref_ptr_support Current value (from the default) = true - From //base/allocator/partition_allocator/partition_alloc.gni:122 + From //base/allocator/partition_allocator/partition_alloc.gni:144 enable_base_tracing Current value (from the default) = true @@ -1439,21 +1459,21 @@ enable_base_tracing enable_basic_print_dialog Current value (from the default) = true - From //printing/buildflags/buildflags.gni:33 + From //printing/buildflags/buildflags.gni:34 Enables the printing system dialog for platforms that support printing and have a system dialog. enable_basic_printing Current value (from the default) = true - From //printing/buildflags/buildflags.gni:24 + From //printing/buildflags/buildflags.gni:25 TODO(awscreen) Safety net to avoid revert for a flag rename which affects many locations. Remove this once `enable_printing` has landed. enable_blink_bindings_tracing Current value (from the default) = false - From //third_party/blink/renderer/platform/BUILD.gn:228 + From //third_party/blink/renderer/platform/BUILD.gn:229 Enable TRACE_EVENT instrumentation for Blink bindings. Disabled by default as it increases binary size. @@ -1479,11 +1499,11 @@ enable_browser_speech_service enable_call_graph_profile_sort Current value (from the default) = false - From //build/config/compiler/BUILD.gn:244 + From //build/config/compiler/BUILD.gn:246 enable_callgrind Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:59 + From //third_party/pdfium/pdfium.gni:66 Enable callgrind for performance profiling @@ -1493,11 +1513,11 @@ enable_captive_portal_detection enable_cardboard Current value (from the default) = false - From //device/vr/buildflags/buildflags.gni:21 + From //device/vr/buildflags/buildflags.gni:19 enable_cast_audio_renderer Current value (from the default) = false - From //build/config/chromecast_build.gni:26 + From //build/config/cast.gni:24 True to enable the cast audio renderer. @@ -1505,22 +1525,22 @@ enable_cast_audio_renderer enable_cast_receiver Current value (from the default) = false - From //build/config/chromecast_build.gni:44 + From //build/config/cast.gni:42 Set this true for a Chromecast build. Chromecast builds are supported on Linux, Android, ChromeOS, and Fuchsia. enable_cast_renderer Current value (from the default) = false - From //build/config/chromecast_build.gni:53 + From //build/config/cast.gni:51 enable_cdm_host_verification Current value (from the default) = false - From //media/media_options.gni:237 + From //media/media_options.gni:240 enable_cdm_storage_id Current value (from the default) = false - From //media/media_options.gni:242 + From //media/media_options.gni:245 Enable Storage ID which is used by CDMs. This is only available with chrome branding, but may be overridden by other embedders. @@ -1545,19 +1565,34 @@ enable_check_raw_ref_fields enable_chrome_notifications Current value (from the default) = true - From //chrome/common/features.gni:49 + From //chrome/common/features.gni:53 Enables usage of notifications via Chrome's MessageCenter. +enable_chromium_prelude + Current value (from the default) = true + From //build/config/rust.gni:44 + + The chromium prelude crate provides the `chromium::import!` macro which + is needed to depend on first-party rust libraries. Third-party libraries + are specified with cargo_crate and do not get imported through this macro. + + The macro requires //third_party/rust for syn, quote, and proc_macro2. + Downstream projects that want to use //build for the rust GN templates but + don't want to enable the chromium prelude can disable it here, and should + specify a globally unique `crate_name` in their rust library GN rules + instead. Note that using a `crate_name` is strongly discouraged inside + Chromium, and is also discouraged for downstream projects when possible. + enable_click_to_call Current value (from the default) = true - From //chrome/common/features.gni:52 + From //chrome/common/features.gni:56 Disable Click to Call on Fuchsia. enable_component_updater Current value (from the default) = true - From //chrome/common/features.gni:56 + From //chrome/common/features.gni:60 Whether to enable the component updater. Code is in //components/component_updater. @@ -1585,13 +1620,6 @@ enable_cros_media_app Whether to enable the "real" ChromeOS Media App. When false, a mock app is bundled for testing integration points. -enable_cross_trusted - Current value (from the default) = true - From //native_client_sdk/src/BUILD.gn:10 - - Set to true if cross compiling trusted (e.g. building sel_ldr_arm on x86) - binaries is supported. - enable_cxx Current value (from the default) = true From //build/config/rust.gni:32 @@ -1602,11 +1630,11 @@ enable_cxx enable_dangling_raw_ptr_checks Current value (from the default) = true - From //base/allocator/partition_allocator/partition_alloc.gni:179 + From //base/allocator/partition_allocator/partition_alloc.gni:199 enable_dangling_raw_ptr_feature_flag Current value (from the default) = false - From //base/allocator/partition_allocator/partition_alloc.gni:187 + From //base/allocator/partition_allocator/partition_alloc.gni:207 Enable the feature flag required to check for dangling pointers. That is to say `PartitionAllocDanglingPtr`. @@ -1617,7 +1645,7 @@ enable_dangling_raw_ptr_feature_flag enable_dangling_raw_ptr_perf_experiment Current value (from the default) = false - From //base/allocator/partition_allocator/partition_alloc.gni:197 + From //base/allocator/partition_allocator/partition_alloc.gni:217 Enables the dangling raw_ptr checks feature for the performance experiment. Not every dangling pointers have been fixed or annotated yet. To avoid @@ -1630,7 +1658,7 @@ enable_dangling_raw_ptr_perf_experiment enable_dav1d_decoder Current value (from the default) = true - From //media/media_options.gni:105 + From //media/media_options.gni:108 enable_discovery Current value (from the default) = false @@ -1667,10 +1695,6 @@ enable_extensions Current value (from the default) = true From //extensions/buildflags/buildflags.gni:8 -enable_extensions_legacy_ipc - Current value (from the default) = false - From //extensions/buildflags/buildflags.gni:9 - enable_extractors Current value (from the default) = true From //chrome/services/file_util/public/features.gni:11 @@ -1694,7 +1718,7 @@ enable_feed_v2 enable_ffmpeg_video_decoders Current value (from the default) = true - From //media/media_options.gni:221 + From //media/media_options.gni:224 On Android, FFMpeg is built without video decoders by default. This flag gives the option to override that decision in case there are no @@ -1713,7 +1737,7 @@ enable_full_stack_frames_for_profiling enable_fuzztest_fuzz Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:138 + From //build/config/sanitizers/sanitizers.gni:140 enable_gpu_client_logging Current value (from the default) = false @@ -1734,10 +1758,6 @@ enable_grpc_ares Compiles with ares. -enable_gvr_services - Current value (from the default) = false - From //device/vr/buildflags/buildflags.gni:19 - enable_gwp_asan Current value (from the default) = true From //components/gwp_asan/buildflags/buildflags.gni:27 @@ -1757,14 +1777,14 @@ enable_gwp_asan_partitionalloc enable_hangout_services_extension Current value (from the default) = false - From //chrome/common/features.gni:60 + From //chrome/common/features.gni:64 Hangout services is an extension that adds extra features to Hangouts. It is enableable separately to facilitate testing. enable_hevc_parser_and_hw_decoder Current value (from the default) = false - From //media/media_options.gni:118 + From //media/media_options.gni:121 enable_hidpi Current value (from the default) = true @@ -1772,7 +1792,7 @@ enable_hidpi enable_hls_demuxer Current value (from the default) = false - From //media/media_options.gni:112 + From //media/media_options.gni:115 Enable HLS manifest parser and demuxer. @@ -1816,19 +1836,11 @@ enable_iterator_debugging enable_js_protobuf Current value (from the default) = true - From //third_party/protobuf/proto_library.gni:141 + From //third_party/protobuf/proto_library.gni:146 Allows subprojects to omit javascript dependencies (e.g.) closure_compiler and google-closure-library. -enable_keystone_registration_framework - Current value (from the default) = true - From //chrome/BUILD.gn:61 - - Indicates whether keystone registration framework should be enabled (see - action("keystone_registration_framework") below). There are some tests - where we'd like for it to be disabled. (https://crbug.com/909080) - enable_kythe_annotations Current value (from the default) = false From //build/toolchain/kythe.gni:10 @@ -1860,7 +1872,7 @@ enable_libaom_decoder enable_library_cdms Current value (from the default) = true - From //media/media_options.gni:229 + From //media/media_options.gni:232 Enables the use of library CDMs that implements the interface defined at media/cdm/api/content_decryption_module.h. If true, the actually library CDM @@ -1873,11 +1885,11 @@ enable_linux_installer enable_log_error_not_reached Current value (from the default) = false - From //build/config/logging.gni:12 + From //build/config/logging.gni:11 enable_logging_override Current value (from the default) = false - From //media/media_options.gni:103 + From //media/media_options.gni:106 Enable logging override, e.g. enable DVLOGs through level 2 at build time. On Cast devices, these are logged as INFO. @@ -1901,7 +1913,7 @@ enable_media_control_logging_override enable_media_drm_storage Current value (from the default) = false - From //media/media_options.gni:109 + From //media/media_options.gni:112 Enable browser managed persistent metadata storage for EME persistent session and persistent usage record session. @@ -1912,7 +1924,7 @@ enable_media_foundation_widevine_cdm enable_media_remoting Current value (from the default) = true - From //media/media_options.gni:330 + From //media/media_options.gni:333 This switch defines whether the Media Remoting implementation will be built. When enabled, media is allowed to be renderer and played back on remote @@ -1920,7 +1932,7 @@ enable_media_remoting enable_media_remoting_rpc Current value (from the default) = true - From //media/media_options.gni:336 + From //media/media_options.gni:339 Media Remoting RPC is disabled on Android since it's unused but increases the native binary size by ~70Kb. @@ -1931,13 +1943,11 @@ enable_message_center enable_ml_internal Current value (from the default) = false - From //services/on_device_model/on_device_model.gni:7 - - If true //third_party/ml will be enabled. + From //services/on_device_model/on_device_model.gni:10 enable_modular_updater Current value (from the default) = false - From //build/config/chromecast_build.gni:21 + From //build/config/cast.gni:19 Set true to enable modular_updater. @@ -1947,23 +1957,24 @@ enable_mojo_tracing enable_mojom_fuzzer Current value (from the default) = false - From //mojo/public/tools/bindings/mojom.gni:45 + From //mojo/public/tools/bindings/mojom.gni:47 Enables generating javascript fuzzing-related code and the bindings for the MojoLPM fuzzer targets. Off by default. enable_mojom_message_id_scrambling - Current value (from the default) = true - From //mojo/public/tools/bindings/mojom.gni:41 + Current value (from the default) = false + From //mojo/public/tools/bindings/mojom.gni:43 Controls message ID scrambling behavior. If |true|, message IDs are scrambled (i.e. randomized based on the contents of //chrome/VERSION) on - non-Chrome OS desktop platforms. Set to |false| to disable message ID - scrambling on all platforms. + non-Chrome OS desktop platforms. Enabled on official builds by default. + Set to |true| to enable message ID scrambling on a specific build. + See also `enable_scrambled_message_ids` below for more details. enable_mojom_typemapping Current value (from the default) = true - From //mojo/public/tools/bindings/mojom.gni:35 + From //mojo/public/tools/bindings/mojom.gni:36 Indicates whether typemapping should be supported in this build configuration. This may be disabled when building external projects which @@ -1976,32 +1987,28 @@ enable_mojom_typemapping enable_mse_mpeg2ts_stream_parser Current value (from the default) = false - From //media/media_options.gni:141 + From //media/media_options.gni:144 enable_mutex_priority_inheritance Current value (from the default) = false - From //base/BUILD.gn:67 + From //base/BUILD.gn:68 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_nacl - Current value (from the default) = true + Current value (from the default) = false From //components/nacl/features.gni:27 Enables Native Client support. - Intentionally and permanently disable nacl on Windows and Mac. + NaCl is only supported on ChromeOS. enable_nocompile_tests Current value (from the default) = true From //build/nocompile.gni:58 -enable_nocompile_tests_new - Current value (from the default) = true - From //build/nocompile.gni:60 - enable_offline_pages Current value (from the default) = false From //components/offline_pages/buildflags/features.gni:8 @@ -2030,10 +2037,9 @@ enable_oop_printing Current value (from the default) = true From //printing/buildflags/buildflags.gni:47 - Enables out-of-process printing. While this definition matches - `enable_print_preview`, do not base this definition upon that. This - feature could still be appropriate for some build configurations which - explicitly disable print preview. + Enables out-of-process printing. Do not have this definition just be + based on `enable_print_preview`; this feature could still be appropriate + for some build configurations which explicitly disable print preview. enable_oop_printing_no_oop_basic_print_dialog Current value (from the default) = true @@ -2060,7 +2066,7 @@ enable_openscreen_protocol enable_openxr Current value (from the default) = false - From //device/vr/buildflags/buildflags.gni:29 + From //device/vr/buildflags/buildflags.gni:27 To build with OpenXR support, the OpenXR Loader needs to be pulled to third_party/openxr. @@ -2090,7 +2096,7 @@ enable_perfetto_fuzzers enable_perfetto_grpc Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:319 + From //third_party/perfetto/gn/perfetto.gni:322 Enables gRPC in the Perfetto codebase. gRPC significantly increases build times and the general footprint of Perfetto. As it only required for @@ -2111,7 +2117,7 @@ enable_perfetto_ipc enable_perfetto_llvm_demangle Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:313 + From //third_party/perfetto/gn/perfetto.gni:316 enable_perfetto_platform_services Current value (from the default) = false @@ -2119,7 +2125,7 @@ enable_perfetto_platform_services enable_perfetto_site Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:336 + From //third_party/perfetto/gn/perfetto.gni:339 Allows to build the perfetto.dev website. WARNING: if this flag is enabled, the build performs globbing at generation @@ -2143,8 +2149,8 @@ enable_perfetto_trace_processor From //third_party/perfetto/gn/perfetto.gni:173 enable_perfetto_trace_processor_httpd - Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:300 + Current value (from the default) = true + From //third_party/perfetto/gn/perfetto.gni:302 enable_perfetto_trace_processor_json Current value (from the default) = true @@ -2164,7 +2170,7 @@ enable_perfetto_trace_processor_sqlite enable_perfetto_traceconv Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:325 + From //third_party/perfetto/gn/perfetto.gni:328 enable_perfetto_traced_perf Current value (from the default) = false @@ -2191,7 +2197,7 @@ enable_perfetto_traced_relay enable_perfetto_ui Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:329 + From //third_party/perfetto/gn/perfetto.gni:332 enable_perfetto_unittests Current value (from the default) = true @@ -2211,44 +2217,40 @@ enable_perfetto_x64_cpu_opt enable_perfetto_zlib Current value (from the default) = true - From //third_party/perfetto/gn/perfetto.gni:307 + From //third_party/perfetto/gn/perfetto.gni:310 enable_pkeys Current value (from the default) = true - From //base/allocator/partition_allocator/partition_alloc.gni:322 - - pkeys support is explicitly disabled in all Cronet builds, as some test - dependencies that use partition_allocator are compiled in AOSP against a - version of glibc that does not include pkeys syscall numbers. + From //base/allocator/partition_allocator/partition_alloc.gni:344 enable_platform_ac3_eac3_audio Current value (from the default) = false - From //media/media_options.gni:72 + From //media/media_options.gni:71 Enables AC3/EAC3 audio handling in chromium. This includes demuxing, on-device decoding and bitstream passthrough as supported by device. enable_platform_ac4_audio Current value (from the default) = false - From //media/media_options.gni:76 + From //media/media_options.gni:75 Enables AC4 audio handling in chromium. This includes demuxing, on-device decoding and bitstream passthrough as supported by device. enable_platform_dolby_vision Current value (from the default) = false - From //media/media_options.gni:91 + From //media/media_options.gni:94 enable_platform_dts_audio Current value (from the default) = false - From //media/media_options.gni:82 + From //media/media_options.gni:81 Enables DTS/DTSX audio handling in chromium. This includes demuxing, on-device decoding and bitstream passthrough as supported by device. enable_platform_encrypted_dolby_vision Current value (from the default) = false - From //media/media_options.gni:98 + From //media/media_options.gni:101 Enable platform support of encrypted Dolby Vision. The actual support depends on platform capability and is controlled by the run time feature @@ -2258,22 +2260,29 @@ enable_platform_encrypted_dolby_vision enable_platform_hevc Current value (from the default) = false - From //media/media_options.gni:137 + From //media/media_options.gni:140 + +enable_platform_iamf_audio + Current value (from the default) = false + From //media/media_options.gni:85 + + Enables IAMF audio handling in chromium. This includes demuxing, + on-device decoding and bitstream passthrough as supported by device. enable_platform_mpeg_h_audio Current value (from the default) = false - From //media/media_options.gni:78 + From //media/media_options.gni:77 enable_platform_vvc Current value (from the default) = false - From //media/media_options.gni:123 + From //media/media_options.gni:126 Enable inclusion of VVC/H.266 parser/demuxer, and also enable VVC/H.266 decoding with hardware acceleration provided by platform. Disabled by default for all builds. enable_plugins Current value (from the default) = true - From //ppapi/buildflags/buildflags.gni:14 + From //ppapi/buildflags/buildflags.gni:15 Enables basic plugin support. This enables support for registering and looking up plugins, but does not include support for loading plugins using a @@ -2284,7 +2293,7 @@ enable_plugins enable_pointer_arithmetic_trait_check Current value (from the default) = true - From //base/allocator/partition_allocator/partition_alloc.gni:107 + From //base/allocator/partition_allocator/partition_alloc.gni:124 Enables a compile-time check that all raw_ptrs to which arithmetic operations are to be applied are annotated with the AllowPtrArithmetic @@ -2292,7 +2301,7 @@ enable_pointer_arithmetic_trait_check enable_pointer_compression_support Current value (from the default) = false - From //base/allocator/partition_allocator/partition_alloc.gni:98 + From //base/allocator/partition_allocator/partition_alloc.gni:115 Introduces pointer compression support in PA. These are 4-byte pointers that can point within the core pools (regular and BRP). @@ -2303,16 +2312,18 @@ enable_pointer_compression_support enable_pointer_subtraction_check Current value (from the default) = false - From //base/allocator/partition_allocator/partition_alloc.gni:102 + From //base/allocator/partition_allocator/partition_alloc.gni:119 Enables a bounds check when two pointers (at least one being raw_ptr) are subtracted (if supported by the underlying implementation). enable_ppapi - Current value (from the default) = true - From //ppapi/buildflags/buildflags.gni:19 + Current value (from the default) = false + From //ppapi/buildflags/buildflags.gni:22 Enables Pepper API (PPAPI) plugin support. + The only remaining PPAPI plugin supported is NaCl and if is disabled + we can disable PPAPI. enable_precompiled_headers Current value (from the default) = false @@ -2335,7 +2346,7 @@ enable_print_media_l10n enable_print_preview Current value (from the default) = true - From //printing/buildflags/buildflags.gni:29 + From //printing/buildflags/buildflags.gni:30 Enables printing with print preview. Print preview requires PDF per //printing/BUILD.gn. @@ -2347,12 +2358,13 @@ enable_printing Enables printing support. -enable_printing_unittests +enable_printing_tests Current value (from the default) = false - From //printing/buildflags/buildflags.gni:18 + From //printing/buildflags/buildflags.gni:19 - TODO(crbug.com/1432082): iOS blink port only enables printing_unittests for - now because the port does not enable the printing feature yet. + TODO(crbug.com/1432082): iOS blink port only enables printing_tests to run + unit tests and web tests for now because the port does not enable the + printing feature yet. enable_profiling Current value (from the default) = false @@ -2402,7 +2414,7 @@ enable_reporting enable_resource_allowlist_generation Current value (from the default) = false - From //build/toolchain/gcc_toolchain.gni:28 + From //build/toolchain/gcc_toolchain.gni:29 enable_rlz Current value (from the default) = false @@ -2422,46 +2434,40 @@ enable_rust enable_rust_base_conversions Current value (from the default) = true - From //build/config/rust.gni:87 + From //build/config/rust.gni:109 Conversions between Rust types and C++ types. enable_rust_boringssl - Current value (from the default) = false - From //build/config/rust.gni:105 + Current value (from the default) = true + From //build/config/rust.gni:124 Enable Boringssl Rust bindings generation enable_rust_crash Current value (from the default) = true - From //build/config/rust.gni:93 + From //build/config/rust.gni:115 Support for chrome://crash-rust to check crash dump collection works. enable_rust_gtest_interop Current value (from the default) = true - From //build/config/rust.gni:102 + From //build/config/rust.gni:121 Rust gtest interop. enable_rust_json Current value (from the default) = false - From //build/config/rust.gni:90 + From //build/config/rust.gni:112 The base::JSONReader implementation. Requires base conversions. enable_rust_mojo Current value (from the default) = false - From //build/config/rust.gni:99 + From //build/config/rust.gni:118 Support for Rust mojo bindings. -enable_rust_qr - Current value (from the default) = true - From //build/config/rust.gni:96 - - Support for QR code generation - see https://crbug.com/1431991. - enable_screen_ai_service Current value (from the default) = true From //components/services/screen_ai/buildflags/features.gni:10 @@ -2481,18 +2487,18 @@ enable_server_based_recognition enable_service_discovery Current value (from the default) = true - From //chrome/common/features.gni:62 + From //chrome/common/features.gni:66 enable_session_service Current value (from the default) = true - From //chrome/common/features.gni:66 + From //chrome/common/features.gni:70 Enables use of the session service, which is enabled by default. Android stores them separately on the Java side. enable_shadow_call_stack Current value (from the default) = false - From //build/config/compiler/BUILD.gn:193 + From //build/config/compiler/BUILD.gn:195 Enable ShadowCallStack for compiled binaries. SCS stores a pointer to a shadow call stack in register x18. Hence, x18 must not be used by the OS @@ -2502,14 +2508,14 @@ enable_shadow_call_stack enable_shadow_metadata Current value (from the default) = false - From //base/allocator/partition_allocator/partition_alloc.gni:206 + From //base/allocator/partition_allocator/partition_alloc.gni:228 Shadow metadata is still under development and only supports Linux for now. enable_skia_graphite_gtests Current value (from the default) = false - From //skia/features.gni:18 + From //skia/features.gni:21 Enable gtests using SkiaRenderer on Skia Graphite. @@ -2531,7 +2537,7 @@ enable_speech_service enable_stack_trace_line_numbers Current value (from the default) = false - From //build/config/logging.gni:13 + From //build/config/logging.gni:12 enable_stripping Current value (from the default) = false @@ -2551,7 +2557,7 @@ enable_supervised_users enable_swiftshader Current value (from the default) = true - From //ui/gl/features.gni:36 + From //ui/gl/features.gni:37 enable_swiftshader_vulkan Current value (from the default) = true @@ -2563,7 +2569,7 @@ enable_swiftshader_vulkan enable_system_notifications Current value (from the default) = true - From //chrome/common/features.gni:70 + From //chrome/common/features.gni:74 enable_trace_logging Current value (from the default) = true @@ -2591,7 +2597,7 @@ enable_validating_command_decoder enable_vr Current value (from the default) = true - From //device/vr/buildflags/buildflags.gni:37 + From //device/vr/buildflags/buildflags.gni:35 enable_vulkan Current value (from the default) = true @@ -2601,7 +2607,7 @@ enable_vulkan enable_wayland_server Current value (from the default) = false - From //chrome/common/features.gni:73 + From //chrome/common/features.gni:77 Indicates if Wayland display server support is enabled. @@ -2614,7 +2620,7 @@ enable_websockets enable_webui_certificate_viewer Current value (from the default) = true - From //chrome/common/features.gni:76 + From //chrome/common/features.gni:80 Enables the webui certificate viewer dialog. @@ -2640,27 +2646,39 @@ enable_widevine Can be optionally enabled in Chromium on non-Android platforms. Please see //src/third_party/widevine/LICENSE file for details. +enterprise_client_certificates + Current value (from the default) = false + From //components/enterprise/buildflags/buildflags.gni:26 + + Indicates support for client certificates provisioning. + enterprise_cloud_content_analysis Current value (from the default) = true - From //components/enterprise/buildflags/buildflags.gni:15 + From //components/enterprise/buildflags/buildflags.gni:16 enterprise_content_analysis Current value (from the default) = true - From //components/enterprise/buildflags/buildflags.gni:31 + From //components/enterprise/buildflags/buildflags.gni:38 enterprise_data_controls Current value (from the default) = true - From //components/enterprise/buildflags/buildflags.gni:22 + From //components/enterprise/buildflags/buildflags.gni:23 Indicates support for Data Control rules. enterprise_local_content_analysis Current value (from the default) = true - From //components/enterprise/buildflags/buildflags.gni:19 + From //components/enterprise/buildflags/buildflags.gni:20 Indicates support for content analysis against a cloud agent for Enterprise Connector policies. +enterprise_watermark + Current value (from the default) = true + From //components/enterprise/buildflags/buildflags.gni:29 + + The watermark is currently implemented using the views framework + exclude_unwind_tables Current value (from the default) = false From //build/config/compiler/compiler.gni:124 @@ -2686,7 +2704,7 @@ extended_tracing_enabled extra_sysroot_libs Current value (from the default) = [] - From //build/config/rust.gni:68 + From //build/config/rust.gni:90 Non-rlib libs provided in the toolchain sysroot. Usually this is empty, but e.g. the Android Rust Toolchain provides a libunwind.a that rustc expects. @@ -2747,19 +2765,27 @@ force_enable_fieldtrial_testing_config force_enable_raw_ptr_exclusion Current value (from the default) = false - From //base/allocator/partition_allocator/partition_alloc.gni:126 + From //base/allocator/partition_allocator/partition_alloc.gni:148 RAW_PTR_EXCLUSION macro is disabled on official builds because it increased binary size. This flag can be used to enable it for official builds too. force_rustc_color_output Current value (from the default) = false - From //build/config/rust.gni:78 + From //build/config/rust.gni:100 Force-enable `--color=always` for rustc, even when it would be disabled for a platform. Mostly applicable to Windows, where new versions can handle ANSI escape sequences but it's not reliable in general. +forward_through_malloc + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:129 + + Forwards all the allocation/freeing calls in shim (e.g. operator new) + through malloc. Useful for using with tools that intercept malloc, e.g. + heaptrack. + fuzztest_supported Current value (from the default) = true From //build/config/sanitizers/sanitizers.gni:115 @@ -2784,7 +2810,7 @@ gcc_target_rpath generate_fuzzer_owners Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:214 + From //build/config/sanitizers/sanitizers.gni:215 Generates an owners file for each fuzzer test. TODO(crbug.com/1194183): Remove this arg when finding OWNERS is faster. @@ -2797,7 +2823,7 @@ generate_linker_map glue_core_pools Current value (from the default) = false - From //base/allocator/partition_allocator/partition_alloc.gni:90 + From //base/allocator/partition_allocator/partition_alloc.gni:107 Puts the regular and BRP pools right next to each other, so that we can check "belongs to one of the two pools" with a single bitmask operation. @@ -2850,7 +2876,7 @@ grpc_use_static_linking gtest_enable_absl_printers Current value (from the default) = true - From //build_overrides/build.gni:53 + From //build_overrides/build.gni:54 Allows googletest to pretty-print various absl types. Disabled for nacl due to lack of toolchain support. @@ -3008,7 +3034,7 @@ include_ash_ambient_animation_resources include_branded_entitlements Current value (from the default) = true - From //chrome/BUILD.gn:67 + From //chrome/BUILD.gn:64 On macOS, `is_chrome_branded` builds that have been signed locally will not launch because certain entitlements are tied to the official Google code @@ -3026,12 +3052,6 @@ include_transport_security_state_preload_list willing to take the responsibility to make sure that all important connections use HTTPS. -include_vr_data - Current value (from the default) = false - From //device/vr/buildflags/buildflags.gni:42 - - Whether to include VR extras like test APKs in non-VR-specific targets - incremental_install Current value (from the default) = false From //build/config/android/config.gni:12 @@ -3041,7 +3061,7 @@ incremental_install init_stack_vars Current value (from the default) = true - From //build/config/compiler/BUILD.gn:149 + From //build/config/compiler/BUILD.gn:151 Initialize all local variables with a pattern. This flag will fill uninitialized floating-point types (and 32-bit pointers) with 0xFF and the @@ -3049,12 +3069,14 @@ init_stack_vars recognizable in the debugger, and crashes on memory accesses through uninitialized pointers. + Flag discussion: https://crbug.com/977230 + TODO(crbug.com/1131993): This regresses binary size by ~1MB on Android and needs to be evaluated before enabling it there as well. init_stack_vars_zero Current value (from the default) = false - From //build/config/compiler/BUILD.gn:153 + From //build/config/compiler/BUILD.gn:155 Zero init has favorable performance/size tradeoffs for Chrome OS but was not evaluated for other platforms. @@ -3069,10 +3091,6 @@ internal_khronos_glcts_tests Current value (from the default) = false From //gpu/khronos_glcts_support/BUILD.gn:8 -invert_fieldtrials - Current value (from the default) = false - From //components/variations/field_trial_config/BUILD.gn:8 - ios_deployment_target Current value (from the default) = "15.0" From //build/config/ios/ios_sdk_overrides.gni:10 @@ -3081,7 +3099,7 @@ ios_deployment_target ios_stack_profiler_enabled Current value (from the default) = true - From //base/BUILD.gn:72 + From //base/BUILD.gn:73 Control whether the ios stack sampling profiler is enabled. This flag is only supported on iOS 64-bit architecture, but some project build //base @@ -3095,22 +3113,22 @@ is_asan is_cast_android Current value (from the default) = false - From //build/config/chromecast_build.gni:34 + From //build/config/cast.gni:32 Set this to true to build for Android-based Cast devices. Set this to false to use the defaults for Android. is_cast_audio_only Current value (from the default) = false - From //build/config/chromecast_build.gni:14 + From //build/config/cast.gni:12 Set this true for an audio-only Chromecast build. - TODO(crbug.com/1293538): Replace with a buildflag for speaker-only builds not - specific to Cast. + TODO(https://crbug.com/1516671): Remove this arg as CastOS builds are no + longer supported. is_castos Current value (from the default) = false - From //build/config/chromecast_build.gni:30 + From //build/config/cast.gni:28 Set this to true to build for Nest hardware running Linux (aka "CastOS"). Set this to false to use the defaults for Linux. @@ -3241,10 +3259,19 @@ is_ggp is_high_end_android Current value (from the default) = false - From //build/config/chrome_build.gni:25 + From //build/config/chrome_build.gni:27 Set to true to enable settings for high end Android devices, typically enhancing speed at the expense of resources such as binary sizes and memory. + Non-official builds should ignore this argument so that arm64 builders + remain fast and independent from PGO without having to set the value to false. + +is_high_end_android_secondary_toolchain + Current value (from the default) = false + From //build/config/chrome_build.gni:44 + + Whether to apply size->speed trade-offs to the secondary toolchain. + Relevant only for 64-bit target_cpu. is_hwasan Current value (from the default) = false @@ -3385,7 +3412,7 @@ is_ubsan_vptr is_unsafe_developer_build Current value (from the default) = true - From //base/BUILD.gn:59 + From //base/BUILD.gn:60 Unsafe developer build. Has developer-friendly features that may weaken or disable security measures like sandboxing or ASLR. @@ -3434,7 +3461,7 @@ libcxx_natvis_include http://crbug.com/966687. libcxx_revision - Current value (from the default) = "a12821e5f87e0054c1885dc8982cbe53f2c24899" + Current value (from the default) = "28aa23ffb4c7344914a5b4ac7169f12e5a12333f" From //buildtools/deps_revisions.gni:8 Used to cause full rebuilds on libc++ rolls. This should be kept in sync @@ -3480,7 +3507,7 @@ libyuv_use_neon limit_android_deps Current value (from the default) = false - From //build_overrides/build.gni:49 + From //build_overrides/build.gni:50 Limits the defined //third_party/android_deps targets to only "buildCompile" and "buildCompileNoDeps" targets. This is useful for third-party @@ -3490,7 +3517,7 @@ limit_android_deps link_pulseaudio Current value (from the default) = false - From //media/media_options.gni:43 + From //media/media_options.gni:42 Allows distributions to link pulseaudio directly (DT_NEEDED) instead of using dlopen. This helps with automated detection of ABI mismatches and @@ -3503,12 +3530,6 @@ lld_emit_indexes_and_imports Set to true to enable output of ThinLTO index and import files used for creating a Chromium MLGO corpus in the ThinLTO case. -lld_path - Current value (from the default) = "../../third_party/llvm-build/Release+Asserts/bin" - From //build/config/compiler/BUILD.gn:52 - - This allows overriding the location of lld. - llvm_android_mainline Current value (from the default) = false From //build/toolchain/toolchain.gni:24 @@ -3534,14 +3555,14 @@ mac_sdk_min mbi_mode Current value (from the default) = true - From //content/common/features.gni:19 + From //content/common/features.gni:20 Whether or not MBI mode (Multiple Blink Isolates) should be enabled, depending on the build argument. media_use_ffmpeg Current value (from the default) = true - From //media/media_options.gni:48 + From //media/media_options.gni:47 Enable usage of FFmpeg within the media library. Used for most software based decoding, demuxing, and sometimes optimized FFTs. If disabled, @@ -3549,14 +3570,14 @@ media_use_ffmpeg media_use_libvpx Current value (from the default) = true - From //media/media_options.gni:52 + From //media/media_options.gni:51 Enable usage of libvpx within the media library. Used for software based decoding of VP9 and VP8A type content. media_use_openh264 Current value (from the default) = false - From //media/media_options.gni:64 + From //media/media_options.gni:63 mediapipe_build_with_gpu_support Current value (from the default) = false @@ -3570,7 +3591,7 @@ mips_use_mmi mojo_media_host Current value (from the default) = "gpu" - From //media/media_options.gni:323 + From //media/media_options.gni:326 The process that the mojo MediaService runs in. By default, all services registered in |mojo_media_services| are hosted in the MediaService, with the @@ -3585,7 +3606,7 @@ mojo_media_host mojo_media_services Current value (from the default) = ["video_decoder", "cdm"] - From //media/media_options.gni:311 + From //media/media_options.gni:314 A list of mojo media services that should be used in the media pipeline. Valid entries in the list are: @@ -3600,13 +3621,6 @@ mojo_use_apple_channel Current value (from the default) = false From //mojo/features.gni:8 -mojom_message_id_salt_path - Current value (from the default) = "//chrome/VERSION" - From //mojo/public/tools/bindings/mojom.gni:135 - - The path to a file whose contents can be used as the basis for a message - ID scrambling salt. - monolithic_binaries Current value (from the default) = false From //third_party/perfetto/gn/perfetto.gni:214 @@ -3615,7 +3629,7 @@ monolithic_binaries are monolithic and don't use a common shared library. This is mainly to avoid LD_LIBRARY_PATH dances when testing locally. On Windows we default to monolithic executables, because pairing - dllexport/import adds extra complexity for little benefit. Te only reason + dllexport/import adds extra complexity for little benefit. The only reason for monolithic_binaries=false is saving binary size, which matters mainly on Android. See also comments on PERFETTO_EXPORT_ENTRYPOINT in compiler.h. @@ -3629,17 +3643,10 @@ msan_track_origins msvc_use_sse2 Current value (from the default) = true - From //third_party/pdfium/pdfium.gni:77 + From //third_party/pdfium/pdfium.gni:84 Enable SSE2 for MSVC builds. Ignored if it's not a MSVC build. -nacl_sdk_untrusted - Current value (from the default) = false - From //native_client_sdk/src/BUILD.gn:14 - - Build the nacl SDK untrusted components. This is disabled by default since - not all NaCl untrusted compilers are in goma (e.g arm-nacl-glibc) - ndk_api_level_at_least_26 Current value (from the default) = false From //third_party/angle/gni/angle.gni:132 @@ -3733,7 +3740,7 @@ ozone_platform_x11 partition_alloc_optimized_debug Current value (from the default) = true - From //base/allocator/partition_allocator/partition_alloc.gni:64 + From //base/allocator/partition_allocator/partition_alloc.gni:81 Turns on compiler optimizations in PartitionAlloc in Debug build. If enabling PartitionAlloc-Everywhere in Debug build for tests in Debug @@ -3746,7 +3753,7 @@ partition_alloc_optimized_debug pdf_bundle_freetype Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:16 + From //third_party/pdfium/pdfium.gni:17 Build PDFium either: 1) When set to true, with a bundled FreeType, built from FreeType source @@ -3757,62 +3764,71 @@ pdf_bundle_freetype pdf_enable_click_logging Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:19 + From //third_party/pdfium/pdfium.gni:20 Generate logging messages for click events that reach PDFium +pdf_enable_fontations + Current value (from the default) = false + From //third_party/pdfium/pdfium.gni:56 + + Build PDFium with experimental Fontations library support. + If enabled, coexists in build with FreeType library and the default font + library is selectable at runtime. + Note that Fontations requires Skia and Rust support. + pdf_enable_v8 Current value (from the default) = true - From //third_party/pdfium/pdfium.gni:22 + From //third_party/pdfium/pdfium.gni:23 Build PDFium either with or without v8 support. pdf_enable_xfa Current value (from the default) = true - From //third_party/pdfium/pdfium.gni:25 + From //third_party/pdfium/pdfium.gni:26 Build PDFium either with or without XFA Forms support. pdf_enable_xfa_bmp Current value (from the default) = true - From //third_party/pdfium/pdfium.gni:28 + From //third_party/pdfium/pdfium.gni:29 If XFA, also support bmp codec. Ignored if not XFA. pdf_enable_xfa_gif Current value (from the default) = true - From //third_party/pdfium/pdfium.gni:31 + From //third_party/pdfium/pdfium.gni:32 If XFA, also support gif codec. Ignored if not XFA. pdf_enable_xfa_png Current value (from the default) = true - From //third_party/pdfium/pdfium.gni:34 + From //third_party/pdfium/pdfium.gni:35 If XFA, also support png codec. Ignored if not XFA. pdf_enable_xfa_tiff Current value (from the default) = true - From //third_party/pdfium/pdfium.gni:37 + From //third_party/pdfium/pdfium.gni:38 If XFA, also support tiff codec. Ignored if not XFA. pdf_is_complete_lib Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:56 + From //third_party/pdfium/pdfium.gni:63 Build a complete static library pdf_is_standalone Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:53 + From //third_party/pdfium/pdfium.gni:60 Build PDFium standalone. Now only controls whether the test binaries are built. Most logic is conditioned by build_with_chromium. pdf_use_partition_alloc Current value (from the default) = true - From //third_party/pdfium/pdfium.gni:44 + From //third_party/pdfium/pdfium.gni:45 Build PDFium against PartitionAlloc. When false, PDFium must build without requiring any PartitionAlloc headers or code to be present. When true, @@ -3822,7 +3838,7 @@ pdf_use_partition_alloc pdf_use_skia Current value (from the default) = true - From //third_party/pdfium/pdfium.gni:49 + From //third_party/pdfium/pdfium.gni:50 Build PDFium to use Skia (experimental) for all PDFium graphics. If enabled, coexists in build with AGG graphics and the default @@ -3864,7 +3880,7 @@ perfetto_force_dlog perfetto_use_pkgconfig Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:346 + From //third_party/perfetto/gn/perfetto.gni:349 Used by CrOS builds. Uses pkg-config to determine the appropriate flags for including and linking system libraries. @@ -3874,21 +3890,21 @@ perfetto_use_pkgconfig perfetto_use_system_protobuf Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:350 + From //third_party/perfetto/gn/perfetto.gni:353 Used by CrOS system builds. Uses the system version of protobuf from /usr/include instead of the hermetic one. perfetto_use_system_sqlite Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:354 + From //third_party/perfetto/gn/perfetto.gni:357 Used by CrOS system builds. Uses the system version of sqlite from /usr/include instead of the hermetic one. perfetto_use_system_zlib Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:356 + From //third_party/perfetto/gn/perfetto.gni:359 perfetto_verbose_logs_enabled Current value (from the default) = false @@ -3912,7 +3928,11 @@ pkg_config platform_has_optional_hevc_support Current value (from the default) = false - From //media/media_options.gni:147 + From //media/media_options.gni:150 + +plus_addresses_use_internal_android_resources + Current value (from the default) = false + From //components/plus_addresses/buildflags.gni:11 print_unsymbolized_stack_traces Current value (from the default) = false @@ -3945,21 +3965,17 @@ proprietary_codecs TODO(crbug.com/1314528): Remove chromecast-related conditions and force builds to explicitly specify this. -put_ref_count_in_previous_slot - Current value (from the default) = true - From //base/allocator/partition_allocator/partition_alloc.gni:163 - raw_ptr_zero_on_construct Current value (from the default) = true - From //base/allocator/partition_allocator/partition_alloc.gni:353 + From //base/allocator/partition_allocator/partition_alloc.gni:375 raw_ptr_zero_on_destruct Current value (from the default) = false - From //base/allocator/partition_allocator/partition_alloc.gni:355 + From //base/allocator/partition_allocator/partition_alloc.gni:377 raw_ptr_zero_on_move Current value (from the default) = true - From //base/allocator/partition_allocator/partition_alloc.gni:354 + From //base/allocator/partition_allocator/partition_alloc.gni:376 rbe_bin_dir Current value (from the default) = "../../buildtools/reclient" @@ -4027,7 +4043,7 @@ remoting_webrtc_verbose_logging removed_rust_stdlib_libs Current value (from the default) = [] - From //build/config/rust.gni:64 + From //build/config/rust.gni:86 Any removed std rlibs in your Rust toolchain, relative to the standard Rust toolchain. Typically used with 'rust_sysroot_absolute' @@ -4040,7 +4056,7 @@ restricted_traces_outside_of_apk root_extra_deps Current value (from the default) = [] - From //BUILD.gn:61 + From //BUILD.gn:64 A list of extra dependencies to add to the root target. This allows a checkout to add additional targets without explicitly changing any checked- @@ -4470,14 +4486,13 @@ rtc_win_undef_unicode runtime_call_stats_count_everything Current value (from the default) = false - From //third_party/blink/renderer/platform/BUILD.gn:224 + From //third_party/blink/renderer/platform/BUILD.gn:225 rust_sysroot_absolute Current value (from the default) = "" - From //build/config/rust.gni:46 + From //build/config/rust.gni:57 - Chromium provides a Rust toolchain in //third_party/rust-toolchain when - checkout_rust is True (which is being rolled out by default over time). + Chromium provides a Rust toolchain in //third_party/rust-toolchain. To use a custom toolchain instead, specify an absolute path to the root of a Rust sysroot, which will have a 'bin' directory and others. Commonly @@ -4485,14 +4500,14 @@ rust_sysroot_absolute rust_toolchain_supports_nacl Current value (from the default) = false - From //build/config/rust.gni:56 + From //build/config/rust.gni:67 If you're using a Rust toolchain as specified by rust_sysroot_absolute, you can specify whether it supports nacl here. rustc_version Current value (from the default) = "" - From //build/config/rust.gni:52 + From //build/config/rust.gni:63 If you're using a Rust toolchain as specified by rust_sysroot_absolute, set this to the output of `rustc -V`. Changing this string will cause all @@ -4527,25 +4542,25 @@ sanitizer_coverage_flags save_reproducers_on_lld_crash Current value (from the default) = false - From //build/config/compiler/BUILD.gn:186 + From //build/config/compiler/BUILD.gn:188 If true, linker crashes will be rerun with `--reproduce` which causes a reproducer file to be saved. seed_corpus_dir - Current value (from the default) = "//out/trunk/gen/components/viz/service/compositor_frame_fuzzer/binary_seed_corpus" + Current value (from the default) = "//out/test/gen/components/viz/service/compositor_frame_fuzzer/binary_seed_corpus" From //components/viz/service/compositor_frame_fuzzer/BUILD.gn:9 show_includes Current value (from the default) = false - From //build/config/compiler/BUILD.gn:177 + From //build/config/compiler/BUILD.gn:179 Enable -H, which prints the include tree during compilation. For use by tools/clang/scripts/analyze_includes.py simple_template_names Current value (from the default) = true - From //build/config/compiler/BUILD.gn:205 + From //build/config/compiler/BUILD.gn:207 Use DWARF simple template names, with the following exceptions: @@ -4567,22 +4582,23 @@ skia_enable_skshaper_tests From //third_party/skia/modules/skshaper/skshaper.gni:41 skia_use_dawn - Current value (from the default) = false - From //skia/features.gni:11 + Current value (from the default) = true + From //skia/features.gni:12 - Enable experimental Skia Graphite Dawn backend. Currently enabled for Mac - and Windows only. + Enable experimental Skia Graphite Dawn backend. Enabled on platforms where + the team has verified that at least basic rendering to the screen is + working. skia_use_metal Current value (from the default) = false - From //skia/features.gni:15 + From //skia/features.gni:18 Enable experimental Skia Graphite Metal backend. Intended only for debugging on non-official developer builds. skip_buildtools_check Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:339 + From //third_party/perfetto/gn/perfetto.gni:342 Skip buildtools dependency checks (needed for ChromeOS). @@ -4662,10 +4678,13 @@ sysroot system_headers_in_deps Current value (from the default) = false - From //build/toolchain/gcc_toolchain.gni:34 + From //build/toolchain/gcc_toolchain.gni:38 Use -MD instead of -MMD for compiler commands. This is useful for tracking - the comprehensive set of dependencies. + the comprehensive set of dependencies. It's also required when building + without the sysroot so that updates to system header files trigger a + rebuild (when using the sysroot, the CR_SYSROOT_KEY define takes care of + this already). system_libdir Current value (from the default) = "lib" @@ -4697,7 +4716,7 @@ target_environment target_is_ios_device Current value (from the default) = false - From //v8/gni/v8.gni:142 + From //v8/gni/v8.gni:147 iOS device does not support executable code pages. Not we use target_os == "ios" here because it isn't equivalent @@ -4709,7 +4728,7 @@ target_os target_rpath Current value (from the default) = "" - From //build/config/chromecast_build.gni:18 + From //build/config/cast.gni:16 If non empty, rpath of executables is set to this. If empty, default value is used. @@ -4750,43 +4769,47 @@ thin_lto_enable_optimizations tint_build_benchmarks Current value (from the default) = true - From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:128 + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:134 tint_build_cmds Current value (from the default) = false - From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:73 + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:74 tint_build_glsl_validator Current value (from the default) = true - From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:113 + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:114 tint_build_glsl_writer Current value (from the default) = true - From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:108 + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:109 tint_build_hlsl_writer Current value (from the default) = true - From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:103 + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:104 + +tint_build_ir_binary + Current value (from the default) = true + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:124 tint_build_msl_writer Current value (from the default) = true - From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:98 + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:99 tint_build_syntax_tree_writer Current value (from the default) = false - From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:118 + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:119 tint_build_unittests Current value (from the default) = true - From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:123 + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:129 tint_glslang_dir Current value (from the default) = "//third_party/vulkan-deps/glslang/src" - From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:59 + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:60 tint_src_dir Current value (from the default) = "//third_party/dawn/src/tint" - From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:135 + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:141 toolchain_for_rust_host_build_tools Current value (from the default) = false @@ -4796,6 +4819,20 @@ toolchain_for_rust_host_build_tools consumed during the build process. That includes proc macros and Cargo build scripts. +toolchain_supports_rust_thin_lto + Current value (from the default) = true + From //build/config/rust.gni:78 + + Whether artifacts produced by the Rust compiler can participate in ThinLTO. + + One important consideration is whether the linker uses the same LLVM + version as `rustc` (i.e. if it can understand the LLVM-IR from the + compilation artifacts produced by `rustc`). In LaCrOS and ash builds this + may not be true - see b/299483903. + + TODO(https://crbug.com/1482525): Re-enable ThinLTO for Rust on LaCrOS + TODO(b/300937673): Re-enable ThinLTO for Rust on ash-chrome + toolkit_views Current value (from the default) = true From //build/config/ui.gni:33 @@ -4819,7 +4856,7 @@ use_afl use_allocator_shim Current value (from the default) = true - From //base/allocator/partition_allocator/partition_alloc.gni:31 + From //base/allocator/partition_allocator/partition_alloc.gni:39 Causes all the allocations to be routed via allocator_shim.cc. Usually, the allocator shim will, in turn, route them to Partition Alloc, but @@ -4827,7 +4864,7 @@ use_allocator_shim use_alsa Current value (from the default) = true - From //media/media_options.gni:198 + From //media/media_options.gni:201 use_amdgpu_minigbm Current value (from the default) = false @@ -4841,18 +4878,18 @@ use_android_unwinder_v2 use_arc_protected_media Current value (from the default) = false - From //media/gpu/args.gni:39 + From //media/gpu/args.gni:34 Indicates if the ChromeOS protected media functionality should also be utilized by HW video decoding for ARC. use_asan_backup_ref_ptr Current value (from the default) = false - From //base/allocator/partition_allocator/partition_alloc.gni:141 + From //base/allocator/partition_allocator/partition_alloc.gni:163 use_asan_unowned_ptr Current value (from the default) = false - From //base/allocator/partition_allocator/partition_alloc.gni:145 + From //base/allocator/partition_allocator/partition_alloc.gni:167 Use probe-on-destruct unowned ptr detection with ASAN. @@ -4863,6 +4900,12 @@ use_aura Indicates if Aura is enabled. Aura is a low-level windowing library, sort of a replacement for GDI or GTK. +use_av1_hw_decoder + Current value (from the default) = true + From //media/gpu/args.gni:42 + + A platform that is capable of hardware av1 decoding. + use_base_test_suite Current value (from the default) = true From //sandbox/linux/BUILD.gn:22 @@ -4875,7 +4918,7 @@ use_blink use_blink_extensions_chromeos Current value (from the default) = false - From //third_party/blink/renderer/config.gni:49 + From //third_party/blink/renderer/config.gni:46 If true, the experimental renderer extensions library will be used. @@ -4927,7 +4970,7 @@ use_cfi_recover use_chromeos_protected_av1 Current value (from the default) = false - From //media/gpu/args.gni:44 + From //media/gpu/args.gni:39 Indicates if ChromeOS protected media supports the AV1 codec. By default H.264, VP9 and HEVC are enabled if protected media is enabled; AV1 is @@ -4935,7 +4978,7 @@ use_chromeos_protected_av1 use_chromeos_protected_media Current value (from the default) = false - From //media/gpu/args.gni:35 + From //media/gpu/args.gni:30 Indicates if ChromeOS protected media support exists. This is used to enable the CDM daemon in Chrome OS as well as support for @@ -4952,15 +4995,15 @@ use_clang_profiling use_clang_profiling_inside_sandbox Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:228 + From //build/config/sanitizers/sanitizers.gni:229 use_command_buffer Current value (from the default) = false - From //device/vr/buildflags/buildflags.gni:25 + From //device/vr/buildflags/buildflags.gni:23 use_cras Current value (from the default) = false - From //media/media_options.gni:68 + From //media/media_options.gni:67 Override to dynamically link the cras (ChromeOS audio) library. @@ -4972,7 +5015,7 @@ use_crash_key_stubs use_cups Current value (from the default) = true - From //printing/buildflags/buildflags.gni:39 + From //printing/buildflags/buildflags.gni:40 use_cups_ipp Current value (from the default) = false @@ -5011,7 +5054,7 @@ use_custom_libunwind use_cxx17 Current value (from the default) = false - From //build_overrides/build.gni:57 + From //build_overrides/build.gni:58 Allow projects that wish to stay on C++17 to override Chromium's default. TODO(crbug.com/1402249): evaluate removing this end of 2023 @@ -5043,12 +5086,12 @@ use_debug_fission been set, e.g. by a toolchain_args() block. use_dummy_lastchange - Current value (from the default) = false + Current value (from the default) = true From //build/util/lastchange.gni:9 use_dwarf5 Current value (from the default) = false - From //build/config/compiler/BUILD.gn:165 + From //build/config/compiler/BUILD.gn:167 Enable DWARF v5. @@ -5070,7 +5113,7 @@ use_external_fuzzing_engine use_external_popup_menu Current value (from the default) = false - From //content/common/features.gni:10 + From //content/common/features.gni:11 Whether or not to use external popup menu. @@ -5080,11 +5123,11 @@ use_exynos_minigbm use_freeslot_bitmap Current value (from the default) = false - From //base/allocator/partition_allocator/partition_alloc.gni:86 + From //base/allocator/partition_allocator/partition_alloc.gni:103 use_full_pdb_paths Current value (from the default) = false - From //build/config/compiler/BUILD.gn:173 + From //build/config/compiler/BUILD.gn:175 Override this to put full paths to PDBs in Windows PE files. This helps windbg and Windows Performance Analyzer with finding the PDBs in some local- @@ -5129,7 +5172,7 @@ use_goma use_goma_rust Current value (from the default) = false - From //build/config/rust.gni:73 + From //build/config/rust.gni:95 Use goma for Rust builds. Experimental. The only known problem is b/193072381, but then again, we don't expect a build speedup before much @@ -5155,7 +5198,7 @@ use_hashed_jni_names use_icf Current value (from the default) = false - From //build/config/compiler/BUILD.gn:218 + From //build/config/compiler/BUILD.gn:220 Set to true to use icf, Identical Code Folding. @@ -5167,13 +5210,6 @@ use_icf lld doesn't have the bug. -use_inner_html_parser_fast_path - Current value (from the default) = true - From //third_party/blink/renderer/config.gni:53 - - TODO(https://crbug.com/1407201): temporarily disabled on platforms that - are concerned about binary size. Figure out way to use everywhere. - use_intel_minigbm Current value (from the default) = false From //third_party/minigbm/BUILD.gn:19 @@ -5189,7 +5225,7 @@ use_internal_autofill_patterns use_internal_isolated_origins Current value (from the default) = false - From //components/site_isolation/BUILD.gn:18 + From //components/site_isolation/BUILD.gn:21 Normally, only Google Chrome Android and some Fuchsia WebEngine builds will use a Google-internal list of isolated origins defined below. @@ -5242,7 +5278,7 @@ use_libfuzzer use_libgav1_parser Current value (from the default) = true - From //third_party/libgav1/options.gni:10 + From //third_party/libgav1/options.gni:9 use_libinput Current value (from the default) = false @@ -5332,7 +5368,7 @@ use_nss_certs use_official_enterprise_connectors_api_keys Current value (from the default) = false - From //chrome/browser/BUILD.gn:70 + From //chrome/browser/BUILD.gn:71 You can set the variable 'use_official_enterprise_connectors_api_keys' to true to use the Google-internal file containing official API keys @@ -5377,7 +5413,7 @@ use_pangocairo use_partition_alloc Current value (from the default) = true - From //base/allocator/partition_allocator/partition_alloc.gni:52 + From //base/allocator/partition_allocator/partition_alloc.gni:58 Whether PartitionAlloc should be available for use or not. true makes PartitionAlloc linked to the executable or shared library and @@ -5399,7 +5435,7 @@ use_partition_alloc use_partition_alloc_as_malloc Current value (from the default) = true - From //base/allocator/partition_allocator/partition_alloc.gni:68 + From //base/allocator/partition_allocator/partition_alloc.gni:85 PartitionAlloc-Everywhere (PA-E). Causes allocator_shim.cc to route calls to PartitionAlloc, rather than some other platform allocator. @@ -5410,7 +5446,7 @@ use_perfetto_client_library use_perfetto_trace_processor Current value (from the default) = true - From //build_overrides/build.gni:64 + From //build_overrides/build.gni:65 Use Perfetto's trace processor for converting protobuf-encoded traces to the legacy JSON format in base::TraceLog. @@ -5424,7 +5460,7 @@ use_platform_icu_alternatives use_profi Current value (from the default) = false - From //build/config/compiler/BUILD.gn:182 + From //build/config/compiler/BUILD.gn:184 Enable Profi algorithm. Profi can infer block and edge counts. https://clang.llvm.org/docs/UsersManual.html#using-sampling-profilers @@ -5432,7 +5468,7 @@ use_profi use_pulseaudio Current value (from the default) = true - From //media/media_options.gni:209 + From //media/media_options.gni:212 use_qt Current value (from the default) = true @@ -5487,27 +5523,6 @@ use_rtti but some sanitizers are known to require it, like CFI diagnostics and UBsan variants. -use_runtime_vlog - Current value (from the default) = true - From //build/config/logging.gni:31 - - Use runtime vlog everywhere except for ash-chrome. - When `use_runtime_vlog` is true, - command line switch `--vmodule=xxx` or `--v=x` could be used to - control vlog level at runtime. - when `use_runtime_volog` is false, - verbose log level is controlled by `ENABLE_VLOG_LEVEL` macro. VLOG(n) - is kept and generate output if `n` is less than or equal to the vlog - level defined by the macro. - Command line switch `--vmodule=xxx`, or `--v=x` would have no effect. - - Runtime vlog is used everywhere except on ash-chrome. - Ash-chrome has a few vmodule patterns that need to be used indefinitely - to investigate problems from logs in feedback reports. These vmodule - patterns are using too much cpu cycles (see http://crbug/489441). Turning - off runtime vlog and using build time vlog would avoid paying that cpu tax - and have a nice side effect of a smaller production binary. - use_sanitizer_configs_without_instrumentation Current value (from the default) = false From //build/config/sanitizers/sanitizers.gni:102 @@ -5518,7 +5533,7 @@ use_sanitizer_configs_without_instrumentation use_sanitizer_coverage Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:217 + From //build/config/sanitizers/sanitizers.gni:218 use_siso Current value (from the default) = false @@ -5572,7 +5587,7 @@ use_system_harfbuzz use_system_lcms2 Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:62 + From //third_party/pdfium/pdfium.gni:69 Don't build against bundled lcms2. @@ -5602,13 +5617,13 @@ use_system_libjpeg use_system_libopenjpeg2 Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:65 + From //third_party/pdfium/pdfium.gni:72 Don't build against bundled libopenjpeg2. use_system_libpng Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:68 + From //third_party/pdfium/pdfium.gni:75 Don't build against bundled libpng. @@ -5623,7 +5638,7 @@ use_system_libsync use_system_libtiff Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:71 + From //third_party/pdfium/pdfium.gni:78 Don't build against bundled libtiff. @@ -5637,7 +5652,7 @@ use_system_minigbm use_system_zlib Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:74 + From //third_party/pdfium/pdfium.gni:81 Don't build against bundled zlib. @@ -5647,7 +5662,7 @@ use_tegra_minigbm use_text_section_splitting Current value (from the default) = false - From //build/config/compiler/BUILD.gn:162 + From //build/config/compiler/BUILD.gn:164 This argument is to control whether enabling text section splitting in the final binary. When enabled, the separated text sections with prefix @@ -5663,7 +5678,7 @@ use_thin_lto use_typeface_fontations Current value (from the default) = true - From //build/config/rust.gni:108 + From //build/config/rust.gni:127 Enable experimental Fontations Rust font stack. @@ -5675,15 +5690,15 @@ use_udev use_unofficial_version_number Current value (from the default) = true - From //components/version_info/BUILD.gn:10 + From //base/version_info/use_unofficial_version_number.gni:8 use_v4l2_codec Current value (from the default) = false - From //media/gpu/args.gni:22 + From //media/gpu/args.gni:15 use_v4lplugin Current value (from the default) = false - From //media/gpu/args.gni:17 + From //media/gpu/args.gni:10 Indicates if V4L plugin is used. @@ -5693,27 +5708,20 @@ use_v8_context_snapshot use_vaapi Current value (from the default) = true - From //media/gpu/args.gni:28 + From //media/gpu/args.gni:21 Indicates if VA-API-based hardware acceleration is to be used. This is typically the case on x86-based ChromeOS devices. - VA-API should also be compiled by default on x11-using linux devices + VA-API should also be compiled by default on x11/wayland linux devices using x86/x64. use_vaapi_image_codecs Current value (from the default) = false - From //media/gpu/args.gni:64 + From //media/gpu/args.gni:62 VA-API also allows decoding of images, but we don't want to use this outside of chromeos, even if video decoding is enabled. -use_vaapi_x11 - Current value (from the default) = true - From //media/gpu/args.gni:11 - - Indicates if X11 VA-API-based hardware acceleration is to be used. - See also the comment near the |use_vaapi| arg. - use_vc4_minigbm Current value (from the default) = false From //third_party/minigbm/BUILD.gn:28 @@ -5734,12 +5742,6 @@ use_wayland_gbm Checks if Wayland must be compiled with dmabuf/gbm feature, which allows a multi-process hardware accelerated mode. -use_webaudio_ffmpeg - Current value (from the default) = false - From //third_party/blink/renderer/config.gni:46 - - If true, ffmpeg will be used for computing FFTs for WebAudio - use_webaudio_pffft Current value (from the default) = true From //third_party/blink/renderer/config.gni:20 @@ -5767,14 +5769,14 @@ using_mismatched_sample_profile v8_advanced_bigint_algorithms Current value (from the default) = true - From //v8/gni/v8.gni:134 + From //v8/gni/v8.gni:139 Enable advanced BigInt algorithms, costing about 10-30 KB binary size depending on platform. Disabled on Android to save binary size. v8_allocation_site_tracking Current value (from the default) = true - From //v8/BUILD.gn:377 + From //v8/BUILD.gn:382 Enable global allocation site tracking. @@ -5901,7 +5903,7 @@ v8_enable_31bit_smis_on_64bit_arch v8_enable_allocation_folding Current value (from the default) = true - From //v8/BUILD.gn:371 + From //v8/BUILD.gn:376 Enable allocation folding globally (sets -dV8_ALLOCATION_FOLDING). When it's disabled, the --turbo-allocation-folding runtime flag will be ignored. @@ -5921,7 +5923,7 @@ v8_enable_backtrace v8_enable_builtin_jump_table_switch Current value (from the default) = true - From //v8/BUILD.gn:417 + From //v8/BUILD.gn:422 Enable jump table switch for built-in. @@ -5949,15 +5951,21 @@ v8_enable_builtins_profiling_verbose used builtins. v8_enable_builtins_reordering - Current value (from the default) = false + Current value (from the default) = true From //v8/BUILD.gn:199 This build flag is used to control whether reorder builtins acoording to the call graph with C3 algorithm based builtin PGO profiling. +v8_enable_cet_ibt + Current value (from the default) = false + From //v8/gni/v8.gni:160 + + Emit CET IBT landing pad instructions in JIT generated code (experimental). + v8_enable_cet_shadow_stack Current value (from the default) = false - From //v8/gni/v8.gni:152 + From //v8/gni/v8.gni:157 Change code emission and runtime features to be CET shadow-stack compliant (incomplete and experimental). @@ -5971,10 +5979,18 @@ v8_enable_concurrent_marking v8_enable_conservative_stack_scanning Current value (from the default) = false - From //v8/gni/v8.gni:95 + From //v8/gni/v8.gni:100 Scan the call stack conservatively during garbage collection. +v8_enable_continuation_preserved_embedder_data + Current value (from the default) = true + From //v8/BUILD.gn:372 + + Allow embedder data to be saved on continuations. Used to support + TaskAttribution and `scheduler.yield()`. + The flag enables disabling the feature, to test this data's overhead. + v8_enable_debug_code Current value (from the default) = "" From //v8/BUILD.gn:124 @@ -5992,13 +6008,13 @@ v8_enable_debugging_features v8_enable_direct_handle Current value (from the default) = "" - From //v8/gni/v8.gni:98 + From //v8/gni/v8.gni:103 Use direct pointers in internal (direct) handles. v8_enable_direct_local Current value (from the default) = false - From //v8/gni/v8.gni:101 + From //v8/gni/v8.gni:106 Use direct pointers in local handles. @@ -6016,7 +6032,7 @@ v8_enable_etw_stack_walking v8_enable_extensible_ro_snapshot Current value (from the default) = true - From //v8/BUILD.gn:423 + From //v8/BUILD.gn:428 Whether custom embedder snapshots may extend (= allocate new objects in) ReadOnlySpace. @@ -6055,7 +6071,7 @@ v8_enable_gdbjit v8_enable_google_benchmark Current value (from the default) = false - From //v8/gni/v8.gni:106 + From //v8/gni/v8.gni:111 v8_enable_handle_zapping Current value (from the default) = true @@ -6065,7 +6081,7 @@ v8_enable_handle_zapping v8_enable_heap_snapshot_verify Current value (from the default) = "" - From //v8/BUILD.gn:374 + From //v8/BUILD.gn:379 Enable runtime verification of heap snapshots produced for devtools. @@ -6108,7 +6124,7 @@ v8_enable_lazy_source_positions v8_enable_lite_mode Current value (from the default) = false - From //v8/gni/v8.gni:66 + From //v8/gni/v8.gni:70 Lite mode disables a number of performance optimizations to reduce memory at the cost of performance. @@ -6116,20 +6132,20 @@ v8_enable_lite_mode v8_enable_local_off_stack_check Current value (from the default) = false - From //v8/gni/v8.gni:104 + From //v8/gni/v8.gni:109 Check for off-stack allocated local handles. v8_enable_maglev Current value (from the default) = "" - From //v8/gni/v8.gni:74 + From //v8/gni/v8.gni:78 Enable the Maglev compiler. Sets -dV8_ENABLE_MAGLEV v8_enable_maglev_graph_printer Current value (from the default) = false - From //v8/BUILD.gn:410 + From //v8/BUILD.gn:415 Enable Maglev's graph printer. Sets -DV8_ENABLE_MAGLEV_GRAPH_PRINTER. @@ -6154,7 +6170,7 @@ v8_enable_pointer_compression v8_enable_pointer_compression_8gb Current value (from the default) = "" - From //v8/BUILD.gn:387 + From //v8/BUILD.gn:392 Enables pointer compression for 8GB heaps. Sets -DV8_COMPRESS_POINTERS_8GB. @@ -6193,11 +6209,7 @@ v8_enable_regexp_interpreter_threaded_dispatch v8_enable_runtime_call_stats Current value (from the default) = true - From //v8/gni/v8.gni:89 - - Enable runtime call stats. - TODO(liviurau): Remove old name after Chromium config update - https://crbug.com/1476977. + From //v8/gni/v8.gni:94 v8_enable_sandbox Current value (from the default) = "" @@ -6235,7 +6247,7 @@ v8_enable_slow_dchecks v8_enable_slow_tracing Current value (from the default) = true - From //v8/BUILD.gn:414 + From //v8/BUILD.gn:419 Enable slow tracing, e.g., tracing on every instruction or Turbofan node. Sets -DV8_ENABLE_SLOW_TRACING. @@ -6262,7 +6274,7 @@ v8_enable_snapshot_native_code_counters v8_enable_sparkplug Current value (from the default) = "" - From //v8/BUILD.gn:406 + From //v8/BUILD.gn:411 Enable Sparkplug Sets -DV8_ENABLE_SPARKPLUG. @@ -6333,7 +6345,7 @@ v8_enable_trace_unoptimized v8_enable_turbofan Current value (from the default) = "" - From //v8/gni/v8.gni:70 + From //v8/gni/v8.gni:74 Enable the Turbofan compiler. Sets -dV8_ENABLE_TURBOFAN. @@ -6383,19 +6395,19 @@ v8_enable_vtunetracemark v8_enable_wasm_gdb_remote_debugging Current value (from the default) = false - From //v8/gni/v8.gni:61 + From //v8/gni/v8.gni:65 Enable WebAssembly debugging via GDB-remote protocol. v8_enable_wasm_simd256_revec Current value (from the default) = false - From //v8/gni/v8.gni:84 + From //v8/gni/v8.gni:88 Enable 256-bit long vector re-vectorization pass in WASM compilation pipeline. v8_enable_webassembly Current value (from the default) = "" - From //v8/gni/v8.gni:81 + From //v8/gni/v8.gni:85 Include support for WebAssembly. If disabled, the 'WebAssembly' global will not be available, and embedder APIs to generate WebAssembly modules @@ -6424,15 +6436,22 @@ v8_expose_memory_corruption_api WARNING This will expose builtins that (by design) cause memory corruption. Sets -DV8_EXPOSE_MEMORY_CORRUPTION_API +v8_expose_public_symbols + Current value (from the default) = "" + From //v8/gni/v8.gni:53 + + Expose public symbols for native modules of Node.js and Electron. Default + is false. + v8_expose_symbols Current value (from the default) = false - From //v8/gni/v8.gni:52 + From //v8/gni/v8.gni:56 - Expose symbols for dynamic linking. + Deprecated for v8_expose_public_symbols. v8_fuzzilli Current value (from the default) = false - From //v8/gni/v8.gni:92 + From //v8/gni/v8.gni:97 Add fuzzilli fuzzer support. @@ -6458,7 +6477,7 @@ v8_has_valgrind v8_icu_path Current value (from the default) = "//third_party/icu" - From //v8/gni/v8.gni:145 + From //v8/gni/v8.gni:150 Location of icu. @@ -6476,7 +6495,7 @@ v8_is_on_release_branch v8_jitless Current value (from the default) = false - From //v8/BUILD.gn:402 + From //v8/BUILD.gn:407 Enable jitless mode, including compile-time optimizations. Note that even when this is set to 'false', one can run V8 in jitless mode at runtime by @@ -6539,7 +6558,7 @@ v8_promise_internal_field_count v8_scriptormodule_legacy_lifetime Current value (from the default) = false - From //v8/BUILD.gn:383 + From //v8/BUILD.gn:388 TODO(cbruni, v8:12302): Remove once API is migrated Enable legacy mode for ScriptOrModule's lifetime. By default it's a @@ -6548,7 +6567,7 @@ v8_scriptormodule_legacy_lifetime v8_shortcut_strings_in_minor_ms Current value (from the default) = false - From //v8/BUILD.gn:419 + From //v8/BUILD.gn:424 v8_snapshot_toolchain Current value (from the default) = "" @@ -6566,7 +6585,7 @@ v8_static_library v8_symbol_level Current value (from the default) = 2 - From //v8/gni/v8.gni:58 + From //v8/gni/v8.gni:62 Override global symbol level setting for v8. @@ -6627,7 +6646,7 @@ v8_use_external_startup_data v8_use_libm_trig_functions Current value (from the default) = true - From //v8/gni/v8.gni:137 + From //v8/gni/v8.gni:142 TODO: macros for determining endian type are clang specific. @@ -6639,7 +6658,7 @@ v8_use_mips_abi_hardfloat v8_use_perfetto Current value (from the default) = false - From //v8/gni/v8.gni:55 + From //v8/gni/v8.gni:59 Implement tracing using Perfetto (https://perfetto.dev). @@ -6651,14 +6670,14 @@ v8_use_siphash v8_use_zlib Current value (from the default) = true - From //v8/BUILD.gn:391 + From //v8/BUILD.gn:396 Compile V8 using zlib as dependency. Sets -DV8_USE_ZLIB v8_value_deserializer_hard_fail Current value (from the default) = false - From //v8/BUILD.gn:394 + From //v8/BUILD.gn:399 Make ValueDeserializer crash if the data to deserialize is invalid. @@ -6689,7 +6708,7 @@ v8_win64_unwinding_info v8_zlib_path Current value (from the default) = "//third_party/zlib" - From //v8/gni/v8.gni:148 + From //v8/gni/v8.gni:153 Location of zlib. @@ -6715,7 +6734,7 @@ win_console_app zlib_symbols_visible Current value (from the default) = false - From //third_party/zlib/BUILD.gn:10 + From //third_party/zlib/BUILD.gn:11 Expose zlib's symbols, used by Node.js to provide zlib APIs for its native modules. diff --git a/infra/gn_args.list b/infra/gn_args.list index 268c4ece..475d54fb 100644 --- a/infra/gn_args.list +++ b/infra/gn_args.list @@ -8,21 +8,24 @@ action_pool_depth added_rust_stdlib_libs Current value (from the default) = [] - From //build/config/rust.gni:44 + From //build/config/rust.gni:82 Any extra std rlibs in your Rust toolchain, relative to the standard - Rust toolchain. Typically used with 'use_unverified_rust_toolchain' = true + Rust toolchain. Typically used with 'rust_sysroot_absolute' allow_critical_memory_pressure_handling_in_foreground Current value (from the default) = false - From //content/common/features.gni:13 + From //content/common/features.gni:16 - Whether to perform critical memory pressure handling when in foreground (if - false, critical memory pressure is treated like moderate pressure in foreground). +allow_jni_multiplexing + Current value (from the default) = false + From //third_party/jni_zero/jni_zero.gni:12 + + Enables JNI multiplexing to reduce JNI native methods overhead. allow_runtime_configurable_key_storage Current value (from the default) = false - From //components/os_crypt/features.gni:17 + From //components/os_crypt/sync/features.gni:13 Whether to make account and service names for the crypto key storage configurable at runtime for embedders. @@ -56,7 +59,7 @@ also_build_lacros_chrome_for_architecture alternate_cdm_storage_id_key Current value (from the default) = "" - From //media/media_options.gni:178 + From //media/media_options.gni:252 If |enable_cdm_storage_id| is set, then an implementation specific key must also be provided. It can be provided by defining CDM_STORAGE_ID_KEY @@ -72,87 +75,103 @@ android_channel android_full_debug Current value (from the default) = false - From //build/config/compiler/BUILD.gn:60 + From //build/config/compiler/BUILD.gn:62 Normally, Android builds are lightly optimized, even for debug builds, to keep binary size down. Setting this flag to true disables such optimization angle_64bit_current_cpu Current value (from the default) = true - From //third_party/angle/gni/angle.gni:81 + From //third_party/angle/gni/angle.gni:114 angle_assert_always_on Current value (from the default) = false - From //third_party/angle/gni/angle.gni:76 + From //third_party/angle/gni/angle.gni:108 angle_build_all Current value (from the default) = false - From //third_party/angle/BUILD.gn:39 + From //third_party/angle/BUILD.gn:44 Don't build extra (test, samples etc) for Windows UWP. We don't have infrastructure (e.g. windowing helper functions) in place to run them. + Also don't build them with MSVC, because tests and unused dependencies + often have problems building with it, e.g. for C++20. angle_build_capture_replay_tests Current value (from the default) = false - From //third_party/angle/src/tests/capture_replay_tests/BUILD.gn:9 + From //third_party/angle/src/tests/capture_replay_tests/BUILD.gn:10 Determines if we build the capture_replay_tests. Off by default. +angle_build_mesa + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:293 + +angle_build_tests + Current value (from the default) = true + From //third_party/angle/gni/angle.gni:306 + + True if we want to build the ANGLE test suites. On by default in most configs. + angle_build_vulkan_system_info Current value (from the default) = true - From //third_party/angle/gni/angle.gni:237 + From //third_party/angle/gni/angle.gni:287 angle_capture_replay_composite_file_id Current value (from the default) = 1 - From //third_party/angle/src/tests/capture_replay_tests/BUILD.gn:14 + From //third_party/angle/src/tests/capture_replay_tests/BUILD.gn:15 angle_capture_replay_test_trace_dir Current value (from the default) = "traces" - From //third_party/angle/src/tests/capture_replay_tests/BUILD.gn:12 + From //third_party/angle/src/tests/capture_replay_tests/BUILD.gn:13 Set the trace directory. Default is traces angle_debug_layers_enabled Current value (from the default) = false - From //third_party/angle/gni/angle.gni:96 + From //third_party/angle/gni/angle.gni:129 By default we enable debug layers when asserts are turned on. angle_delegate_workers Current value (from the default) = true - From //third_party/angle/gni/angle.gni:134 + From //third_party/angle/gni/angle.gni:165 By default, ANGLE is using a thread pool for parallel compilation. Activating the delegate worker results in posting the tasks using the embedder API. In Chromium code base, it results in sending tasks to the worker thread pool. +angle_dump_pipeline_cache_graph + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:241 + angle_egl_extension Current value (from the default) = "" - From //third_party/angle/BUILD.gn:58 + From //third_party/angle/BUILD.gn:64 Allow shared library custom name extensions for setting soname such as libEGL.so.1 angle_enable_abseil Current value (from the default) = true - From //third_party/angle/BUILD.gn:46 + From //third_party/angle/BUILD.gn:52 Abseil has trouble supporting MSVC, particularly regarding component builds. http://crbug.com/1126524 angle_enable_annotator_run_time_checks Current value (from the default) = false - From //third_party/angle/BUILD.gn:49 + From //third_party/angle/BUILD.gn:55 Adds run-time checks to filter out EVENT() messages when the debug annotator is disabled. angle_enable_apple_translator_workarounds Current value (from the default) = false - From //third_party/angle/gni/angle.gni:249 + From //third_party/angle/gni/angle.gni:301 angle_enable_cgl Current value (from the default) = false - From //third_party/angle/gni/angle.gni:246 + From //third_party/angle/gni/angle.gni:298 TODO(jdarpinian): Support enabling CGL and EAGL at the same time using the soft linking code. Also support disabling both for Metal-only builds. @@ -164,161 +183,231 @@ angle_enable_cl angle_enable_cl_passthrough Current value (from the default) = false - From //third_party/angle/gni/angle.gni:166 + From //third_party/angle/gni/angle.gni:197 Enables the OpenCL pass-through back end angle_enable_commit_id Current value (from the default) = true - From //third_party/angle/BUILD.gn:42 + From //third_party/angle/BUILD.gn:48 Enable generating current commit information using git +angle_enable_context_mutex + Current value (from the default) = true + From //third_party/angle/BUILD.gn:84 + +angle_enable_context_mutex_recursion + Current value (from the default) = false + From //third_party/angle/BUILD.gn:94 + + May need to enable to fix recursion when vkAcquireNextImageKHR() returns back to ANGLE from + eglClientWaitSyncKHR(). May happen if Android Presentation Engine uses + EGL_KHR_fence_sync instead of EGL_ANDROID_native_fence_sync for synchronization. + To check call: adb shell "dumpsys SurfaceFlinger | grep 'Sync configuration'" + The Android's "testDrawingHardwareBitmapNotLeaking" test may be used for testing. + Disable this option to save performance on platforms that does not require recursion. + +angle_enable_crc_for_pipeline_cache + Current value (from the default) = true + From //third_party/angle/src/libANGLE/renderer/vulkan/BUILD.gn:36 + + Enable using CRC for pipeline cache data + angle_enable_custom_vulkan_cmd_buffers Current value (from the default) = true - From //third_party/angle/src/libANGLE/renderer/vulkan/BUILD.gn:15 + From //third_party/angle/src/libANGLE/renderer/vulkan/BUILD.gn:17 Enable custom (cpu-side) secondary command buffers angle_enable_custom_vulkan_outside_render_pass_cmd_buffers Current value (from the default) = true - From //third_party/angle/src/libANGLE/renderer/vulkan/BUILD.gn:24 + From //third_party/angle/src/libANGLE/renderer/vulkan/BUILD.gn:26 angle_enable_custom_vulkan_render_pass_cmd_buffers Current value (from the default) = true - From //third_party/angle/src/libANGLE/renderer/vulkan/BUILD.gn:28 + From //third_party/angle/src/libANGLE/renderer/vulkan/BUILD.gn:30 angle_enable_d3d11 Current value (from the default) = false - From //third_party/angle/gni/angle.gni:140 + From //third_party/angle/gni/angle.gni:171 angle_enable_d3d11_compositor_native_window Current value (from the default) = false - From //third_party/angle/gni/angle.gni:215 + From //third_party/angle/gni/angle.gni:265 angle_enable_d3d9 Current value (from the default) = false - From //third_party/angle/gni/angle.gni:139 + From //third_party/angle/gni/angle.gni:170 angle_enable_desktop_glsl - Current value (from the default) = true - From //third_party/angle/gni/angle.gni:188 + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:232 Translator frontend support: angle_enable_eagl Current value (from the default) = false - From //third_party/angle/gni/angle.gni:221 + From //third_party/angle/gni/angle.gni:271 We should use EAGL (ES) on iOS except on Mac Catalyst on Intel CPUs, which uses CGL (desktop GL). angle_enable_essl Current value (from the default) = true - From //third_party/angle/gni/angle.gni:192 + From //third_party/angle/gni/angle.gni:236 angle_enable_gl Current value (from the default) = true - From //third_party/angle/gni/angle.gni:142 + From //third_party/angle/gni/angle.gni:173 -angle_enable_gl_desktop +angle_enable_gl_desktop_backend Current value (from the default) = true - From //third_party/angle/gni/angle.gni:160 + From //third_party/angle/gni/angle.gni:191 + +angle_enable_gl_desktop_frontend + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:29 + + Enable Desktop GL frontend support. angle_enable_gl_null Current value (from the default) = true - From //third_party/angle/src/libANGLE/renderer/gl/BUILD.gn:16 + From //third_party/angle/src/libANGLE/renderer/gl/gl_backend.gni:8 + +angle_enable_global_mutex_load_time_allocate + Current value (from the default) = false + From //third_party/angle/BUILD.gn:82 + +angle_enable_global_mutex_recursion + Current value (from the default) = false + From //third_party/angle/BUILD.gn:77 angle_enable_glsl Current value (from the default) = true - From //third_party/angle/gni/angle.gni:193 + From //third_party/angle/gni/angle.gni:237 angle_enable_hlsl Current value (from the default) = false - From //third_party/angle/gni/angle.gni:191 + From //third_party/angle/gni/angle.gni:235 Translator backend support: +angle_enable_memory_alloc_logging + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:249 + + Memory allocation logging support. This feature is for debugging only. + Disabled by default. + angle_enable_metal Current value (from the default) = false - From //third_party/angle/gni/angle.gni:163 + From //third_party/angle/gni/angle.gni:194 http://anglebug.com/2634 -angle_enable_msl_through_spirv - Current value (from the default) = false - From //third_party/angle/gni/angle.gni:126 - - By default, include the SPIR-V based MSL translator (in addition to the direct translator) - angle_enable_null Current value (from the default) = false - From //third_party/angle/gni/angle.gni:159 + From //third_party/angle/gni/angle.gni:190 Disable null backend to save space for official build. angle_enable_overlay Current value (from the default) = false - From //third_party/angle/gni/angle.gni:241 + From //third_party/angle/gni/angle.gni:291 Enable overlay by default when debug layers are enabled. This is currently only implemented on Vulkan. angle_enable_perf_counter_output Current value (from the default) = false - From //third_party/angle/gni/angle.gni:218 + From //third_party/angle/gni/angle.gni:268 Disable performance counter output by default angle_enable_renderdoc Current value (from the default) = false - From //third_party/angle/gni/angle.gni:256 + From //third_party/angle/gni/angle.gni:310 -angle_enable_spirv_gen_through_glslang +angle_enable_share_context_lock Current value (from the default) = false - From //third_party/angle/gni/angle.gni:209 + From //third_party/angle/BUILD.gn:69 angle_enable_swiftshader Current value (from the default) = true - From //third_party/angle/gni/angle.gni:185 + From //third_party/angle/gni/angle.gni:229 angle_enable_trace Current value (from the default) = false - From //third_party/angle/gni/angle.gni:194 + From //third_party/angle/gni/angle.gni:238 angle_enable_trace_android_logcat Current value (from the default) = false - From //third_party/angle/gni/angle.gni:195 + From //third_party/angle/gni/angle.gni:239 angle_enable_trace_events Current value (from the default) = false - From //third_party/angle/gni/angle.gni:196 + From //third_party/angle/gni/angle.gni:240 + +angle_enable_unwind_backtrace_support + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:245 + + Unwind backtrace support. This feature is currently only implemented + on Android for debugging purposes. Disabled by default. angle_enable_vulkan Current value (from the default) = true - From //third_party/angle/gni/angle.gni:147 + From //third_party/angle/gni/angle.gni:178 angle_enable_vulkan_gpu_trace_events Current value (from the default) = false - From //third_party/angle/src/libANGLE/renderer/vulkan/BUILD.gn:18 + From //third_party/angle/src/libANGLE/renderer/vulkan/BUILD.gn:20 Enable Vulkan GPU trace event capability +angle_enable_vulkan_shared_ring_buffer_cmd_alloc + Current value (from the default) = false + From //third_party/angle/src/libANGLE/renderer/vulkan/BUILD.gn:33 + + Enable shared ring buffer command buffer allocator + angle_enable_vulkan_system_info Current value (from the default) = false - From //third_party/angle/BUILD.gn:32 + From //third_party/angle/BUILD.gn:35 Enable using Vulkan to collect system info as a fallback. angle_enable_vulkan_validation_layers Current value (from the default) = false - From //third_party/angle/gni/angle.gni:202 + From //third_party/angle/gni/angle.gni:258 + +angle_enable_wgpu + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:200 + + Disable WGPU backend. + +angle_expose_glx_entry_points + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:40 + + Expose GLX entry points by default when using Desktop GL on Linux. angle_expose_non_conformant_extensions_and_versions Current value (from the default) = false - From //third_party/angle/BUILD.gn:52 + From //third_party/angle/BUILD.gn:58 Enables non-conformant extensions and features +angle_expose_wgl_entry_points + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:37 + + Expose WGL entry points, which is necessary for running windows desktop GL applications against ANGLE. + TODO(http://anglebug.com/7628): This condition should be `angle_enable_gl_desktop_frontend && is_win` + This is disabled by default on Windows because it was causing some test failures. Once the WGL frontend + has more functionality implemented, we can re-enable this. + angle_extract_native_libs Current value (from the default) = false From //third_party/angle/gni/angle.gni:11 @@ -327,90 +416,102 @@ angle_extract_native_libs angle_force_context_check_every_call Current value (from the default) = false - From //third_party/angle/BUILD.gn:55 + From //third_party/angle/BUILD.gn:61 Optional feature that forces dirty state whenever we use a new context regardless of thread. angle_glesv2_extension Current value (from the default) = "" - From //third_party/angle/BUILD.gn:59 + From //third_party/angle/BUILD.gn:65 + +angle_has_astc_encoder + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:205 + + ASTC emulation is only built on standalone non-android builds angle_has_frame_capture Current value (from the default) = true - From //third_party/angle/gni/angle.gni:123 + From //third_party/angle/gni/angle.gni:157 Frame capture code is enabled by default if rapidjson is available. angle_has_histograms Current value (from the default) = true - From //third_party/angle/gni/angle.gni:252 + From //third_party/angle/gni/angle.gni:303 angle_has_rapidjson Current value (from the default) = true - From //third_party/angle/gni/angle.gni:91 + From //third_party/angle/gni/angle.gni:124 Indicate if the rapidJSON library is available to build with in third_party/. +angle_is_msvc + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:144 + angle_is_winuwp Current value (from the default) = false - From //third_party/angle/gni/angle.gni:110 + From //third_party/angle/gni/angle.gni:143 There's no "is_winuwp" helper in BUILDCONFIG.gn, so we define one ourselves angle_libs_suffix Current value (from the default) = "" - From //third_party/angle/gni/angle.gni:116 + From //third_party/angle/gni/angle.gni:150 angle_link_glx Current value (from the default) = false - From //third_party/angle/BUILD.gn:35 + From //third_party/angle/BUILD.gn:38 Link in system libGL, to work with apitrace. See doc/DebuggingTips.md. +angle_restricted_traces + Current value (from the default) = [] + From //third_party/angle/gni/angle.gni:23 + angle_shared_libvulkan Current value (from the default) = true - From //third_party/angle/gni/angle.gni:107 + From //third_party/angle/gni/angle.gni:140 Vulkan loader is statically linked on Mac. http://anglebug.com/4477 angle_standalone Current value (from the default) = false - From //third_party/angle/gni/angle.gni:137 + From //third_party/angle/gni/angle.gni:168 True if we are building inside an ANGLE checkout. +angle_test_enable_system_egl + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:209 + angle_use_custom_libvulkan Current value (from the default) = true - From //third_party/angle/src/common/vulkan/BUILD.gn:9 + From //third_party/angle/src/common/vulkan/BUILD.gn:13 angle_use_gbm Current value (from the default) = false - From //third_party/angle/gni/angle.gni:43 - -angle_use_spirv_gen_through_glslang - Current value (from the default) = false - From //third_party/angle/gni/angle.gni:169 - - Use glslang to generate SPIR-V + From //third_party/angle/gni/angle.gni:67 angle_use_vulkan_display Current value (from the default) = true - From //third_party/angle/gni/angle.gni:47 + From //third_party/angle/gni/angle.gni:71 angle_use_vulkan_null_display Current value (from the default) = false - From //third_party/angle/gni/angle.gni:156 + From //third_party/angle/gni/angle.gni:187 When set to true, ANGLE will not use VK_KHR_surface and VK_KHR_swapchain extensions. Content can be rendered only off-screen. angle_use_wayland Current value (from the default) = true - From //third_party/angle/gni/angle.gni:46 + From //third_party/angle/gni/angle.gni:70 angle_use_x11 Current value (from the default) = true - From //third_party/angle/gni/angle.gni:44 + From //third_party/angle/gni/angle.gni:68 angle_vulkan_display_mode Current value (from the default) = "simple" @@ -420,31 +521,31 @@ angle_vulkan_display_mode angle_vulkan_headers_dir Current value = "//third_party/vulkan-deps/vulkan-headers/src" - From //.gn:52 + From //.gn:58 Overridden from the default = "//third_party/angle/third_party/vulkan-deps/vulkan-headers/src" - From //third_party/angle/gni/angle.gni:229 + From //third_party/angle/gni/angle.gni:279 angle_vulkan_loader_dir Current value = "//third_party/vulkan-deps/vulkan-loader/src" - From //.gn:53 + From //.gn:59 Overridden from the default = "//third_party/angle/third_party/vulkan-deps/vulkan-loader/src" - From //third_party/angle/gni/angle.gni:231 + From //third_party/angle/gni/angle.gni:281 angle_vulkan_tools_dir Current value = "//third_party/vulkan-deps/vulkan-tools/src" - From //.gn:54 + From //.gn:60 Overridden from the default = "//third_party/angle/third_party/vulkan-deps/vulkan-tools/src" - From //third_party/angle/gni/angle.gni:233 + From //third_party/angle/gni/angle.gni:283 angle_vulkan_validation_layers_dir Current value = "//third_party/vulkan-deps/vulkan-validation-layers/src" - From //.gn:56 + From //.gn:62 Overridden from the default = "//third_party/angle/third_party/vulkan-deps/vulkan-validation-layers/src" - From //third_party/angle/gni/angle.gni:235 + From //third_party/angle/gni/angle.gni:285 angle_wayland_dir Current value (from the default) = "//third_party/angle/third_party/wayland" - From //third_party/angle/gni/angle.gni:226 + From //third_party/angle/gni/angle.gni:276 Directory where to find wayland source files @@ -457,32 +558,32 @@ angle_with_capture_by_default apm_debug_dump Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:117 + From //third_party/webrtc/webrtc.gni:129 Selects whether debug dumps for the audio processing module should be generated. archive_seed_corpus Current value (from the default) = true - From //build/config/sanitizers/sanitizers.gni:108 + From //build/config/sanitizers/sanitizers.gni:105 When true, seed corpora archives are built. -audio_input_sample_rate - Current value (from the default) = 16000 - From //chromecast/chromecast.gni:122 - - Recording happens at this sample rate. Must be 16000, 48000 or 96000 Hz. - auto_profile_path Current value (from the default) = "" - From //build/config/compiler/BUILD.gn:86 + From //build/config/compiler/BUILD.gn:88 AFDO (Automatic Feedback Directed Optimizer) is a form of profile-guided optimization that GCC supports. It used by ChromeOS in their official builds. To use it, set auto_profile_path to the path to a file containing the needed gcov profiling data. +backup_ref_ptr_poison_oob_ptr + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:220 + + Set to `enable_backup_ref_ptr_support && has_64_bit_pointers` when enabling. + blink_animation_use_time_delta Current value (from the default) = false From //third_party/blink/renderer/core/animation/BUILD.gn:11 @@ -519,9 +620,17 @@ blink_gc_plugin_option_warn_unneeded_finalizer a class has an empty destructor which would be unnecessarily invoked when finalized. +blink_heap_inside_shared_library + Current value (from the default) = false + From //third_party/blink/renderer/platform/heap/BUILD.gn:17 + + Whether the blink heap code is compiled into a shared library. + Embedders like CEF use this flag to include blink in a shared library under + non-component build. + blink_symbol_level Current value = 0 - From //out/Linux/args.gn:29 + From //out/test/args.gn:44 Overridden from the default = -1 From //third_party/blink/renderer/config.gni:40 @@ -540,31 +649,54 @@ blink_symbol_level branding_file_path Current value (from the default) = "//chrome/app/theme/chromium/BRANDING" - From //build/config/chrome_build.gni:24 + From //build/config/chrome_build.gni:76 The path to the BRANDING file in chrome/app/theme. branding_path_component Current value (from the default) = "chromium" - From //build/config/chrome_build.gni:18 + From //build/config/chrome_build.gni:69 + +branding_path_product + Current value (from the default) = "chromium" + From //build/config/chrome_build.gni:70 + +build_allocation_stack_trace_recorder + Current value (from the default) = false + From //base/debug/debug.gni:18 + +build_allocation_trace_recorder_full_reporting + Current value (from the default) = false + From //base/debug/debug.gni:28 + + If enabled, the recorder gathers some additional information, i.e. number of + collisions of slots, and prints these periodically. + + Since this might impact performance negatively, it's disabled by default. + Even if it's disabled we still collect some data, i.e. total number of + allocations. All other data will be set to a default value. build_angle_deqp_tests Current value (from the default) = false - From //third_party/angle/src/tests/BUILD.gn:12 + From //third_party/angle/gni/angle.gni:26 Don't build dEQP by default. build_angle_gles1_conform_tests Current value (from the default) = false - From //third_party/angle/src/tests/BUILD.gn:13 + From //third_party/angle/src/tests/BUILD.gn:10 build_angle_perftests Current value (from the default) = true - From //third_party/angle/src/tests/BUILD.gn:16 + From //third_party/angle/src/tests/BUILD.gn:13 build_angle_trace_perf_tests Current value (from the default) = false - From //third_party/angle/src/tests/BUILD.gn:14 + From //third_party/angle/src/tests/BUILD.gn:11 + +build_angle_trace_tests + Current value (from the default) = false + From //third_party/angle/src/tests/BUILD.gn:17 build_contextual_search Current value (from the default) = false @@ -572,7 +704,7 @@ build_contextual_search build_dawn_tests Current value (from the default) = true - From //ui/gl/features.gni:26 + From //ui/gl/features.gni:27 Should Dawn test binaries (unittests, end2end_tests, perf_tests) be built? Independent of use_dawn, which controls whether Dawn is used in Chromium. @@ -584,22 +716,50 @@ build_libsrtp_tests Tests may not be appropriate for some build environments, e.g. Windows. Rather than enumerate valid options, we just let clients ask for them. +build_tflite_with_ruy + Current value (from the default) = true + From //third_party/tflite/features.gni:16 + + Turns on TFLITE_WITH_RUY, using ruy as the gemm backend instead of gemmlowp. + build_tflite_with_xnnpack Current value (from the default) = true - From //third_party/tflite/features.gni:10 + From //third_party/tflite/features.gni:11 - This enables building TFLite with XNNPACK. Currently only available for - Linux x64. +build_webnn_with_tflite_model_loader + Current value (from the default) = false + From //third_party/blink/renderer/modules/ml/webnn/features.gni:15 + + This build flag enables WebNN to access hardware acceleration using TFLite + via the ModelLoader mojo interface. + +build_webnn_with_xnnpack + Current value (from the default) = true + From //third_party/blink/renderer/modules/ml/webnn/features.gni:9 + + This enables building WebNN with XNNPACK. Currently only available for + Windows, macOS and Linux on x64, x86 and arm64. build_with_internal_optimization_guide Current value (from the default) = false - From //components/optimization_guide/features.gni:38 + From //components/optimization_guide/features.gni:41 + When TFLite works for windows arm64, this lib should just work seamlessly. Use is_chrome_branded as a proxy for "does src-internal exist". +build_with_mediapipe_lib + Current value (from the default) = false + From //third_party/mediapipe/features.gni:11 + + This should only be changed in a local args.gn file for now. This library is + not ready to be built into Chromium yet. + + MediaPipe support is under development, but should work on Linux and Windows + Intel chips. + build_with_mozilla Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:144 + From //third_party/webrtc/webrtc.gni:156 Enable to use the Mozilla internal settings. @@ -607,33 +767,18 @@ build_with_tflite_lib Current value (from the default) = true From //components/optimization_guide/features.gni:14 -builtin_cert_verifier_feature_supported - Current value (from the default) = false - From //net/features.gni:46 - - Platforms where both the builtin cert verifier and a platform verifier are - supported and may be switched between using the CertVerifierBuiltin feature - flag. This does not include platforms where the builtin cert verifier is - the only verifier supported. - -builtin_cert_verifier_policy_supported - Current value (from the default) = false - From //chrome/common/features.gni:35 - - Platforms where the BuiltinCertificateVerifierEnabled enterprise policy is - supported. This must must match the supported_on list of the policy in - policy_templates.json and be a subset of the - builtin_cert_verifier_feature_supported platforms. - See crbug.com/410574. This can be removed when the builtin verifier is - unconditionally enabled on all platforms. + This enables build with TFLite library. + TODO(b/269198471): Make sure the internal archive files for opt guide get + updated when win arm64 gets added as a supported platform for TFLite. bundle_widevine_cdm - Current value = false - From //out/Linux/args.gn:49 + Current value = true + From //out/test/args.gn:66 Overridden from the default = false From //third_party/widevine/cdm/widevine.gni:58 - Widevine CDM is bundled as part of Google Chrome builds. + Widevine CDM is bundled as part of Google Chrome and + Google Chrome for Testing builds. cast_allow_developer_certificate Current value (from the default) = false @@ -642,73 +787,87 @@ cast_allow_developer_certificate Whether or not self-signed certificates are enabled for the receiver and sender implementations. -cast_build_incremental - Current value (from the default) = "999999" - From //chromecast/chromecast.gni:34 - - The incremental build number. The Cast automated builders will set this - value to indicate the buildset. Note: The default value should be greater - than any value the builder may assign to prevent attempted automatic updates - when the default value is used. - -cast_is_debug - Current value (from the default) = false - From //chromecast/chromecast.gni:28 - - If true, IS_CAST_DEBUG_BUILD() will evaluate to 1 in version.h. Otherwise, - it will evaluate to 0. Overriding this when is_debug=false is useful for - doing engineering builds. - cast_streaming_enable_remoting Current value (from the default) = false From //components/cast_streaming/features.gni:9 Whether the cast remoting feature should be enabled in this build. -cast_volume_control_in_avsettings - Current value (from the default) = false - From //chromecast/chromecast.gni:59 - - Set to true on devices where the VolumeControl implementation is in the - libcast_avsettings_1.0.so instead of in libcast_media_1.0.so. - cc_wrapper Current value (from the default) = "" From //build/toolchain/cc_wrapper.gni:37 Set to "ccache", "icecc" or "distcc". Probably doesn't work on windows. +chrome_certificate_policies_supported + Current value (from the default) = true + From //chrome/common/features.gni:46 + + Platforms where Chrome x509 server certificate enterprise policies are + supported. This must must match the supported_on/future_on list of the + policy in the following policies stored in + components/policy/resources/templates/policy_definitions/: + + * CertificateManagement/CACertificates.yaml + * CertificateManagement/CADistrustedCertificates.yaml + * CertificateManagement/CAHintCertificates.yaml + * CertificateManagement/CAPlatformIntegrationEnabled.yaml + + +chrome_enable_logging_by_default + Current value (from the default) = false + From //chrome/common/features.gni:34 + + Enables the build to have logging enabled by default. + This is intended for use only in developer builds. + chrome_pgo_phase Current value = 2 - From //out/Linux/args.gn:67 + From //out/test/args.gn:95 Overridden from the default = 2 - From //build/config/compiler/pgo/pgo.gni:20 + From //build/config/compiler/pgo/pgo.gni:31 + +chrome_root_store_only + Current value (from the default) = true + From //net/features.gni:53 + + Platforms for which certificate verification can only be performed using + the builtin cert verifier with the Chrome Root Store. + +chrome_root_store_optional + Current value (from the default) = false + From //net/features.gni:49 + + Platforms for which certificate verification can be performed using the + builtin cert verifier with the Chrome Root Store, and this can be + configured using the ChromeRootStoreUsed feature flag. When the feature + flag is false, verification may be done with the platform verifier or the + builtin verifier using platform roots, depending on the platform. + See https://crbug.com/1216547 for status. chrome_root_store_supported - Current value (from the default) = false - From //net/features.gni:50 - - Platforms for which the builtin cert verifier can use the Chrome Root Store. - See https://crbug.com/1216547 for status. + Current value (from the default) = true + From //net/features.gni:68 chrome_wide_echo_cancellation_supported Current value (from the default) = true - From //media/media_options.gni:266 + From //media/media_options.gni:345 - The audio service must be sandboxed for us to do audio processing there. - Currently it is so only on Win and Mac. + Currently it is available on Win, Mac and Linux, since it requires the audio + service to run in a separate process. -chromecast_branding - Current value (from the default) = "public" - From //build/config/chromecast_build.gni:21 +chromedriver_disclaim_responsibility + Current value (from the default) = true + From //chrome/test/chromedriver/BUILD.gn:20 - chromecast_branding is used to include or exclude Google-branded components. - Set it to "public" for a Chromium build. - TODO(crbug.com/1293517): Remove usages in Chromium and move to //chromecast. + Make macOS request permissions for the chrome binary instead of its parent + process (usually the Terminmal.app). + This is required for running chrome tests on Google's CI machines, but for + some vendor builds like Microsoft Teams they need to turn this off. chromeos_afdo_platform Current value (from the default) = "atom" - From //build/config/compiler/BUILD.gn:109 + From //build/config/compiler/BUILD.gn:112 This configuration is used to select a default profile in Chrome OS based on the microarchitectures we are using. This is only used if @@ -719,7 +878,7 @@ chromeos_is_browser_only Current value (from the default) = false From //build/config/chromeos/ui_mode.gni:19 - Deprecated, use is_lacros. + Deprecated, use is_chromeos_lacros. This controls UI configuration for Chrome. If this flag is set, we assume Chrome runs on Chrome OS devices, using @@ -728,41 +887,53 @@ chromeos_is_browser_only TODO(crbug.com/1052397): Define chromeos_product instead, which takes either "browser" or "ash". Re-define the following variables as: - is_lacros = chromeos_product == "browser" - is_ash = chromeos_product == "ash" + is_chromeos_lacros = chromeos_product == "browser" + is_chromeos_ash = chromeos_product == "ash" clang_base_path Current value (from the default) = "//third_party/llvm-build/Release+Asserts" - From //build/config/clang/clang.gni:17 + From //build/config/clang/clang.gni:29 clang_diagnostic_dir Current value (from the default) = "../../tools/clang/crashreports" - From //build/config/compiler/compiler.gni:124 + From //build/config/compiler/compiler.gni:128 + +clang_embed_bitcode + Current value (from the default) = false + From //build/config/clang/clang.gni:33 + + Specifies whether or not bitcode should be embedded during compilation. + This is used for creating a MLGO corpus from Chromium in the non-ThinLTO case. clang_emit_debug_info_for_profiling Current value (from the default) = false - From //build/config/compiler/BUILD.gn:112 + From //build/config/compiler/BUILD.gn:116 Emit debug information for profiling wile building with clang. + Only enable this for ChromeOS official builds for AFDO. clang_sample_profile_path Current value (from the default) = "" - From //build/config/compiler/BUILD.gn:93 + From //build/config/compiler/BUILD.gn:96 Path to an AFDO profile to use while building with clang, if any. Empty implies none. clang_use_chrome_plugins - Current value (from the default) = true - From //build/config/clang/clang.gni:14 + Current value = true + From //out/test/args.gn:56 + Overridden from the default = true + From //build/config/clang/clang.gni:15 clang_use_default_sample_profile Current value (from the default) = false - From //build/config/compiler/BUILD.gn:102 + From //build/config/compiler/BUILD.gn:105 clang_version - Current value (from the default) = "15.0.0" - From //build/toolchain/toolchain.gni:36 + Current value (from the default) = "18" + From //build/toolchain/toolchain.gni:53 + + TODO(crbug.com/1517549): Remove in the next Clang roll. com_init_check_hook_disabled Current value (from the default) = false @@ -778,9 +949,13 @@ compile_suid_client Current value (from the default) = true From //sandbox/linux/BUILD.gn:15 +compile_syscall_broker + Current value (from the default) = true + From //sandbox/linux/BUILD.gn:19 + compiler_timing Current value (from the default) = false - From //build/config/compiler/BUILD.gn:115 + From //build/config/compiler/BUILD.gn:119 Turn this on to have the compiler output extra timing information. @@ -817,17 +992,24 @@ concurrent_links The default to use varies by platform and by the amount of memory available, so we call out to a script to get the right value. +content_enable_legacy_ipc + Current value (from the default) = false + From //content/common/features.gni:24 + + We allow legacy IPC to be enabled for Android (GIN Java bridge), and + Pepper usage. + content_shell_major_version Current value (from the default) = "999" - From //content/shell/BUILD.gn:37 + From //content/shell/BUILD.gn:45 content_shell_product_name Current value (from the default) = "Content Shell" - From //content/shell/BUILD.gn:35 + From //content/shell/BUILD.gn:43 content_shell_version Current value (from the default) = "999.77.34.5" - From //content/shell/BUILD.gn:36 + From //content/shell/BUILD.gn:44 coverage_instrumentation_input_file Current value (from the default) = "" @@ -843,45 +1025,67 @@ coverage_instrumentation_input_file cppgc_allow_allocations_in_prefinalizers Current value (from the default) = false - From //v8/BUILD.gn:297 + From //v8/BUILD.gn:330 Enable allocations during prefinalizer invocations. +cppgc_enable_2gb_cage + Current value (from the default) = false + From //v8/gni/v8.gni:132 + + Enable 2gb cage for fast compression/decompression. Currently disabled + due to an increased number of OOMs. + cppgc_enable_caged_heap Current value (from the default) = true - From //v8/BUILD.gn:290 + From //v8/BUILD.gn:323 + +cppgc_enable_larger_cage + Current value (from the default) = false + From //v8/gni/v8.gni:135 + + Enable support for larger cages, up to 16GB. cppgc_enable_object_names Current value (from the default) = false - From //v8/gni/v8.gni:86 + From //v8/gni/v8.gni:116 - Enable object names in cppgc for debug purposes. + Enable object names in cppgc for profiling purposes. cppgc_enable_pointer_compression Current value (from the default) = false - From //v8/gni/v8.gni:92 + From //v8/gni/v8.gni:128 Enable pointer compression in cppgc. +cppgc_enable_slim_write_barrier + Current value (from the default) = true + From //v8/gni/v8.gni:125 + + Enables a slim write barrier that only performs a single check in the fast + path and delegates all further checks to a slow path call. This is fast + in a setting with few slow-path checks, i.e., with disabled young generation + GC. + cppgc_enable_verify_heap Current value (from the default) = "" - From //v8/BUILD.gn:294 + From //v8/BUILD.gn:327 Enables additional heap verification phases and checks. cppgc_enable_young_generation Current value (from the default) = false - From //v8/gni/v8.gni:89 + From //v8/gni/v8.gni:119 Enable young generation in cppgc. cppgc_is_standalone Current value (from the default) = false - From //v8/gni/v8.gni:83 + From //v8/gni/v8.gni:113 crashpad_dependencies Current value = "chromium" - From //.gn:49 + From //.gn:55 Overridden from the default = "standalone" From //third_party/crashpad/crashpad/build/crashpad_buildconfig.gni:19 @@ -932,81 +1136,104 @@ custom_vulkan_loader_library_name dawn_always_assert Current value (from the default) = false - From //third_party/dawn/scripts/dawn_features.gni:42 + From //third_party/dawn/scripts/dawn_features.gni:66 Enable Dawn's ASSERTs even in release builds dawn_complete_static_libs Current value (from the default) = false - From //third_party/dawn/scripts/dawn_features.gni:47 + From //third_party/dawn/scripts/dawn_features.gni:71 Should the Dawn static libraries be fully linked vs. GN's default of treating them as source sets. This is useful for people using Dawn standalone to produce static libraries to use in their projects. +dawn_enable_d3d11 + Current value (from the default) = false + From //third_party/dawn/scripts/dawn_features.gni:74 + + Enables the compilation of Dawn's D3D11 backend + dawn_enable_d3d12 Current value (from the default) = false - From //third_party/dawn/scripts/dawn_features.gni:50 + From //third_party/dawn/scripts/dawn_features.gni:77 Enables the compilation of Dawn's D3D12 backend dawn_enable_desktop_gl Current value (from the default) = true - From //third_party/dawn/scripts/dawn_features.gni:61 + From //third_party/dawn/scripts/dawn_features.gni:88 Enables the compilation of Dawn's OpenGL backend (best effort, non-conformant) dawn_enable_error_injection Current value (from the default) = false - From //third_party/dawn/scripts/dawn_features.gni:76 + From //third_party/dawn/scripts/dawn_features.gni:103 dawn_enable_metal Current value (from the default) = false - From //third_party/dawn/scripts/dawn_features.gni:53 + From //third_party/dawn/scripts/dawn_features.gni:80 Enables the compilation of Dawn's Metal backend dawn_enable_null Current value (from the default) = true - From //third_party/dawn/scripts/dawn_features.gni:57 + From //third_party/dawn/scripts/dawn_features.gni:84 Enables the compilation of Dawn's Null backend (required for unittests, obviously non-conformant) dawn_enable_opengles Current value (from the default) = true - From //third_party/dawn/scripts/dawn_features.gni:67 + From //third_party/dawn/scripts/dawn_features.gni:94 + +dawn_enable_spirv_validation + Current value (from the default) = true + From //third_party/dawn/scripts/dawn_features.gni:121 + + Disable SPIR-V validation on Android because it adds a significant amount + to the binary size, and Tint's output should be well-formed. dawn_enable_vulkan Current value (from the default) = true - From //third_party/dawn/scripts/dawn_features.gni:71 + From //third_party/dawn/scripts/dawn_features.gni:98 Enables the compilation of Dawn's Vulkan backend Disables vulkan when compiling for UWP, since UWP only supports d3d dawn_enable_vulkan_loader Current value (from the default) = true - From //third_party/dawn/scripts/dawn_features.gni:90 + From //third_party/dawn/scripts/dawn_features.gni:117 dawn_enable_vulkan_validation_layers Current value (from the default) = true - From //third_party/dawn/scripts/dawn_features.gni:85 + From //third_party/dawn/scripts/dawn_features.gni:112 -dawn_use_angle +dawn_tests_use_angle Current value (from the default) = true - From //third_party/dawn/scripts/dawn_features.gni:33 + From //third_party/dawn/scripts/dawn_features.gni:50 + +dawn_use_built_dxc + Current value (from the default) = false + From //third_party/dawn/scripts/dawn_features.gni:61 + + Whether we allow building DXC. + DXC requires SM6.0+ which is blocklisted on x86, + and arm64 support is not implemented yet. + See crbug.com/tint/1753. dawn_use_swiftshader Current value (from the default) = true - From //third_party/dawn/scripts/dawn_features.gni:37 + From //third_party/dawn/scripts/dawn_features.gni:55 Enables SwiftShader as the fallback adapter. Requires dawn_swiftshader_dir to be set to take effect. + TODO(dawn:1536): Enable SwiftShader for Android. dcheck_always_on Current value = false - From //out/Linux/args.gn:14 + From //out/test/args.gn:18 Overridden from the default = false From //build/config/dcheck_always_on.gni:25 @@ -1018,25 +1245,16 @@ dcheck_is_configurable DCHECKS can then be set as fatal/non-fatal via the "DcheckIsFatal" feature. See https://bit.ly/dcheck-albatross for details on how this is used. -default_command_line_flags - Current value (from the default) = [] - From //chromecast/chromecast.gni:97 - - Contain default command line switches we want to set. - This will get joined into a comma-separated list that looks like: - "test-flag-one=public,test-flag-two=true,test-flag-three=1," - TODO(ziyangch): make the parsing logic have ability to quote/escape characters. - -device_user_agent_suffix - Current value (from the default) = "" - From //chromecast/chromecast.gni:151 - - device specific string to append to User string. - devtools_components_visibility Current value (from the default) = ["*"] From //third_party/devtools-frontend/src/front_end/ui/components/visibility.gni:8 +devtools_css_hot_reload_enabled + Current value (from the default) = false + From //third_party/devtools-frontend/src/scripts/build/ninja/generate_css.gni:11 + + Whether to enable CSS hot reloading with `watch` script or not. + devtools_dcheck_always_on Current value (from the default) = false From //third_party/devtools-frontend/src/scripts/build/ninja/vars.gni:8 @@ -1072,13 +1290,24 @@ devtools_panels_visibility Current value (from the default) = ["*"] From //third_party/devtools-frontend/src/front_end/panels/visibility.gni:8 +devtools_release_sourcemaps + Current value (from the default) = false + From //third_party/devtools-frontend/src/scripts/build/ninja/bundle.gni:20 + + If this is enabled, we will emit source maps for the entrypoint bundles. + Since we only bundle release builds, this flag can't be used with + is_debug = true. + Note that this flag works regardless of the devtools_skip_typecheck or + devtools_fast_bundle GN arg. Both rollup.js or ESBuild will emit source + maps if this flag is set. + devtools_root_location Current value (from the default) = "third_party/devtools-frontend/src" From //build/config/devtools.gni:26 devtools_skip_typecheck Current value (from the default) = false - From //third_party/devtools-frontend/src/third_party/typescript/typescript.gni:15 + From //third_party/devtools-frontend/src/third_party/typescript/typescript.gni:16 devtools_third_party_visibility Current value (from the default) = ["*"] @@ -1088,38 +1317,32 @@ devtools_ui_legacy_visibility Current value (from the default) = ["*"] From //third_party/devtools-frontend/src/front_end/ui/legacy/visibility.gni:8 -devtools_use_rbe +devtools_use_remoteexec Current value (from the default) = false - From //third_party/devtools-frontend/src/third_party/typescript/typescript.gni:13 + From //third_party/devtools-frontend/src/third_party/typescript/typescript.gni:14 - Set to true to enable remote compilation of TypeScript using RBE. - This flag is temporarily until DevTools RBE support has stabilized. - At that point, this flag will be folded together with "use_rbe". + Set to true to enable remote compilation of TypeScript using reclient. + This flag is temporarily until DevTools reclient support has stabilized. + At that point, this flag will be folded together with "use_remoteexec". TODO(crbug.com/1139220): Remove the flag once we are confident. devtools_visibility Current value = ["*"] - From //.gn:63 + From //.gn:71 Overridden from the default = [] From //third_party/devtools-frontend/src/front_end/visibility.gni:6 -dfmify_feed_v2_modern - Current value (from the default) = false - From //components/feed/features.gni:13 - - Whether to include Feed as a DFM in ChromeModern builds. - disable_brotli_filter Current value (from the default) = false - From //net/features.gni:22 + From //net/features.gni:24 Do not disable brotli filter by default. disable_fieldtrial_testing_config Current value = true - From //out/Linux/args.gn:18 + From //out/test/args.gn:22 Overridden from the default = false - From //components/variations/service/BUILD.gn:14 + From //components/variations/service/BUILD.gn:15 Set to true make a build that disables activation of field trial tests specified in testing/variations/fieldtrial_testing_config.json. @@ -1129,9 +1352,10 @@ disable_fieldtrial_testing_config disable_file_support Current value (from the default) = false - From //net/features.gni:9 + From //net/features.gni:11 Disables support for file URLs. File URL support requires use of icu. + Cronet does not support file URLs. disable_histogram_support Current value (from the default) = false @@ -1141,32 +1365,42 @@ disable_histogram_support disable_libfuzzer Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:86 + From //build/config/sanitizers/sanitizers.gni:87 Helper variable for testing builds with disabled libfuzzer. Not for client use. -disable_secure_flac_and_opus_decoding +disable_zstd_filter Current value (from the default) = false - From //chromecast/chromecast.gni:101 + From //net/features.gni:27 - Set to true to disable secure flac/opus support in EME, when using - cast CMA media backend and supporting Widevine or Playready. + Do not disable zstd filter by default, except for Cronet builds. + +enable_accessibility_service + Current value (from the default) = false + From //services/accessibility/buildflags.gni:11 + + Used to enable the Accessibility Service. Override this in + gn args on supported platforms (see below). + +enable_accessibility_service_internal + Current value (from the default) = false + From //services/accessibility/buildflags.gni:20 + +enable_all_rust_features + Current value = true + From //out/test/args.gn:93 + Overridden from the default = false + From //build/config/rust.gni:50 + + As we incrementally enable Rust on mainstream builders, we want to enable + the toolchain (by switching 'enable_rust' to true) while still disabling + almost all Rust features). Yet we still want to have some builders with + all Rust features enabled. enable_arcore Current value (from the default) = false - From //device/vr/buildflags/buildflags.gni:38 - - Controls inclusion of code for ARCore that must be identical across configs. - Once crbug.com/920424 is resolved, this will exactly control whether ARCore - is supported. - TODO(crbug.com/843374): AR should not depend on |enable_vr|. - -enable_assistant - Current value (from the default) = false - From //chromecast/chromecast.gni:47 - - Set true to enable assistant features. + From //device/vr/buildflags/buildflags.gni:21 enable_assistant_integration_tests Current value (from the default) = false @@ -1177,40 +1411,49 @@ enable_assistant_integration_tests server, which increases the library size, which is why we introduced this flag to disable them in the release builds. -enable_audio_capture_service - Current value (from the default) = false - From //chromecast/chromecast.gni:128 - - Set to true to enable audio capture service for audio input. - -enable_autofill_assistant_api - Current value (from the default) = false - From //extensions/buildflags/buildflags.gni:10 - - Compile time flag for the Autofill Assistant API. - WARNING: This must not be enabled in official builds. - enable_av1_decoder Current value (from the default) = true - From //media/media_options.gni:93 + From //media/media_options.gni:133 + + If overriding this to false, possibly via its component values, + `enable_libaom` should likely also be overriddent to false. enable_background_contents Current value (from the default) = true - From //chrome/common/features.gni:38 + From //chrome/common/features.gni:49 Enables support for background apps. enable_background_mode Current value (from the default) = true - From //chrome/common/features.gni:39 + From //chrome/common/features.gni:50 + +enable_backup_ref_ptr_feature_flag + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:194 + + Enable the feature flag required to activate backup ref pointers. That is to + say `PartitionAllocBackupRefPtr`. + + This is meant to be used primarily on bots. It is much easier to override + the feature flags using a binary flag instead of updating multiple bots's + scripts to pass command line arguments. + +enable_backup_ref_ptr_instance_tracer + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:222 enable_backup_ref_ptr_slow_checks Current value (from the default) = false - From //base/allocator/allocator.gni:107 + From //base/allocator/partition_allocator/partition_alloc.gni:186 + +enable_backup_ref_ptr_support + Current value (from the default) = true + From //base/allocator/partition_allocator/partition_alloc.gni:144 enable_base_tracing Current value (from the default) = true - From //build_overrides/build.gni:22 + From //build_overrides/build.gni:36 Tracing support requires //third_party/perfetto, which is not available in libchrome (CrOS's version of //base). This flag can disable tracing support @@ -1220,27 +1463,34 @@ enable_base_tracing enable_basic_print_dialog Current value (from the default) = true - From //chrome/common/features.gni:43 + From //printing/buildflags/buildflags.gni:34 - Enable the printing system dialog for platforms that support printing + Enables the printing system dialog for platforms that support printing and have a system dialog. enable_basic_printing Current value (from the default) = true - From //printing/buildflags/buildflags.gni:14 + From //printing/buildflags/buildflags.gni:25 - Enables basic printing support and UI. + TODO(awscreen) Safety net to avoid revert for a flag rename which affects + many locations. Remove this once `enable_printing` has landed. enable_blink_bindings_tracing Current value (from the default) = false - From //third_party/blink/renderer/platform/BUILD.gn:193 + From //third_party/blink/renderer/platform/BUILD.gn:229 Enable TRACE_EVENT instrumentation for Blink bindings. Disabled by default as it increases binary size. +enable_bound_session_credentials + Current value (from the default) = true + From //components/signin/features.gni:10 + + Compile time flag for Bound Session Credentials. + enable_browser_speech_service Current value (from the default) = true - From //chrome/services/speech/buildflags/buildflags.gni:22 + From //chrome/services/speech/buildflags/buildflags.gni:24 Whether the speech service is implemented in the browser as a hosted service possibly running in a utility process. @@ -1253,14 +1503,11 @@ enable_browser_speech_service enable_call_graph_profile_sort Current value (from the default) = true - From //build/config/compiler/BUILD.gn:162 - - Turn off the --call-graph-profile-sort flag for lld by default. Enable - selectively for targets where it's beneficial. + From //build/config/compiler/BUILD.gn:246 enable_callgrind Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:54 + From //third_party/pdfium/pdfium.gni:66 Enable callgrind for performance profiling @@ -1268,52 +1515,45 @@ enable_captive_portal_detection Current value (from the default) = true From //components/captive_portal/core/features.gni:9 -enable_cast_audio_manager_mixer +enable_cardboard Current value (from the default) = false - From //chromecast/chromecast.gni:106 + From //device/vr/buildflags/buildflags.gni:19 enable_cast_audio_renderer Current value (from the default) = false - From //build/config/chromecast_build.gni:38 + From //build/config/cast.gni:24 True to enable the cast audio renderer. TODO(crbug.com/1293520): Remove this buildflag. -enable_cast_media_runtime - Current value (from the default) = false - From //chromecast/chromecast.gni:144 - - True to link in alternate build targets for the Cast Media Runtime. - enable_cast_receiver Current value (from the default) = false - From //build/config/chromecast_build.gni:47 + From //build/config/cast.gni:42 Set this true for a Chromecast build. Chromecast builds are supported on Linux, Android, ChromeOS, and Fuchsia. - - During the migration from is_chromecast, this must be set to the same value - as is_chromecast. enable_cast_renderer Current value (from the default) = false - From //build/config/chromecast_build.gni:62 + From //build/config/cast.gni:51 enable_cdm_host_verification - Current value (from the default) = false - From //media/media_options.gni:167 + Current value = false + From //out/test/args.gn:68 + Overridden from the default = false + From //media/media_options.gni:240 enable_cdm_storage_id Current value (from the default) = false - From //media/media_options.gni:171 + From //media/media_options.gni:245 Enable Storage ID which is used by CDMs. This is only available with chrome branding, but may be overridden by other embedders. enable_cet_shadow_stack Current value (from the default) = true - From //build/config/compiler/compiler.gni:131 + From //build/config/compiler/compiler.gni:135 Mark binaries as compatible with Shadow Stack of Control-flow Enforcement Technology (CET). If Windows version and hardware supports the feature and @@ -1321,53 +1561,57 @@ enable_cet_shadow_stack performed as mitigation against Return-oriented programming (ROP). https://chromium.googlesource.com/chromium/src/+/main/docs/design/sandbox.md#cet-shadow-stack +enable_check_raw_ptr_fields + Current value (from the default) = false + From //build/config/clang/clang.gni:19 + +enable_check_raw_ref_fields + Current value (from the default) = false + From //build/config/clang/clang.gni:26 + enable_chrome_notifications Current value (from the default) = true - From //chrome/common/features.gni:46 + From //chrome/common/features.gni:53 Enables usage of notifications via Chrome's MessageCenter. -enable_chromecast_extensions +enable_chromium_prelude Current value (from the default) = true - From //chromecast/chromecast.gni:191 + From //build/config/rust.gni:44 -enable_chromecast_webui - Current value (from the default) = true - From //chromecast/chromecast.gni:44 - - If true, Chromecast WebUI resources are included in a build. - TODO(antz): default to false for audio-only builds, might need further - clean up (b/27119303) - -enable_chromium_runtime_cast_renderer - Current value (from the default) = false - From //chromecast/chromecast.gni:141 - - True to use the Chromium runtime for cast rendering. - -enable_chromium_updater - Current value (from the default) = false - From //chrome/browser/buildflags.gni:17 - - Chromium Updater is a cross-platform updater for desktop clients built using - Chromium code and tools. Code is in //chrome/updater. The design doc is - located at http://bit.ly/chromium-updater. Chrome is currently installed and - updated with proprietary updater (Omaha & Keystone). This build flag allows - integration with the open source, cross-platform Chromium updater. - TODO(crbug.com/1054060) + The chromium prelude crate provides the `chromium::import!` macro which + is needed to depend on first-party rust libraries. Third-party libraries + are specified with cargo_crate and do not get imported through this macro. + + The macro requires //third_party/rust for syn, quote, and proc_macro2. + Downstream projects that want to use //build for the rust GN templates but + don't want to enable the chromium prelude can disable it here, and should + specify a globally unique `crate_name` in their rust library GN rules + instead. Note that using a `crate_name` is strongly discouraged inside + Chromium, and is also discouraged for downstream projects when possible. enable_click_to_call Current value (from the default) = true - From //chrome/common/features.gni:49 + From //chrome/common/features.gni:56 Disable Click to Call on Fuchsia. -enable_color_manager - Current value (from the default) = false - From //components/exo/buildflags.gni:11 +enable_component_updater + Current value (from the default) = true + From //chrome/common/features.gni:60 - If true, enables zcr_color_manager_v1. This is a temporary flag meant to - guard an in-progress implementation, to be replaced by a feature flag. + Whether to enable the component updater. Code is in + //components/component_updater. + +enable_compose + Current value (from the default) = true + From //components/compose/features.gni:7 + + Whether Compose is enabled in the build. + +enable_concurrent_basic_print_dialogs + Current value (from the default) = true + From //printing/buildflags/buildflags.gni:55 enable_cros_libassistant Current value (from the default) = false @@ -1377,32 +1621,64 @@ enable_cros_libassistant enable_cros_media_app Current value = false - From //out/Linux/args.gn:37 + From //out/test/args.gn:52 Overridden from the default = false From //ash/webui/media_app_ui/media_app_ui.gni:7 Whether to enable the "real" ChromeOS Media App. When false, a mock app is bundled for testing integration points. +enable_cxx + Current value (from the default) = true + From //build/config/rust.gni:32 + + The CXX tool is in //third_party/rust which is not shared with downstream + projects yet. So they need to copy the required dependencies and GN files + into their project to enable CXX there. + enable_dangling_raw_ptr_checks Current value (from the default) = false - From //base/allocator/allocator.gni:108 + From //base/allocator/partition_allocator/partition_alloc.gni:199 + +enable_dangling_raw_ptr_feature_flag + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:207 + + Enable the feature flag required to check for dangling pointers. That is to + say `PartitionAllocDanglingPtr`. + + This is meant to be used primarily on bots. It is much easier to override + the feature flags using a binary flag instead of updating multiple bots's + scripts to pass command line arguments. + +enable_dangling_raw_ptr_perf_experiment + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:217 + + Enables the dangling raw_ptr checks feature for the performance experiment. + Not every dangling pointers have been fixed or annotated yet. To avoid + accounting for the cost of calling the PA's embedder's callbacks when a + dangling pointer has been detected, this simulates the raw_ptr to be + allowed to dangle. + + This flag is temporary, and isn't used by PA embedders, so it doesn't need + to go through build_overrides enable_dav1d_decoder Current value (from the default) = true - From //media/media_options.gni:73 + From //media/media_options.gni:108 enable_discovery Current value = true - From //out/Linux/args.gn:36 + From //out/test/args.gn:51 Overridden from the default = false From //chrome/browser/sharing/buildflags.gni:6 enable_distro_version_check Current value = false - From //out/Linux/args.gn:10 + From //out/test/args.gn:13 Overridden from the default = true - From //chrome/installer/linux/BUILD.gn:29 + From //chrome/installer/linux/BUILD.gn:28 Enables checks that ensure the packages are installable on all supported distributions. @@ -1432,20 +1708,19 @@ enable_dsyms enable_expensive_dchecks Current value (from the default) = false - From //build/config/dcheck_always_on.gni:30 - - Set to false to disable EXPENSIVE_DCHECK()s. + From //build/config/dcheck_always_on.gni:33 enable_extensions Current value (from the default) = true - From //extensions/buildflags/buildflags.gni:6 + From //extensions/buildflags/buildflags.gni:8 -enable_external_mojo_services +enable_extractors Current value (from the default) = true - From //chromecast/chromecast.gni:113 + From //chrome/services/file_util/public/features.gni:11 - Set to true to enable external Mojo services to communicate with services - within cast_shell. + Whether the file_util service supports .TAR.XZ and .TAR file extraction. + Currently only used by imageWriterPrivate extension API, so only enabled + when Extensions are enabled. enable_fake_assistant_microphone Current value (from the default) = false @@ -1460,17 +1735,11 @@ enable_feed_v2 Whether Feed is enabled in the build. -enable_feed_v2_modern - Current value (from the default) = true - From //components/feed/features.gni:10 - - Whether to include Feed in ChromeModern builds. - enable_ffmpeg_video_decoders Current value = true - From //out/Linux/args.gn:40 + From //out/test/args.gn:57 Overridden from the default = true - From //media/media_options.gni:152 + From //media/media_options.gni:224 On Android, FFMpeg is built without video decoders by default. This flag gives the option to override that decision in case there are no @@ -1479,7 +1748,7 @@ enable_ffmpeg_video_decoders enable_full_stack_frames_for_profiling Current value (from the default) = false - From //build/config/compiler/BUILD.gn:67 + From //build/config/compiler/BUILD.gn:69 Compile in such a way as to make it possible for the profiler to unwind full stack frames. Setting this flag has a large effect on the performance of the @@ -1487,16 +1756,13 @@ enable_full_stack_frames_for_profiling information to analyze. Requires profiling to be set to true. -enable_google_benchmarks +enable_fuzztest_fuzz Current value (from the default) = false - From //third_party/google_benchmark/buildconfig.gni:11 - - Google Benchmark is not checked out by default, because it is only used by - a few specialized benchmarks that most developers do not interact with. + From //build/config/sanitizers/sanitizers.gni:140 enable_gpu_client_logging Current value (from the default) = false - From //gpu/command_buffer/client/BUILD.gn:13 + From //gpu/command_buffer/client/BUILD.gn:14 Enable GPU client logging without DCHECK being on. @@ -1513,55 +1779,53 @@ enable_grpc_ares Compiles with ares. -enable_gvr_services - Current value (from the default) = false - From //device/vr/buildflags/buildflags.gni:11 - enable_gwp_asan Current value (from the default) = true - From //components/gwp_asan/buildflags/buildflags.gni:25 + From //components/gwp_asan/buildflags/buildflags.gni:27 Convenience definition enable_gwp_asan_malloc Current value (from the default) = true - From //components/gwp_asan/buildflags/buildflags.gni:19 + From //components/gwp_asan/buildflags/buildflags.gni:21 Is GWP-ASan malloc/PartitionAlloc hooking enabled for chrome/ on a given platform. enable_gwp_asan_partitionalloc Current value (from the default) = true - From //components/gwp_asan/buildflags/buildflags.gni:20 + From //components/gwp_asan/buildflags/buildflags.gni:22 enable_hangout_services_extension Current value = true - From //out/Linux/args.gn:52 + From //out/test/args.gn:72 Overridden from the default = false - From //chrome/common/features.gni:53 + From //chrome/common/features.gni:64 Hangout services is an extension that adds extra features to Hangouts. It is enableable separately to facilitate testing. +enable_hevc_parser_and_hw_decoder + Current value = true + From //out/test/args.gn:81 + Overridden from the default = true + From //media/media_options.gni:121 + +enable_hidpi + Current value (from the default) = true + From //ui/base/ui_features.gni:32 + enable_hls_demuxer Current value = true - From //out/Linux/args.gn:34 + From //out/test/args.gn:49 Overridden from the default = false - From //media/media_options.gni:80 + From //media/media_options.gni:115 Enable HLS manifest parser and demuxer. -enable_hls_sample_aes - Current value = true - From //out/Linux/args.gn:33 - Overridden from the default = false - From //media/media_options.gni:66 - - Enable HLS with SAMPLE-AES decryption. - enable_ink Current value = false - From //out/Linux/args.gn:35 + From //out/test/args.gn:50 Overridden from the default = false From //pdf/features.gni:18 @@ -1573,7 +1837,11 @@ enable_ink enable_ipc_fuzzer Current value (from the default) = false - From //tools/ipc_fuzzer/ipc_fuzzer.gni:15 + From //tools/ipc_fuzzer/ipc_fuzzer.gni:14 + + Build IPC fuzzer by default if it's a supported configuration. For + sanitizer builds, this needs to be enabled explicitly as they can be slow + (especially MSan). enable_ipc_logging Current value (from the default) = false @@ -1583,9 +1851,9 @@ enable_ipc_logging enable_iterator_debugging Current value = false - From //out/Linux/args.gn:17 + From //out/test/args.gn:21 Overridden from the default = false - From //build/config/c++/c++.gni:41 + From //build/config/c++/c++.gni:40 When set, enables libc++ debug mode with iterator debugging. @@ -1599,39 +1867,28 @@ enable_iterator_debugging enable_js_protobuf Current value (from the default) = true - From //third_party/protobuf/proto_library.gni:145 + From //third_party/protobuf/proto_library.gni:146 Allows subprojects to omit javascript dependencies (e.g.) closure_compiler and google-closure-library. -enable_js_type_check - Current value (from the default) = true - From //third_party/closure_compiler/compile_js.gni:11 - - Enable closure type-checking for Chrome's web technology-based UI. This - enables the webui_closure_compile target which does a no-op without this - flag enabled. Requires Java. - -enable_jxl_decoder - Current value (from the default) = true - From //third_party/blink/public/public_features.gni:9 - - If true, adds support for JPEG XL image decoding. - -enable_keystone_registration_framework - Current value (from the default) = true - From //chrome/BUILD.gn:60 - - Indicates whether keystone registration framework should be enabled (see - action("keystone_registration_framework") below). There are some tests - where we'd like for it to be disabled. (https://crbug.com/909080) - enable_kythe_annotations Current value (from the default) = false From //build/toolchain/kythe.gni:10 Enables Kythe annotations necessary to build cross references. +enable_lens_desktop + Current value (from the default) = true + From //components/lens/features.gni:15 + + Includes Lens features in the build. toolkit_views is used to ensure Lens + features are only included on Desktop devices running Chromium + +enable_lens_desktop_google_branded_features + Current value (from the default) = false + From //components/lens/features.gni:25 + enable_libaom Current value (from the default) = true From //third_party/libaom/options.gni:7 @@ -1644,43 +1901,34 @@ enable_libaom_decoder To be deprecated soon. -enable_libgav1_decoder - Current value (from the default) = false - From //third_party/libgav1/options.gni:12 - enable_library_cdms - Current value (from the default) = true - From //media/media_options.gni:159 + Current value = true + From //out/test/args.gn:64 + Overridden from the default = true + From //media/media_options.gni:232 Enables the use of library CDMs that implements the interface defined at media/cdm/api/content_decryption_module.h. If true, the actually library CDM will be hosted in the mojo CDM service running in the CDM (utility) process. + Used for all desktop platforms. enable_linux_installer Current value = true - From //out/Linux/args.gn:9 + From //out/test/args.gn:12 Overridden from the default = true - From //chrome/installer/BUILD.gn:11 - -enable_location_source - Current value (from the default) = true - From //base/BUILD.gn:52 - - Indicates if the Location object contains the source code information - (file, function, line). False means only the program counter (and currently - file name) is saved. + From //chrome/installer/installers.gni:12 enable_log_error_not_reached Current value (from the default) = false - From //build/config/logging.gni:12 + From //build/config/logging.gni:11 enable_logging_override Current value (from the default) = false - From //media/media_options.gni:71 + From //media/media_options.gni:106 Enable logging override, e.g. enable DVLOGs through level 2 at build time. - On Chromecast, these are logged as INFO. - On Fuchsia, these are logged as VLOGs. + On Cast devices, these are logged as INFO. + When enabled on Fuchsia, these are logged as VLOGs. enable_maldoca Current value (from the default) = true @@ -1690,34 +1938,30 @@ enable_maldoca enable_mdns Current value (from the default) = true - From //net/features.gni:25 + From //net/features.gni:30 Multicast DNS. +enable_media_control_logging_override + Current value (from the default) = false + From //components/media_control/renderer/BUILD.gn:9 + enable_media_drm_storage Current value = true - From //out/Linux/args.gn:50 + From //out/test/args.gn:70 Overridden from the default = false - From //media/media_options.gni:77 + From //media/media_options.gni:112 Enable browser managed persistent metadata storage for EME persistent session and persistent usage record session. enable_media_foundation_widevine_cdm Current value (from the default) = false - From //third_party/widevine/cdm/widevine.gni:51 - -enable_media_overlay - Current value = true - From //out/Linux/args.gn:51 - Overridden from the default = false - From //chromecast/chromecast.gni:134 - - Set to true to enable media overlay for volume bar, etc. + From //third_party/widevine/cdm/widevine.gni:50 enable_media_remoting Current value (from the default) = true - From //media/media_options.gni:254 + From //media/media_options.gni:333 This switch defines whether the Media Remoting implementation will be built. When enabled, media is allowed to be renderer and played back on remote @@ -1725,7 +1969,7 @@ enable_media_remoting enable_media_remoting_rpc Current value (from the default) = true - From //media/media_options.gni:260 + From //media/media_options.gni:339 Media Remoting RPC is disabled on Android since it's unused but increases the native binary size by ~70Kb. @@ -1734,43 +1978,40 @@ enable_message_center Current value (from the default) = true From //ui/base/ui_features.gni:30 +enable_ml_internal + Current value (from the default) = false + From //services/on_device_model/on_device_model.gni:10 + enable_modular_updater Current value (from the default) = false - From //build/config/chromecast_build.gni:33 + From //build/config/cast.gni:19 Set true to enable modular_updater. enable_mojo_tracing Current value (from the default) = false - From //mojo/public/cpp/bindings/BUILD.gn:12 - -enable_mojom_closure_compile - Current value (from the default) = true - From //mojo/public/tools/bindings/mojom.gni:44 - - Enables Closure compilation of generated JS lite bindings. In environments - where compilation is supported, any mojom target "foo" will also have a - corresponding "foo_js_library_for_compile" target generated. + From //mojo/public/cpp/bindings/BUILD.gn:13 enable_mojom_fuzzer Current value (from the default) = false - From //mojo/public/tools/bindings/mojom.gni:51 + From //mojo/public/tools/bindings/mojom.gni:47 Enables generating javascript fuzzing-related code and the bindings for the MojoLPM fuzzer targets. Off by default. enable_mojom_message_id_scrambling Current value (from the default) = true - From //mojo/public/tools/bindings/mojom.gni:39 + From //mojo/public/tools/bindings/mojom.gni:43 Controls message ID scrambling behavior. If |true|, message IDs are scrambled (i.e. randomized based on the contents of //chrome/VERSION) on - non-Chrome OS desktop platforms. Set to |false| to disable message ID - scrambling on all platforms. + non-Chrome OS desktop platforms. Enabled on official builds by default. + Set to |true| to enable message ID scrambling on a specific build. + See also `enable_scrambled_message_ids` below for more details. enable_mojom_typemapping Current value (from the default) = true - From //mojo/public/tools/bindings/mojom.gni:33 + From //mojo/public/tools/bindings/mojom.gni:36 Indicates whether typemapping should be supported in this build configuration. This may be disabled when building external projects which @@ -1783,9 +2024,9 @@ enable_mojom_typemapping enable_mse_mpeg2ts_stream_parser Current value = true - From //out/Linux/args.gn:63 - Overridden from the default = false - From //media/media_options.gni:58 + From //out/test/args.gn:88 + Overridden from the default = true + From //media/media_options.gni:144 enable_mutex_priority_inheritance Current value (from the default) = false @@ -1797,15 +2038,17 @@ enable_mutex_priority_inheritance enable_nacl Current value = false - From //out/Linux/args.gn:23 - Overridden from the default = true - From //components/nacl/features.gni:14 + From //out/test/args.gn:28 + Overridden from the default = false + From //components/nacl/features.gni:27 + + Enables Native Client support. + + NaCl is only supported on ChromeOS. enable_nocompile_tests Current value (from the default) = true - From //build/nocompile.gni:68 - - TODO(crbug.com/105388): make sure no-compile test is not flaky. + From //build/nocompile.gni:58 enable_offline_pages Current value (from the default) = false @@ -1821,18 +2064,31 @@ enable_offline_pages_harness This enables test API for locally-built harness which is used for quality evaluations. Requires setting this variable manually at local environment. +enable_oop_basic_print_dialog + Current value (from the default) = false + From //printing/buildflags/buildflags.gni:62 + + Enables the printing system dialog being invoked from out-of-process for + platforms that support printing, have a system dialog, and which can invoke + that system print dialog from a process other than the browser process. + TODO(crbug.com/809738) Determine if Linux Wayland can be made to have a + system dialog be modal against an application window in the browser process. + enable_oop_printing Current value (from the default) = true - From //printing/buildflags/buildflags.gni:35 + From //printing/buildflags/buildflags.gni:47 - Enables out-of-process printing. While this definition matches - `enable_print_preview`, do not base this definition upon that. This - feature could still be appropriate for some build configurations which - explicitly disable print preview. + Enables out-of-process printing. Do not have this definition just be + based on `enable_print_preview`; this feature could still be appropriate + for some build configurations which explicitly disable print preview. + +enable_oop_printing_no_oop_basic_print_dialog + Current value (from the default) = true + From //printing/buildflags/buildflags.gni:68 enable_opengl_apitrace Current value (from the default) = false - From //build/config/ozone.gni:35 + From //build/config/ozone.gni:34 Enable explicit apitrace (https://apitrace.github.io) loading. This requires apitrace library with additional bindings. @@ -1842,13 +2098,16 @@ enable_opengl_apitrace Trace will be saved to /tmp/gltrace.dat file by default. You can override it at run time with TRACE_FILE= environment variable. -enable_openscreen - Current value (from the default) = true - From //chrome/browser/media/router/features.gni:14 +enable_openscreen_protocol + Current value (from the default) = false + From //chrome/browser/media/router/BUILD.gn:12 + + Set to true to build code that supports the Open Screen Protocol. + OSP is experimental and not yet feature-complete. enable_openxr Current value (from the default) = false - From //device/vr/buildflags/buildflags.gni:18 + From //device/vr/buildflags/buildflags.gni:27 To build with OpenXR support, the OpenXR Loader needs to be pulled to third_party/openxr. @@ -1858,7 +2117,7 @@ enable_paint_preview From //build/config/buildflags_paint_preview.gni:15 Enable basic paint preview support. Does not work on iOS. Should - not be included with Chromecast. + not be included with Chromecast hardware devices. Used by //components/paint_preview and //third_party/harfbuzz-ng. TODO(crbug.com/webrtc/11223) Move back this file in //components/paint_preview/ once WebRTC doesn't roll harfbuzz-ng anymore, @@ -1876,9 +2135,18 @@ enable_perfetto_fuzzers Current value (from the default) = false From //third_party/perfetto/gn/perfetto.gni:198 +enable_perfetto_grpc + Current value (from the default) = false + From //third_party/perfetto/gn/perfetto.gni:322 + + Enables gRPC in the Perfetto codebase. gRPC significantly increases build + times and the general footprint of Perfetto. As it only required for + BigTrace and even then only to build the final ready-to-ship binary, don't + enable this by default. + enable_perfetto_heapprofd Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:158 + From //third_party/perfetto/gn/perfetto.gni:157 enable_perfetto_integration_tests Current value (from the default) = false @@ -1890,16 +2158,29 @@ enable_perfetto_ipc enable_perfetto_llvm_demangle Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:298 + From //third_party/perfetto/gn/perfetto.gni:316 enable_perfetto_platform_services Current value (from the default) = false From //third_party/perfetto/gn/perfetto.gni:141 +enable_perfetto_site + Current value (from the default) = false + From //third_party/perfetto/gn/perfetto.gni:339 + + Allows to build the perfetto.dev website. + WARNING: if this flag is enabled, the build performs globbing at generation + time. Incremental builds that add/remove files will not be supported without + rerunning gn. + enable_perfetto_stderr_crash_dump Current value (from the default) = false From //third_party/perfetto/gn/perfetto.gni:235 +enable_perfetto_system_consumer + Current value (from the default) = true + From //third_party/perfetto/gn/perfetto.gni:251 + enable_perfetto_tools Current value (from the default) = false From //third_party/perfetto/gn/perfetto.gni:187 @@ -1909,36 +2190,36 @@ enable_perfetto_trace_processor From //third_party/perfetto/gn/perfetto.gni:173 enable_perfetto_trace_processor_httpd - Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:285 + Current value (from the default) = true + From //third_party/perfetto/gn/perfetto.gni:302 enable_perfetto_trace_processor_json Current value (from the default) = true - From //third_party/perfetto/gn/perfetto.gni:280 + From //third_party/perfetto/gn/perfetto.gni:295 enable_perfetto_trace_processor_linenoise Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:274 + From //third_party/perfetto/gn/perfetto.gni:289 enable_perfetto_trace_processor_percentile Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:270 + From //third_party/perfetto/gn/perfetto.gni:284 enable_perfetto_trace_processor_sqlite Current value (from the default) = true - From //third_party/perfetto/gn/perfetto.gni:265 + From //third_party/perfetto/gn/perfetto.gni:279 enable_perfetto_traceconv Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:304 + From //third_party/perfetto/gn/perfetto.gni:328 enable_perfetto_traced_perf Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:166 + From //third_party/perfetto/gn/perfetto.gni:165 enable_perfetto_traced_probes Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:257 + From //third_party/perfetto/gn/perfetto.gni:267 The traced_probes daemon is very Linux-specific, as it depends on ftrace and various /proc interfaces. There is no point making its code platform-neutral @@ -1948,15 +2229,16 @@ enable_perfetto_traced_probes code happens to build cleanly and for now the mainteinance cost on Mac is extremely low. -enable_perfetto_tracing +enable_perfetto_traced_relay Current value (from the default) = false - From //chromecast/chromecast.gni:119 + From //third_party/perfetto/gn/perfetto.gni:271 - Support using system perfetto tracing + The relay service is enabled when platform services are enabled. + TODO(chinglinyu) check if we can enable on Windows. enable_perfetto_ui Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:308 + From //third_party/perfetto/gn/perfetto.gni:332 enable_perfetto_unittests Current value (from the default) = true @@ -1972,80 +2254,148 @@ enable_perfetto_watchdog enable_perfetto_x64_cpu_opt Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:241 + From //third_party/perfetto/gn/perfetto.gni:243 enable_perfetto_zlib - Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:291 + Current value (from the default) = true + From //third_party/perfetto/gn/perfetto.gni:310 + +enable_pkeys + Current value (from the default) = true + From //base/allocator/partition_allocator/partition_alloc.gni:344 enable_platform_ac3_eac3_audio Current value = true - From //out/Linux/args.gn:60 + From //out/test/args.gn:82 Overridden from the default = false - From //media/media_options.gni:49 + From //media/media_options.gni:71 - Enables AC3/EAC3 audio demuxing. This is enabled only on Chromecast, since - it only provides demuxing, and is only useful for AC3/EAC3 audio - pass-through to HDMI sink on Chromecast. + Enables AC3/EAC3 audio handling in chromium. This includes demuxing, + on-device decoding and bitstream passthrough as supported by device. + +enable_platform_ac4_audio + Current value = true + From //out/test/args.gn:83 + Overridden from the default = false + From //media/media_options.gni:75 + + Enables AC4 audio handling in chromium. This includes demuxing, + on-device decoding and bitstream passthrough as supported by device. enable_platform_dolby_vision Current value = true - From //out/Linux/args.gn:61 + From //out/test/args.gn:84 Overridden from the default = false - From //media/media_options.gni:63 - - Enable Dolby Vision demuxing. Enable by default for Chromecast. Actual - decoding must be provided by the platform. Note some Dolby Vision profiles - which are encoded using HEVC require |enable_platform_hevc| to be enabled. + From //media/media_options.gni:94 enable_platform_dts_audio - Current value (from the default) = false - From //media/media_options.gni:55 + Current value = true + From //out/test/args.gn:87 + Overridden from the default = false + From //media/media_options.gni:81 Enables DTS/DTSX audio handling in chromium. This includes demuxing, on-device decoding and bitstream passthrough as supported by device. +enable_platform_encrypted_dolby_vision + Current value = true + From //out/test/args.gn:85 + Overridden from the default = false + From //media/media_options.gni:101 + + Enable platform support of encrypted Dolby Vision. The actual support + depends on platform capability and is controlled by the run time feature + kPlatformEncryptedDolbyVision. Clear Dolby Vision is not supported by + default, unless overwritten by the run time feature + kAllowClearDolbyVisionInMseWhenPlatformEncryptedDvEnabled. + enable_platform_hevc Current value = true - From //out/Linux/args.gn:58 + From //out/test/args.gn:80 Overridden from the default = true - From //media/media_options.gni:99 + From //media/media_options.gni:140 -enable_platform_hevc_decoding - Current value = true - From //out/Linux/args.gn:59 - Overridden from the default = false - From //media/media_options.gni:86 +enable_platform_iamf_audio + Current value (from the default) = false + From //media/media_options.gni:85 + + Enables IAMF audio handling in chromium. This includes demuxing, + on-device decoding and bitstream passthrough as supported by device. enable_platform_mpeg_h_audio Current value = true - From //out/Linux/args.gn:62 + From //out/test/args.gn:86 Overridden from the default = false - From //media/media_options.gni:51 + From //media/media_options.gni:77 -enable_playready +enable_platform_vvc Current value (from the default) = false - From //chromecast/chromecast.gni:156 + From //media/media_options.gni:126 - Use Playready CDMs for internal non-desktop builds. + Enable inclusion of VVC/H.266 parser/demuxer, and also enable VVC/H.266 decoding + with hardware acceleration provided by platform. Disabled by default for all builds. enable_plugins Current value (from the default) = true - From //ppapi/buildflags/buildflags.gni:10 + From //ppapi/buildflags/buildflags.gni:15 + + Enables basic plugin support. This enables support for registering and + looking up plugins, but does not include support for loading plugins using a + specific technology like Pepper. + + In particular, the PDF viewer (enable_pdf) requires plugin support, but it + does not require Pepper support (enable_ppapi). + +enable_pointer_arithmetic_trait_check + Current value (from the default) = true + From //base/allocator/partition_allocator/partition_alloc.gni:124 + + Enables a compile-time check that all raw_ptrs to which arithmetic + operations are to be applied are annotated with the AllowPtrArithmetic + trait, + +enable_pointer_compression_support + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:115 + + Introduces pointer compression support in PA. These are 4-byte + pointers that can point within the core pools (regular and BRP). + + This is effective only for memory allocated from PartitionAlloc, so it is + recommended to enable PA-E above, but isn't strictly necessary. Embedders + can create and use PA partitions explicitly. + +enable_pointer_subtraction_check + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:119 + + Enables a bounds check when two pointers (at least one being raw_ptr) are + subtracted (if supported by the underlying implementation). + +enable_ppapi + Current value (from the default) = false + From //ppapi/buildflags/buildflags.gni:22 + + Enables Pepper API (PPAPI) plugin support. + The only remaining PPAPI plugin supported is NaCl and if is disabled + we can disable PPAPI. enable_precompiled_headers Current value = false - From //out/Linux/args.gn:30 + From //out/test/args.gn:45 Overridden from the default = false - From //build/config/pch.gni:14 + From //build/config/pch.gni:15 enable_print_content_analysis Current value (from the default) = true - From //printing/buildflags/buildflags.gni:40 + From //printing/buildflags/buildflags.gni:51 + + Enable snapshotting a page when printing for its content to be analyzed for + sensitive content by enterprise users. enable_print_media_l10n Current value (from the default) = false - From //chrome/common/printing/BUILD.gn:15 + From //chrome/common/printing/BUILD.gn:16 Enable print media localization only on the platforms that support CUPS IPP (ChromeOS and macOS for now). The localization expects media vendor IDs @@ -2053,15 +2403,29 @@ enable_print_media_l10n enable_print_preview Current value (from the default) = true - From //printing/buildflags/buildflags.gni:21 + From //printing/buildflags/buildflags.gni:30 Enables printing with print preview. Print preview requires PDF per //printing/BUILD.gn. The is_android condition is currently redundant but left for clarity. +enable_printing + Current value (from the default) = true + From //printing/buildflags/buildflags.gni:14 + + Enables printing support. + +enable_printing_tests + Current value (from the default) = false + From //printing/buildflags/buildflags.gni:19 + + TODO(crbug.com/1432082): iOS blink port only enables printing_tests to run + unit tests and web tests for now because the port does not enable the + printing feature yet. + enable_profiling Current value = false - From //out/Linux/args.gn:20 + From //out/test/args.gn:25 Overridden from the default = false From //build/config/compiler/compiler.gni:69 @@ -2077,13 +2441,13 @@ enable_pseudolocales enable_qr_print Current value (from the default) = false - From //components/qr_code_generator/BUILD.gn:7 + From //components/qr_code_generator/BUILD.gn:11 Enables building a development / debugging binary. enable_random_mojo_delays Current value (from the default) = false - From //mojo/public/cpp/bindings/BUILD.gn:18 + From //mojo/public/cpp/bindings/BUILD.gn:19 enable_random_mojo_delays starts a task runner that periodically pauses random Mojo bindings and later resumes them, in order to test whether parts @@ -2099,77 +2463,134 @@ enable_reading_list enable_remoting Current value (from the default) = true - From //remoting/remoting_enable.gni:12 - -enable_remoting_for_cwr - Current value (from the default) = false - From //chromecast/chromecast.gni:148 - - True to use the remoting implementation of cast streaming for the cast web - runtime (as opposed to the mirroring-only implementation). + From //remoting/remoting_enable.gni:13 enable_reporting - Current value (from the default) = true - From //net/features.gni:28 + Current value = false + From //out/test/args.gn:23 + Overridden from the default = true + From //net/features.gni:33 Reporting not used on iOS. enable_resource_allowlist_generation Current value = false - From //out/Linux/args.gn:19 + From //out/test/args.gn:24 Overridden from the default = false - From //build/toolchain/gcc_toolchain.gni:28 + From //build/toolchain/gcc_toolchain.gni:29 + +enable_rlz + Current value (from the default) = false + From //rlz/buildflags/buildflags.gni:13 enable_rust - Current value (from the default) = false - From //build/config/rust.gni:17 + Current value = true + From //out/test/args.gn:92 + Overridden from the default = true + From //build/config/rust.gni:27 - Whether to allow Rust code to be part of the Chromium *build process*. - This can be used to create Rust test binaries, even if the flag below - is false. + Rust is available in the Chromium build but 3p repos that use //build may + not use Rust and thus won't want to depend on having the Rust toolchain + present, so this defaults to off in those cases. + + Chromium-based projects that are built for for architectures Chrome does not + support may need to disable this as well, though they may need to replace + code with C/C++ to get a functional product. + +enable_rust_base_conversions + Current value (from the default) = true + From //build/config/rust.gni:109 + + Conversions between Rust types and C++ types. + +enable_rust_boringssl + Current value (from the default) = true + From //build/config/rust.gni:124 + + Enable Boringssl Rust bindings generation + +enable_rust_crash + Current value (from the default) = true + From //build/config/rust.gni:115 + + Support for chrome://crash-rust to check crash dump collection works. + +enable_rust_gtest_interop + Current value (from the default) = true + From //build/config/rust.gni:121 + + Rust gtest interop. + +enable_rust_json + Current value (from the default) = true + From //build/config/rust.gni:112 + + The base::JSONReader implementation. Requires base conversions. + +enable_rust_mojo + Current value (from the default) = true + From //build/config/rust.gni:118 + + Support for Rust mojo bindings. enable_screen_ai_service Current value (from the default) = true - From //components/services/screen_ai/buildflags/features.gni:11 + From //components/services/screen_ai/buildflags/features.gni:10 + + Screen AI service is only supported on desktop platforms. enable_segment_heap Current value (from the default) = false From //build/config/win/manifest.gni:46 +enable_server_based_recognition + Current value (from the default) = false + From //chrome/services/speech/buildflags/buildflags.gni:28 + + Whether the server based speech recognition recognizer is available. + Currently only available in official builds for ash ChromeOS. + enable_service_discovery Current value (from the default) = true - From //chrome/common/features.gni:55 + From //chrome/common/features.gni:66 enable_session_service Current value (from the default) = true - From //chrome/common/features.gni:59 + From //chrome/common/features.gni:70 Enables use of the session service, which is enabled by default. Android stores them separately on the Java side. -enable_skia_dawn_gtests +enable_shadow_call_stack Current value (from the default) = false - From //skia/features.gni:13 + From //build/config/compiler/BUILD.gn:195 - Enable gtests using SkiaRenderer Dawn. - TODO(rivr): Remove this and enable the tests by default once a software - path for D3D12 is available. + Enable ShadowCallStack for compiled binaries. SCS stores a pointer to a + shadow call stack in register x18. Hence, x18 must not be used by the OS + or libraries. We assume that to be the case for high end Android + configurations. For more details see + https://clang.llvm.org/docs/ShadowCallStack.html -enable_skia_wuffs_gif - Current value (from the default) = true - From //skia/BUILD.gn:30 - -enable_snap_package +enable_shadow_metadata Current value (from the default) = false - From //chrome/installer/linux/BUILD.gn:32 + From //base/allocator/partition_allocator/partition_alloc.gni:228 - Enable building snap packages + Shadow metadata is still under development and only supports Linux + for now. -enable_soda +enable_skia_graphite_gtests Current value (from the default) = false - From //components/soda/buildflags.gni:7 + From //skia/features.gni:21 + + Enable gtests using SkiaRenderer on Skia Graphite. + +enable_soda_integration_tests + Current value (from the default) = false + From //components/soda/buildflags.gni:9 Used to enable the Speech On-Device API (SODA) in unit and browser tests. + This affects production code on some platforms and should not be enabled in + official builds. enable_speech_service Current value (from the default) = true @@ -2177,39 +2598,37 @@ enable_speech_service Whether the browser provides a speech recognition service (//media/mojo/mojom/speech_recognition_service.mojom) to the renderer. - TODO(b:223493879): Add support for speech to LaCrOS via go/crosapi and - change `is_chromeos_ash` to `is_chromeos` below. + TODO(crbug.com/1378804) Enable on Fuchsia. enable_stack_trace_line_numbers Current value (from the default) = false - From //build/config/logging.gni:13 + From //build/config/logging.gni:12 enable_stripping Current value = true - From //out/Linux/args.gn:11 + From //out/test/args.gn:16 Overridden from the default = true From //build/config/apple/symbols.gni:24 Strip symbols from linked targets by default. If this is enabled, the - //build/config/mac:strip_all config will be applied to all linked targets. + //build/config/apple:strip_all config will be applied to all linked targets. If custom stripping parameters are required, remove that config from a linked target and apply custom -Wcrl,strip flags. See //build/toolchain/apple/linker_driver.py for more information. enable_supervised_users - Current value (from the default) = false - From //chrome/common/features.gni:63 + Current value (from the default) = true + From //components/supervised_user/buildflags.gni:9 - Enables supervision for Family Link users. - Supervision is only supported on Chrome OS and Android. + Platforms which fully support supervision features: enable_swiftshader Current value (from the default) = true - From //ui/gl/features.gni:30 + From //ui/gl/features.gni:37 enable_swiftshader_vulkan Current value (from the default) = true - From //gpu/vulkan/features.gni:17 + From //gpu/vulkan/features.gni:16 Enable swiftshader vulkan. Disabling it can save build time, however --use-vulkan=swiftshader and some tests which use swiftshader vulkan will @@ -2217,104 +2636,127 @@ enable_swiftshader_vulkan enable_system_notifications Current value (from the default) = true - From //chrome/common/features.gni:67 - -enable_tagged_pdf - Current value (from the default) = true - From //printing/buildflags/buildflags.gni:45 - - Enables exporting to tagged PDF. + From //chrome/common/features.gni:74 enable_trace_logging + Current value (from the default) = true + From //third_party/openscreen/src/util/BUILD.gn:12 + + Enables trace logging in build. This is true by default, but may be disabled + for a slight performance increase. + +enable_update_notifications Current value (from the default) = false - From //third_party/openscreen/src/util/BUILD.gn:11 + From //chrome/browser/buildflags.gni:13 - Enables trace logging in build. This is true by default, unless - we are built against Chrome--we have no way to link their platform - implementation into our binaries so trace logging is not possible. + Detect updates and notify the user for Google Chrome across all platforms. + Chromium does not use an auto-updater. -enable_typescript_bindings +enable_updater Current value (from the default) = false - From //mojo/public/tools/bindings/mojom.gni:47 + From //chrome/browser/buildflags.gni:9 - Enables generating Typescript bindings and compiling them to JS bindings. + By default, only branded builds integrate with automatic updates. -enable_video_capture_service +enable_validating_command_decoder Current value (from the default) = false - From //chromecast/chromecast.gni:109 - - Set to true to enable video capture service for video input and output. - -enable_video_with_mixed_audio - Current value (from the default) = false - From //chromecast/chromecast.gni:83 - - Set to true to enable a CMA media backend that allows mixed audio to be - output with sync'd video. + From //ui/gl/features.gni:30 enable_vr Current value = true - From //out/Linux/args.gn:57 + From //out/test/args.gn:78 Overridden from the default = true - From //device/vr/buildflags/buildflags.gni:25 - - Enable VR device support whenever VR device SDK(s) are supported. - We enable VR on Linux even though VR features aren't usable because - the binary size impact is small and allows many VR tests to run on Linux + From //device/vr/buildflags/buildflags.gni:35 enable_vulkan Current value (from the default) = true - From //gpu/vulkan/features.gni:12 + From //gpu/vulkan/features.gni:11 + + Enable experimental vulkan backend. enable_wayland_server Current value (from the default) = false - From //chrome/common/features.gni:70 + From //chrome/common/features.gni:77 Indicates if Wayland display server support is enabled. enable_websockets Current value (from the default) = true - From //net/features.gni:13 + From //net/features.gni:15 - WebSockets and socket stream code are not used on iOS and are optional in - cronet. + WebSockets and socket stream code are not used when blink is not used + and are optional in cronet. + +enable_webui_certificate_viewer + Current value (from the default) = true + From //chrome/common/features.gni:80 + + Enables the webui certificate viewer dialog. + +enable_webui_inline_sourcemaps + Current value (from the default) = false + From //ui/webui/webui_features.gni:19 + + Whether to inline source maps during build. Cannot be enabled when + `optimize_webui=true`. enable_webui_tab_strip Current value = true - From //out/Linux/args.gn:25 + From //out/test/args.gn:30 Overridden from the default = true - From //ui/webui/webui_features.gni:14 + From //ui/webui/webui_features.gni:15 Enable the WebUI version of the browser's tab strip. enable_widevine Current value = true - From //out/Linux/args.gn:48 + From //out/test/args.gn:65 Overridden from the default = false From //third_party/widevine/cdm/widevine.gni:15 Enables Widevine key system support. Enabled by default in Google Chrome, - on Android and Fuchsia platforms. + Google Chrome for Testing and Android. For Fuchsia, see crbug.com/1354347. Can be optionally enabled in Chromium on non-Android platforms. Please see //src/third_party/widevine/LICENSE file for details. -enable_wmax_tokens +enterprise_client_certificates Current value (from the default) = false - From //build/config/compiler/BUILD.gn:154 + From //components/enterprise/buildflags/buildflags.gni:26 -enable_xz_extractor + Indicates support for client certificates provisioning. + +enterprise_cloud_content_analysis Current value (from the default) = true - From //chrome/services/file_util/public/features.gni:11 + From //components/enterprise/buildflags/buildflags.gni:16 - Whether the file_util service supports .xz file extraction. - Currently only used by imageWriterPrivate extension API, so only enabled - when Extensions are enabled. +enterprise_content_analysis + Current value (from the default) = true + From //components/enterprise/buildflags/buildflags.gni:38 + +enterprise_data_controls + Current value (from the default) = true + From //components/enterprise/buildflags/buildflags.gni:23 + + Indicates support for Data Control rules. + +enterprise_local_content_analysis + Current value (from the default) = true + From //components/enterprise/buildflags/buildflags.gni:20 + + Indicates support for content analysis against a cloud agent for Enterprise + Connector policies. + +enterprise_watermark + Current value (from the default) = true + From //components/enterprise/buildflags/buildflags.gni:29 + + The watermark is currently implemented using the views framework exclude_unwind_tables Current value = true - From //out/Linux/args.gn:15 + From //out/test/args.gn:19 Overridden from the default = true - From //build/config/compiler/compiler.gni:120 + From //build/config/compiler/compiler.gni:124 Exclude unwind tables by default for official builds as unwinding can be done from stack dumps produced by Crashpad at a later time "offline" in the @@ -2335,18 +2777,31 @@ extended_tracing_enabled Enable more trace events. Disabled by default due to binary size impact, but highly recommended for local development. +extra_sysroot_libs + Current value (from the default) = [] + From //build/config/rust.gni:90 + + Non-rlib libs provided in the toolchain sysroot. Usually this is empty, but + e.g. the Android Rust Toolchain provides a libunwind.a that rustc expects. + +fail_on_san_warnings + Current value (from the default) = false + From //build/config/sanitizers/sanitizers.gni:108 + + When true, sanitizer warnings will cause test case failures. + fatal_linker_warnings Current value (from the default) = true - From //build/config/compiler/BUILD.gn:75 + From //build/config/compiler/BUILD.gn:77 Enable fatal linker warnings. Building Chromium with certain versions of binutils can cause linker warning. ffmpeg_branding Current value = "Chrome" - From //out/Linux/args.gn:39 + From //out/test/args.gn:54 Overridden from the default = "Chromium" - From //third_party/ffmpeg/ffmpeg_options.gni:44 + From //third_party/ffmpeg/ffmpeg_options.gni:32 Controls whether we build the Chromium or Google Chrome version of FFmpeg. The Google Chrome version contains additional codecs. Typical values are @@ -2354,7 +2809,7 @@ ffmpeg_branding ffmpeg_use_unsafe_atomics Current value (from the default) = false - From //third_party/ffmpeg/ffmpeg_options.gni:62 + From //third_party/ffmpeg/ffmpeg_options.gni:50 Set to true to force the use of ffmpeg's stdatomic fallback code. This code is unsafe and does not implement atomics properly. https://crbug.com/161723. @@ -2368,7 +2823,7 @@ ffmpeg_use_unsafe_atomics forbid_non_component_debug_builds Current value (from the default) = true - From //build/config/compiler/compiler.gni:107 + From //build/config/compiler/compiler.gni:111 Whether an error should be raised on attempts to make debug builds with is_component_build=false. Very large debug symbols can have unwanted side @@ -2378,11 +2833,45 @@ force_cast_bluetooth Current value (from the default) = false From //device/bluetooth/cast_bluetooth.gni:4 -from_here_uses_location_builtins - Current value (from the default) = true - From //base/BUILD.gn:55 +force_enable_fieldtrial_testing_config + Current value (from the default) = false + From //components/variations/service/BUILD.gn:19 - Whether or not the FROM_HERE macro uses base::Location::Current(). + Set to true to make a build that force enables activation of field trial + tests specified in testing/variations/fieldtrial_testing_config.json. + +force_enable_raw_ptr_exclusion + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:148 + + RAW_PTR_EXCLUSION macro is disabled on official builds because it increased + binary size. This flag can be used to enable it for official builds too. + +force_rustc_color_output + Current value (from the default) = false + From //build/config/rust.gni:100 + + Force-enable `--color=always` for rustc, even when it would be disabled for + a platform. Mostly applicable to Windows, where new versions can handle ANSI + escape sequences but it's not reliable in general. + +forward_through_malloc + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:129 + + Forwards all the allocation/freeing calls in shim (e.g. operator new) + through malloc. Useful for using with tools that intercept malloc, e.g. + heaptrack. + +fuzztest_supported + Current value (from the default) = true + From //build/config/sanitizers/sanitizers.gni:115 + + The fuzztest library builds only on some platforms, so for now, + all targets depending on fuzztest need to be configured according + to this. + TODO(crbug.com/1494445): remove this when all build permutations + work gcc_target_rpath Current value (from the default) = "" @@ -2398,35 +2887,42 @@ gcc_target_rpath generate_fuzzer_owners Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:166 + From //build/config/sanitizers/sanitizers.gni:215 Generates an owners file for each fuzzer test. TODO(crbug.com/1194183): Remove this arg when finding OWNERS is faster. generate_linker_map Current value (from the default) = false - From //build/toolchain/toolchain.gni:21 + From //build/toolchain/toolchain.gni:27 Used for binary size analysis. +glue_core_pools + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:107 + + Puts the regular and BRP pools right next to each other, so that we can + check "belongs to one of the two pools" with a single bitmask operation. + gold_path Current value (from the default) = "" - From //build/config/compiler/BUILD.gn:71 + From //build/config/compiler/BUILD.gn:73 When we are going to use gold we need to find it. This is initialized below, after use_gold might have been overridden. goma_dir Current value (from the default) = "" - From //build/toolchain/goma.gni:17 + From //build/toolchain/goma.gni:14 Absolute directory containing the gomacc binary. google_api_key - Current value = "AIzaSyCkfPOPZXDKNn8hhgu3JrA62wIgC93d44k" - From //out/Linux/args.gn:3 + Current value = "" + From //out/test/args.gn:3 Overridden from the default = "" - From //google_apis/BUILD.gn:48 + From //google_apis/BUILD.gn:43 Set these to bake the specified API keys and OAuth client IDs/secrets into your build. @@ -2437,41 +2933,33 @@ google_api_key require server-side APIs may fail to work if no keys are provided. - Note that if you are building an official build or if - use_official_google_api_keys has been set to trie (explicitly or - implicitly), these values will be ignored and the official + Note that if `use_official_google_api_keys` has been set to true + (explicitly or implicitly), these values will be ignored and the official keys will be used instead. google_default_client_id - Current value = "811574891467.apps.googleusercontent.com" - From //out/Linux/args.gn:4 + Current value = "" + From //out/test/args.gn:4 Overridden from the default = "" - From //google_apis/BUILD.gn:51 + From //google_apis/BUILD.gn:46 See google_api_key. google_default_client_secret - Current value = "kdloedMFGdGla2P1zacGjAQh" - From //out/Linux/args.gn:5 + Current value = "" + From //out/test/args.gn:5 Overridden from the default = "" - From //google_apis/BUILD.gn:54 + From //google_apis/BUILD.gn:49 See google_api_key. grpc_use_static_linking Current value (from the default) = false - From //third_party/grpc/BUILD.gn:17 - - TODO(169395837): Somehow gRPC symbols cannot be found on Android. - Keep using static linking for now. - In windows and mac use static linking. - Use static linking on Chrome OS as a workaround for the symbol lookup - error(crbug/1241330) due to a gRPC version mismatch between what Chrome - uses and what CrOS provides. + From //third_party/grpc/BUILD.gn:18 gtest_enable_absl_printers Current value (from the default) = true - From //build_overrides/build.gni:39 + From //build_overrides/build.gni:54 Allows googletest to pretty-print various absl types. Disabled for nacl due to lack of toolchain support. @@ -2502,18 +2990,18 @@ has_platform_accessibility_support AccessibilityNodeProvider API) and Fuchsia (uses fidl messaging, kind of like mojo). -have_full_mixer - Current value (from the default) = false - From //chromecast/chromecast.gni:51 +headless_enable_commands + Current value (from the default) = true + From //headless/headless.gni:11 - Set to true if there is a full mixer implementation; if not, we create a - shim mixer service receiver that pushes audio to the CMA backend. + Enable support for --screenshot, --print-to-pdf and --dump-dom commands + Note: this option is not available if |headless_use_embedded_resources|. -headless_fontconfig_utils - Current value (from the default) = false - From //headless/headless.gni:10 +headless_mode_policy_supported + Current value (from the default) = true + From //headless/headless.gni:20 - Provide bindings for font loading for headless embedders. + Platforms where headless mode is supported. headless_use_embedded_resources Current value (from the default) = false @@ -2523,13 +3011,13 @@ headless_use_embedded_resources headless_use_policy Current value (from the default) = true - From //headless/headless.gni:16 + From //headless/headless.gni:17 Use Policy component to manage preferences. headless_use_prefs Current value (from the default) = true - From //headless/headless.gni:13 + From //headless/headless.gni:14 Use Prefs component to access Local State and other preferences. @@ -2558,16 +3046,32 @@ host_toolchain This should not normally be set as a build argument. It's here so that every toolchain can pass through the "global" value via toolchain_args(). +icu_copy_icudata_to_root_build_dir + Current value (from the default) = true + From //third_party/icu/config.gni:32 + + If set, the ":icudata" target will copy the ICU data to $root_build_dir. + icu_disable_thin_archive Current value (from the default) = false - From //third_party/icu/config.gni:17 + From //third_party/icu/config.gni:24 If true, compile icu into a standalone static library. Currently this is only useful on Chrome OS. +icu_fuchsia_extra_compile_flags + Current value (from the default) = [] + From //third_party/icu/config.gni:39 + + Fuchsia sometimes requires extra compilation flags for ICU to adapt it to + its current toolchain. Since it takes a while for ICU to roll through + Fuchsia, it can take a long time from an ICU commit to a fix rolling into + Fuchsia. This flag allows us to define the flag ahead of time in + //build/icu.gni, and remove the rollout issues. + icu_fuchsia_override_data_dir Current value (from the default) = "" - From //third_party/icu/config.gni:22 + From //third_party/icu/config.gni:29 If set to nonempty, this is the label of the directory to be used to pull the ICU data files content. The setting has effect only when building @@ -2575,22 +3079,24 @@ icu_fuchsia_override_data_dir icu_use_data_file Current value (from the default) = true - From //third_party/icu/config.gni:8 + From //third_party/icu/config.gni:15 Tells icu to load an external data file rather than rely on the icudata being linked directly into the binary. icu_use_stub_data Current value (from the default) = true - From //third_party/icu/config.gni:13 + From //third_party/icu/config.gni:20 If true, then this creates a stub data file. This should be disabled if a custom data file will be used instead, in order to avoid conflicting symbols. ignore_missing_widevine_signing_cert - Current value (from the default) = false - From //third_party/widevine/cdm/widevine.gni:81 + Current value = true + From //out/test/args.gn:69 + Overridden from the default = false + From //third_party/widevine/cdm/widevine.gni:78 If set, and Widevine CDM host verification signing failed due to no signing cert, the failure will be ignored. Otherwise the build process will fail. @@ -2611,9 +3117,18 @@ include_ash_ambient_animation_resources May be overridden locally to false for testing purposes if desired. +include_branded_entitlements + Current value (from the default) = true + From //chrome/BUILD.gn:64 + + On macOS, `is_chrome_branded` builds that have been signed locally will not + launch because certain entitlements are tied to the official Google code + signing identity. If `include_branded_entitlements` is set to false, these + entitlements will be skipped. + include_transport_security_state_preload_list Current value (from the default) = true - From //net/features.gni:36 + From //net/features.gni:41 Includes the transport security state preload list. This list includes mechanisms (e.g. HSTS, HPKP) to enforce trusted connections to a significant @@ -2622,15 +3137,16 @@ include_transport_security_state_preload_list willing to take the responsibility to make sure that all important connections use HTTPS. -include_vr_data +incremental_install Current value (from the default) = false - From //device/vr/buildflags/buildflags.gni:30 + From //build/config/android/config.gni:12 - Whether to include VR extras like test APKs in non-VR-specific targets + Build incremental targets whenever possible. + See //build/android/incremental_install/README.md for more details. init_stack_vars Current value (from the default) = true - From //build/config/compiler/BUILD.gn:140 + From //build/config/compiler/BUILD.gn:151 Initialize all local variables with a pattern. This flag will fill uninitialized floating-point types (and 32-bit pointers) with 0xFF and the @@ -2638,8 +3154,19 @@ init_stack_vars recognizable in the debugger, and crashes on memory accesses through uninitialized pointers. - TODO(crbug.com/1131993): Enabling this when 'is_android' is true breaks - content_shell_test_apk on both ARM and x86. + Flag discussion: https://crbug.com/977230 + + TODO(crbug.com/1131993): This regresses binary size by ~1MB on Android and + needs to be evaluated before enabling it there as well. + +init_stack_vars_zero + Current value = true + From //out/test/args.gn:94 + Overridden from the default = false + From //build/config/compiler/BUILD.gn:155 + + Zero init has favorable performance/size tradeoffs for Chrome OS + but was not evaluated for other platforms. internal_gles2_conform_tests Current value (from the default) = false @@ -2651,12 +3178,8 @@ internal_khronos_glcts_tests Current value (from the default) = false From //gpu/khronos_glcts_support/BUILD.gn:8 -invert_fieldtrials - Current value (from the default) = false - From //components/variations/field_trial_config/BUILD.gn:8 - ios_deployment_target - Current value (from the default) = "14.0" + Current value (from the default) = "15.0" From //build/config/ios/ios_sdk_overrides.gni:10 Version of iOS that we're targeting. @@ -2669,48 +3192,39 @@ ios_stack_profiler_enabled only supported on iOS 64-bit architecture, but some project build //base for 32-bit architecture. -iot_service_rpath - Current value (from the default) = "" - From //chromecast/chromecast.gni:131 - - Extra rpath to use for standalone services. - -is_android_arc - Current value (from the default) = false - From //chromecast/chromecast.gni:62 - - Set to true for builds targeting ARC. - is_asan Current value (from the default) = false From //build/config/sanitizers/sanitizers.gni:14 Compile for Address Sanitizer to find memory bugs. +is_cast_android + Current value (from the default) = false + From //build/config/cast.gni:32 + + Set this to true to build for Android-based Cast devices. + Set this to false to use the defaults for Android. + is_cast_audio_only Current value (from the default) = false - From //build/config/chromecast_build.gni:26 + From //build/config/cast.gni:12 Set this true for an audio-only Chromecast build. - TODO(crbug.com/1293538): Replace with a buildflag for speaker-only builds not - specific to Cast. - -is_cast_desktop_build - Current value (from the default) = false - From //chromecast/chromecast.gni:20 + TODO(https://crbug.com/1516671): Remove this arg as CastOS builds are no + longer supported. is_castos Current value (from the default) = false - From //build/config/chromecast_build.gni:53 + From //build/config/cast.gni:28 Set this to true to build for Nest hardware running Linux (aka "CastOS"). - Set this to false to use the defaults for the target OS/platform. - - TODO(crbug.com/1314528): Change default to false and require is_linux. + Set this to false to use the defaults for Linux. is_cfi - Current value (from the default) = true - From //build/config/sanitizers/sanitizers.gni:53 + Current value = true + From //out/test/args.gn:36 + Overridden from the default = true + From //build/config/sanitizers/sanitizers.gni:50 Compile with Control Flow Integrity to protect virtual calls and casts. See http://clang.llvm.org/docs/ControlFlowIntegrity.html @@ -2719,14 +3233,10 @@ is_cfi is_cfm Current value (from the default) = false - From //chromeos/components/chromebox_for_meetings/buildflags/buildflags.gni:7 + From //build/config/chromebox_for_meetings/buildflags.gni:7 True if compiling for Chromebox for Meeting devices. -is_chancie_wancie_build - Current value (from the default) = false - From //third_party/ffmpeg/ffmpeg_options.gni:18 - is_chrome_branded Current value (from the default) = false From //build/config/chrome_build.gni:9 @@ -2735,15 +3245,23 @@ is_chrome_branded true means official Google Chrome branding (requires extra Google-internal resources). -is_chromecast +is_chrome_for_testing Current value (from the default) = false - From //build/config/chromecast_build.gni:16 + From //build/config/chrome_build.gni:15 - DEPRECATED. This flag will be removed in the future; see https://crbug.com/1219802. + Whether to enable the Chrome for Testing (CfT) flavor. This arg is not + compatible with `is_chrome_branded`. - New code should use enable_cast_receiver if the feature in question is - required for all Cast-enabled browsers, or an alternative buildflag if it is - for specific types of devices. + Design document: https://goo.gle/chrome-for-testing + +is_chrome_for_testing_branded + Current value (from the default) = false + From //build/config/chrome_build.gni:21 + + Whether to use internal Chrome for Testing (CfT). + Requires `src-internal/` and `is_chrome_for_testing = true`. + + When true, use Google-internal icons, otherwise fall back to Chromium icons. is_chromeos_device Current value (from the default) = false @@ -2766,16 +3284,18 @@ is_chromeos_with_hw_details (see https://crrev.com/c/3123455). is_clang - Current value (from the default) = true + Current value = true + From //out/test/args.gn:31 + Overridden from the default = true From //build/config/BUILDCONFIG.gn:139 Set to true when compiling with the Clang compiler. is_component_build Current value = false - From //out/Linux/args.gn:21 + From //out/test/args.gn:26 Overridden from the default = false - From //build/config/BUILDCONFIG.gn:168 + From //build/config/BUILDCONFIG.gn:173 Component build. Setting to true compiles targets declared as "components" as shared libraries loaded dynamically. This speeds up development time. @@ -2786,9 +3306,9 @@ is_component_build is_component_ffmpeg Current value = true - From //out/Linux/args.gn:41 + From //out/test/args.gn:58 Overridden from the default = false - From //third_party/ffmpeg/ffmpeg_options.gni:51 + From //third_party/ffmpeg/ffmpeg_options.gni:39 Set true to build ffmpeg as a shared library. NOTE: this means we should always consult is_component_ffmpeg instead of is_component_build for @@ -2798,24 +3318,35 @@ is_component_ffmpeg is_cronet_build Current value (from the default) = false - From //build/config/ios/config.gni:16 + From //build/config/cronet/config.gni:9 Control whether cronet is built (this is usually set by the script components/cronet/tools/cr_cronet.py as cronet requires specific gn args to build correctly). +is_cronet_for_aosp_build + Current value (from the default) = false + From //build/config/cronet/config.gni:14 + + Controls whether cronet is currently being built for AOSP or Chromium. + This will always be false when building Cronet for Chromium. + the flag exists to accommodate for the divergence between the repos. + is_ct_supported Current value (from the default) = true - From //services/network/public/cpp/features.gni:10 + From //services/network/public/cpp/features.gni:9 Certificate transparency is not supported on iOS. - TODO(mmenke): It's actually not supported on Android, either. + +is_dawn_lpm_fuzzer + Current value (from the default) = true + From //third_party/dawn/src/dawn/fuzzers/dawn_fuzzers.gni:36 is_debug Current value = false - From //out/Linux/args.gn:13 + From //out/test/args.gn:15 Overridden from the default = false - From //build/config/BUILDCONFIG.gn:158 + From //build/config/BUILDCONFIG.gn:163 Debug build. Enabling official builds automatically sets is_debug to false. @@ -2823,6 +3354,22 @@ is_ggp Current value (from the default) = false From //third_party/angle/gni/angle.gni:8 +is_high_end_android + Current value (from the default) = false + From //build/config/chrome_build.gni:27 + + Set to true to enable settings for high end Android devices, typically + enhancing speed at the expense of resources such as binary sizes and memory. + Non-official builds should ignore this argument so that arm64 builders + remain fast and independent from PGO without having to set the value to false. + +is_high_end_android_secondary_toolchain + Current value (from the default) = false + From //build/config/chrome_build.gni:44 + + Whether to apply size->speed trade-offs to the secondary toolchain. + Relevant only for 64-bit target_cpu. + is_hwasan Current value (from the default) = false From //build/config/sanitizers/sanitizers.gni:19 @@ -2831,6 +3378,13 @@ is_hwasan (android/arm64 only). See http://clang.llvm.org/docs/HardwareAssistedAddressSanitizerDesign.html +is_java_debug + Current value (from the default) = false + From //build/config/android/config.gni:18 + + Java debug on Android. Having this on enables multidexing, and turning it + off will enable proguard. + is_lsan Current value (from the default) = false From //build/config/sanitizers/sanitizers.gni:22 @@ -2857,7 +3411,7 @@ is_nacl_saigo is_official_build Current value = true - From //out/Linux/args.gn:12 + From //out/test/args.gn:14 Overridden from the default = false From //build/config/BUILDCONFIG.gn:136 @@ -2874,11 +3428,14 @@ is_official_build is_on_release_branch Current value (from the default) = false - From //v8/gni/release_branch_toggle.gni:6 + From //v8/gni/release_branch_toggle.gni:8 + + TODO(liviurau): Remove old name after Chromium config update + https://crbug.com/1476977. is_p2p_enabled Current value (from the default) = true - From //services/network/public/cpp/features.gni:16 + From //services/network/public/cpp/features.gni:15 Controls whether P2P is exposed by the network service. Optional to reduce avoid having Chrome on iOS depends on @@ -2906,12 +3463,13 @@ is_reven Refers to the separate branding required for the reven build. -is_single_volume +is_robolectric Current value (from the default) = false - From //chromecast/chromecast.gni:66 + From //build/config/BUILDCONFIG.gn:156 - Set true if the platform works as a single volume device, mapping all - volume streams to a single one. + Do not set this directly. + It should be set only by //build/toolchains/android:robolectric_x64. + True when compiling native code for use with robolectric_binary(). is_skylab Current value (from the default) = false @@ -2938,22 +3496,16 @@ is_ubsan_no_recover Halt the program if a problem is detected. -is_ubsan_null - Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:38 - - Compile for Undefined Behaviour Sanitizer's null pointer checks. - is_ubsan_security Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:82 + From //build/config/sanitizers/sanitizers.gni:83 Enables core ubsan security features. Will later be removed once it matches is_ubsan. is_ubsan_vptr Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:118 + From //build/config/sanitizers/sanitizers.gni:125 Compile for Undefined Behaviour Sanitizer's vptr checks. @@ -2967,17 +3519,22 @@ is_unsafe_developer_build is_win_arm64 Current value (from the default) = false - From //third_party/angle/gni/angle.gni:120 + From //third_party/angle/gni/angle.gni:154 Currently Windows on Arm doesn't support OpenGL or Vulkan. -jsoncpp_no_deprecated_declarations - Current value (from the default) = true - From //third_party/jsoncpp/BUILD.gn:11 +jinja_dir + Current value (from the default) = "//third_party" + From //v8/third_party/inspector_protocol/inspector_protocol.gni:7 - Allow individual projects to remove the warning suppression - by overriding this in their .gn file or through custom args.gn - See crbug.com/983223 + Where jinja2 is located, in chromium it is //third_party. + +lacros_use_chromium_toolchain + Current value (from the default) = false + From //build/toolchain/cros/cros_config.gni:8 + + If set, build lacros with Chromium's toolchain instead of with Chrome OS's. + TODO(thakis): Set this to `= chromeos_is_browser_only` once that works. ldso_path Current value (from the default) = "" @@ -2985,7 +3542,7 @@ ldso_path libcxx_is_shared Current value (from the default) = false - From //build/config/c++/c++.gni:55 + From //build/config/c++/c++.gni:54 WARNING: Setting this to a non-default value is highly discouraged. If true, libc++ will be built as a shared library; otherwise libc++ will be @@ -2996,14 +3553,14 @@ libcxx_is_shared libcxx_natvis_include Current value (from the default) = true - From //build/config/c++/c++.gni:30 + From //build/config/c++/c++.gni:29 Builds libcxx Natvis into the symbols for type visualization. Set to false to workaround http://crbug.com/966676 and http://crbug.com/966687. libcxx_revision - Current value (from the default) = "79a2e924d96e2fc1e4b937c42efd08898fa472d7" + Current value (from the default) = "28aa23ffb4c7344914a5b4ac7169f12e5a12333f" From //buildtools/deps_revisions.gni:8 Used to cause full rebuilds on libc++ rolls. This should be kept in sync @@ -3013,13 +3570,17 @@ libyuv_disable_jpeg Current value (from the default) = false From //third_party/libyuv/libyuv.gni:15 +libyuv_disable_rvv + Current value (from the default) = false + From //third_party/libyuv/libyuv.gni:16 + libyuv_include_tests Current value (from the default) = false From //third_party/libyuv/libyuv.gni:14 libyuv_symbols_visible Current value (from the default) = false - From //third_party/libyuv/BUILD.gn:19 + From //third_party/libyuv/BUILD.gn:20 When building a shared library using a target in WebRTC or Chromium projects that depends on libyuv, setting this flag @@ -3027,25 +3588,25 @@ libyuv_symbols_visible libyuv_use_absl_flags Current value (from the default) = true - From //third_party/libyuv/BUILD.gn:14 + From //third_party/libyuv/BUILD.gn:15 Set to false to disable building with absl flags. libyuv_use_mmi Current value (from the default) = false - From //third_party/libyuv/libyuv.gni:22 + From //third_party/libyuv/libyuv.gni:23 libyuv_use_msa Current value (from the default) = false - From //third_party/libyuv/libyuv.gni:20 + From //third_party/libyuv/libyuv.gni:21 libyuv_use_neon Current value (from the default) = false - From //third_party/libyuv/libyuv.gni:17 + From //third_party/libyuv/libyuv.gni:18 limit_android_deps Current value (from the default) = false - From //build_overrides/build.gni:35 + From //build_overrides/build.gni:50 Limits the defined //third_party/android_deps targets to only "buildCompile" and "buildCompileNoDeps" targets. This is useful for third-party @@ -3055,12 +3616,28 @@ limit_android_deps link_pulseaudio Current value (from the default) = false - From //media/media_options.gni:19 + From //media/media_options.gni:42 Allows distributions to link pulseaudio directly (DT_NEEDED) instead of using dlopen. This helps with automated detection of ABI mismatches and prevents silent errors. +lld_emit_indexes_and_imports + Current value (from the default) = false + From //build/config/clang/clang.gni:37 + + Set to true to enable output of ThinLTO index and import files used for + creating a Chromium MLGO corpus in the ThinLTO case. + +llvm_android_mainline + Current value (from the default) = false + From //build/toolchain/toolchain.gni:24 + + Cronet is shipped in AOSP, where it is built using the Android Mainline + Clang. Please refer to go/cronet-builders-with-mainline-clang-design for + more information. + If this arg is set to true, we use the Android Mainline LLVM. + llvm_force_head_revision Current value (from the default) = false From //build/toolchain/toolchain.gni:18 @@ -3075,28 +3652,18 @@ mac_sdk_min Current value (from the default) = "10.15" From //build/config/mac/mac_sdk_overrides.gni:12 -make_partition_alloc_standalone - Current value (from the default) = false - From //base/allocator/partition_allocator/partition_alloc.gni:6 - mbi_mode Current value (from the default) = true - From //content/common/features.gni:17 + From //content/common/features.gni:20 Whether or not MBI mode (Multiple Blink Isolates) should be enabled, depending on the build argument. -media_clock_monotonic_raw - Current value (from the default) = true - From //chromecast/chromecast.gni:86 - - unified flag to pick monotonic_clock OR monotonic_clock_raw - media_use_ffmpeg Current value = true - From //out/Linux/args.gn:31 + From //out/test/args.gn:46 Overridden from the default = true - From //media/media_options.gni:24 + From //media/media_options.gni:47 Enable usage of FFmpeg within the media library. Used for most software based decoding, demuxing, and sometimes optimized FFTs. If disabled, @@ -3104,36 +3671,33 @@ media_use_ffmpeg media_use_libvpx Current value = true - From //out/Linux/args.gn:32 + From //out/test/args.gn:47 Overridden from the default = true - From //media/media_options.gni:28 + From //media/media_options.gni:51 Enable usage of libvpx within the media library. Used for software based decoding of VP9 and VP8A type content. media_use_openh264 Current value (from the default) = true - From //media/media_options.gni:38 + From //media/media_options.gni:61 Enable usage of OpenH264 within the media library. Used for software based encoding of H264 content. +mediapipe_build_with_gpu_support + Current value (from the default) = false + From //third_party/mediapipe/BUILD.gn:12 + mips_use_mmi Current value (from the default) = false From //build/config/mips.gni:13 MIPS MultiMedia Instruction compilation flag. -mixer_in_cast_shell - Current value (from the default) = true - From //chromecast/chromecast.gni:55 - - If true, the mixer will be instantiated inside cast_shell. When false, the - mixer is expected to be running in another process. - mojo_media_host Current value (from the default) = "gpu" - From //media/media_options.gni:247 + From //media/media_options.gni:326 The process that the mojo MediaService runs in. By default, all services registered in |mojo_media_services| are hosted in the MediaService, with the @@ -3148,7 +3712,7 @@ mojo_media_host mojo_media_services Current value (from the default) = ["video_decoder", "cdm"] - From //media/media_options.gni:235 + From //media/media_options.gni:314 A list of mojo media services that should be used in the media pipeline. Valid entries in the list are: @@ -3159,9 +3723,13 @@ mojo_media_services - "video_decoder": Use mojo-based video decoder in the default media Renderer. Cannot be used with the mojo Renderer above. +mojo_use_apple_channel + Current value (from the default) = false + From //mojo/features.gni:8 + mojom_message_id_salt_path Current value (from the default) = "//chrome/VERSION" - From //mojo/public/tools/bindings/mojom.gni:116 + From //mojo/public/tools/bindings/mojom.gni:136 The path to a file whose contents can be used as the basis for a message ID scrambling salt. @@ -3174,13 +3742,13 @@ monolithic_binaries are monolithic and don't use a common shared library. This is mainly to avoid LD_LIBRARY_PATH dances when testing locally. On Windows we default to monolithic executables, because pairing - dllexport/import adds extra complexity for little benefit. Te only reason + dllexport/import adds extra complexity for little benefit. The only reason for monolithic_binaries=false is saving binary size, which matters mainly on Android. See also comments on PERFETTO_EXPORT_ENTRYPOINT in compiler.h. msan_track_origins Current value (from the default) = 2 - From //build/config/sanitizers/sanitizers.gni:43 + From //build/config/sanitizers/sanitizers.gni:40 Track where uninitialized memory originates from. From fastest to slowest: 0 - no tracking, 1 - track only the initial allocation site, 2 - track the @@ -3188,34 +3756,33 @@ msan_track_origins msvc_use_sse2 Current value (from the default) = true - From //third_party/pdfium/pdfium.gni:69 + From //third_party/pdfium/pdfium.gni:84 Enable SSE2 for MSVC builds. Ignored if it's not a MSVC build. ndk_api_level_at_least_26 Current value (from the default) = false - From //third_party/angle/gni/angle.gni:99 - -needs_gomacc_path_arg - Current value (from the default) = false - From //build/toolchain/goma.gni:14 - - This flag is for ChromeOS compiler wrapper. - By passing gomacc path via cmd-line arg, ChromeOS' compiler wrapper - invokes gomacc inside it. + From //third_party/angle/gni/angle.gni:132 optimize_for_fuzzing Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:90 + From //build/config/compiler/BUILD.gn:92 Optimize for coverage guided fuzzing (balance between speed and number of - branches). Can be also used to remove non-determinism and other issues. + branches) + +optimize_for_size + Current value (from the default) = false + From //build/config/compiler/compiler.gni:42 + + If true, optimize for size. + Default to favoring speed over size for platforms not listed below. optimize_webui Current value = true - From //out/Linux/args.gn:24 + From //out/test/args.gn:29 Overridden from the default = true - From //ui/webui/webui_features.gni:11 + From //ui/webui/webui_features.gni:12 Optimize parts of Chrome's UI written with web technologies (HTML/CSS/JS) for runtime performance purposes. This does more work at compile time for @@ -3225,75 +3792,83 @@ optional_trace_events_enabled Current value (from the default) = true From //base/trace_event/tracing.gni:20 +os_level_geolocation_permission_supported + Current value (from the default) = false + From //services/device/public/cpp/geolocation/buildflags.gni:11 + + Specifies if we support the OS level global geolocation permission for the current platform. + This is exposed with the macro OS_LEVEL_GEOLOCATION_PERMISSION_SUPPORTED. + ozone_auto_platforms Current value (from the default) = true - From //build/config/ozone.gni:22 + From //build/config/ozone.gni:21 Select platforms automatically. Turn this off for manual control. ozone_extra_path Current value (from the default) = "//build/config/ozone_extra.gni" - From //build/config/ozone.gni:19 + From //build/config/ozone.gni:18 Ozone extra platforms file path. Can be overridden to build out of tree ozone platforms. ozone_platform Current value (from the default) = "x11" - From //build/config/ozone.gni:95 + From //build/config/ozone.gni:88 ozone_platform_cast Current value (from the default) = false - From //build/config/ozone.gni:44 + From //build/config/ozone.gni:43 Compile the 'cast' platform. ozone_platform_drm Current value (from the default) = false - From //build/config/ozone.gni:47 + From //build/config/ozone.gni:46 Compile the 'drm' platform. ozone_platform_flatland Current value (from the default) = false - From //build/config/ozone.gni:56 + From //build/config/ozone.gni:52 Compile the 'flatland' platform. ozone_platform_gbm Current value (from the default) = -1 - From //build/config/ozone.gni:26 + From //build/config/ozone.gni:25 TODO(petermcneeley): Backwards compatiblity support for VM images. Remove when deprecated. (https://crbug.com/1122009) ozone_platform_headless Current value (from the default) = true - From //build/config/ozone.gni:70 - -ozone_platform_scenic - Current value (from the default) = false - From //build/config/ozone.gni:53 - - Compile the 'scenic' platform. + From //build/config/ozone.gni:63 ozone_platform_wayland Current value (from the default) = true - From //build/config/ozone.gni:96 - -ozone_platform_windows - Current value (from the default) = false - From //build/config/ozone.gni:65 - - Compile the 'windows' platform. + From //build/config/ozone.gni:89 ozone_platform_x11 Current value (from the default) = true - From //build/config/ozone.gni:97 + From //build/config/ozone.gni:90 + +partition_alloc_optimized_debug + Current value (from the default) = true + From //base/allocator/partition_allocator/partition_alloc.gni:81 + + Turns on compiler optimizations in PartitionAlloc in Debug build. + If enabling PartitionAlloc-Everywhere in Debug build for tests in Debug + build, since all memory allocations and deallocations are executed by + non-optimized PartitionAlloc, chrome (including tests) will be much + slower. This will cause debug trybots' timeouts. If we want to debug + PartitionAlloc itself, use partition_alloc_optimized_debug=false. + Otherwise, use partition_alloc_optimized_debug=true to enable optimized + PartitionAlloc. pdf_bundle_freetype Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:16 + From //third_party/pdfium/pdfium.gni:17 Build PDFium either: 1) When set to true, with a bundled FreeType, built from FreeType source @@ -3304,71 +3879,85 @@ pdf_bundle_freetype pdf_enable_click_logging Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:19 + From //third_party/pdfium/pdfium.gni:20 Generate logging messages for click events that reach PDFium +pdf_enable_fontations + Current value (from the default) = false + From //third_party/pdfium/pdfium.gni:56 + + Build PDFium with experimental Fontations library support. + If enabled, coexists in build with FreeType library and the default font + library is selectable at runtime. + Note that Fontations requires Skia and Rust support. + pdf_enable_v8 Current value (from the default) = true - From //third_party/pdfium/pdfium.gni:22 + From //third_party/pdfium/pdfium.gni:23 Build PDFium either with or without v8 support. pdf_enable_xfa Current value (from the default) = true - From //third_party/pdfium/pdfium.gni:25 + From //third_party/pdfium/pdfium.gni:26 Build PDFium either with or without XFA Forms support. pdf_enable_xfa_bmp Current value (from the default) = true - From //third_party/pdfium/pdfium.gni:28 + From //third_party/pdfium/pdfium.gni:29 If XFA, also support bmp codec. Ignored if not XFA. pdf_enable_xfa_gif Current value (from the default) = true - From //third_party/pdfium/pdfium.gni:31 + From //third_party/pdfium/pdfium.gni:32 If XFA, also support gif codec. Ignored if not XFA. pdf_enable_xfa_png Current value (from the default) = true - From //third_party/pdfium/pdfium.gni:34 + From //third_party/pdfium/pdfium.gni:35 If XFA, also support png codec. Ignored if not XFA. pdf_enable_xfa_tiff Current value (from the default) = true - From //third_party/pdfium/pdfium.gni:37 + From //third_party/pdfium/pdfium.gni:38 If XFA, also support tiff codec. Ignored if not XFA. pdf_is_complete_lib Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:51 + From //third_party/pdfium/pdfium.gni:63 Build a complete static library pdf_is_standalone Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:48 + From //third_party/pdfium/pdfium.gni:60 - Build PDFium standalone + Build PDFium standalone. Now only controls whether the test binaries + are built. Most logic is conditioned by build_with_chromium. -pdf_use_skia - Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:41 - - Build PDFium against Skia (experimental) rather than AGG. Use Skia to draw - everything. - -pdf_use_skia_paths - Current value (from the default) = false +pdf_use_partition_alloc + Current value (from the default) = true From //third_party/pdfium/pdfium.gni:45 - Build PDFium against Skia (experimental) rather than AGG. Use Skia to draw - paths. + Build PDFium against PartitionAlloc. When false, PDFium must build without + requiring any PartitionAlloc headers or code to be present. When true, + PDFium will use PartitionAlloc partitions to separate strings, scalars, + etc. from other allocations. However, the use of PartitionAlloc for new or + malloc is controlled by args in build_overrides/partition_alloc.gni. + +pdf_use_skia + Current value (from the default) = true + From //third_party/pdfium/pdfium.gni:50 + + Build PDFium to use Skia (experimental) for all PDFium graphics. + If enabled, coexists in build with AGG graphics and the default + renderer is selectable at runtime. perfetto_build_with_android Current value (from the default) = false @@ -3381,7 +3970,7 @@ perfetto_build_with_android perfetto_enable_git_rev_version_header Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:247 + From //third_party/perfetto/gn/perfetto.gni:257 perfetto_force_dcheck Current value (from the default) = "" @@ -3404,26 +3993,43 @@ perfetto_force_dlog none ("off"). We disable it by default for embedders to avoid spamming their console. +perfetto_use_pkgconfig + Current value (from the default) = false + From //third_party/perfetto/gn/perfetto.gni:349 + + Used by CrOS builds. Uses pkg-config to determine the appropriate flags + for including and linking system libraries. + set `host_pkg_config` to the `BUILD_PKG_CONFIG` and + set `pkg_config` to the target `PKG_CONFIG`. + Note: that if this is enabled `perfetto_use_system_protobuf` should be also. + perfetto_use_system_protobuf Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:316 + From //third_party/perfetto/gn/perfetto.gni:353 Used by CrOS system builds. Uses the system version of protobuf from /usr/include instead of the hermetic one. +perfetto_use_system_sqlite + Current value (from the default) = false + From //third_party/perfetto/gn/perfetto.gni:357 + + Used by CrOS system builds. Uses the system version of sqlite + from /usr/include instead of the hermetic one. + perfetto_use_system_zlib Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:318 + From //third_party/perfetto/gn/perfetto.gni:359 perfetto_verbose_logs_enabled Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:261 + From //third_party/perfetto/gn/perfetto.gni:275 pgo_data_path - Current value = "/media/alex/linuz/home/alex/chromium/src/chrome/build/pgo_profiles/chrome-linux-main-1653111411-110bd8e895e0fd1042d651c92f52fd65385633f2.profdata" - From //out/Linux/args.gn:68 + Current value = "/home/alex/chromium/src/chrome/build/pgo_profiles/chrome-linux-6099-1701798922-d4c2e2b63ef7ac7755f4bcd1deb8e214078c9410.profdata" + From //out/test/args.gn:96 Overridden from the default = "" - From //build/config/compiler/pgo/pgo.gni:24 + From //build/config/compiler/pgo/pgo.gni:35 When using chrome_pgo_phase = 2, read profile data from this path. @@ -3437,6 +4043,14 @@ pkg_config Leaving it blank defaults to searching PATH for 'pkg-config' and relying on the sysroot mechanism to find the right .pc files. +platform_has_optional_hevc_support + Current value (from the default) = true + From //media/media_options.gni:150 + +plus_addresses_use_internal_android_resources + Current value (from the default) = false + From //components/plus_addresses/buildflags.gni:11 + print_unsymbolized_stack_traces Current value (from the default) = false From //base/third_party/symbolize/BUILD.gn:13 @@ -3447,59 +4061,92 @@ print_unsymbolized_stack_traces and also enabling symbol_level = 2, you can get much more detailed stack traces with file names and line numbers, even in non-ASAN builds. +produce_v8_compile_hints + Current value (from the default) = true + From //third_party/blink/renderer/bindings/bindings.gni:7 + + Enable V8 to produce hints regarding which functions to compile eagerly. + proprietary_codecs Current value = true - From //out/Linux/args.gn:38 + From //out/test/args.gn:53 Overridden from the default = false - From //build/config/features.gni:26 + From //build/config/features.gni:31 Enables proprietary codecs and demuxers; e.g. H264, AAC, MP3, and MP4. We always build Google Chrome and Chromecast with proprietary codecs. Note: this flag is used by WebRTC which is DEPSed into Chrome. Moving it out of //build will require using the build_overrides directory. + + Do not add any other conditions to the following line. + + TODO(crbug.com/1314528): Remove chromecast-related conditions and force + builds to explicitly specify this. -put_ref_count_in_previous_slot +raw_ptr_zero_on_construct + Current value (from the default) = true + From //base/allocator/partition_allocator/partition_alloc.gni:375 + +raw_ptr_zero_on_destruct Current value (from the default) = false - From //base/allocator/allocator.gni:106 + From //base/allocator/partition_allocator/partition_alloc.gni:377 - If BRP is enabled, additional options are available: - - put_ref_count_in_previous_slot: place the ref-count at the end of the - previous slot (or in metadata if a slot starts on the page boundary), as - opposed to the beginning of the slot. - - enable_backup_ref_ptr_slow_checks: enable additional safety checks that - are too expensive to have on by default. - - enable_dangling_raw_ptr_checks: enable checking raw_ptr do not become - dangling during their lifetime. +raw_ptr_zero_on_move + Current value (from the default) = true + From //base/allocator/partition_allocator/partition_alloc.gni:376 + +rbe_bin_dir + Current value (from the default) = "../../buildtools/reclient" + From //build/toolchain/rbe.gni:5 + + The directory where the re-client tooling binaries are. rbe_cc_cfg_file - Current value (from the default) = "" - From //build/toolchain/rbe.gni:23 - - Set to the path of the RBE reclient configuration file. + Current value (from the default) = "../../buildtools/reclient_cfgs/chromium-browser-clang/rewrapper_linux.cfg" + From //build/toolchain/rbe.gni:29 rbe_cfg_dir - Current value (from the default) = "../../buildtools/reclient_cfgs" + Current value (from the default) = "//buildtools/reclient_cfgs" From //build/toolchain/rbe.gni:20 The directory where the re-client configuration files are. rbe_cros_cc_wrapper Current value (from the default) = "../../buildtools/reclient/rewrapper" - From //build/toolchain/rbe.gni:26 + From //build/toolchain/rbe.gni:52 Set to the path of the RBE recleint wrapper for ChromeOS. +rbe_exec_root + Current value (from the default) = "/home/alex/chromium/src/" + From //build/toolchain/rbe.gni:11 + + Execution root - this should be the root of the source tree. + This is defined here instead of in the config file because + this will vary depending on where the user has placed the + chromium source on their system. + +rbe_link_cfg_file + Current value (from the default) = "../../buildtools/reclient_cfgs/chromium-browser-clang/rewrapper_linux_link.cfg" + From //build/toolchain/rbe.gni:31 + +rbe_py_cfg_file + Current value (from the default) = "../../buildtools/reclient_cfgs/python/rewrapper_linux.cfg" + From //build/toolchain/rbe.gni:28 + regenerate_x11_protos Current value (from the default) = false From //ui/gfx/x/BUILD.gn:12 -remoting_use_wayland +remoting_internal Current value (from the default) = false - From //remoting/build/config/remoting_features.gni:8 + From //remoting/build/config/remoting_build.gni:28 - Determines whether or not remoting should use wayland implementation - to talk to remote host. + You can set the variable 'remoting_internal' to true to include Google- + internal sources and implementations in a developer build. Setting this + variable explicitly to true will cause your build to fail if the + //remoting/internal directory is not present in your checkout. remoting_webrtc_verbose_logging Current value (from the default) = false @@ -3515,14 +4162,20 @@ remoting_webrtc_verbose_logging removed_rust_stdlib_libs Current value (from the default) = [] - From //build/config/rust.gni:48 + From //build/config/rust.gni:86 Any removed std rlibs in your Rust toolchain, relative to the standard - Rust toolchain. Typically used with 'use_unverified_rust_toolchain' = true + Rust toolchain. Typically used with 'rust_sysroot_absolute' + +restricted_traces_outside_of_apk + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:43 + + Only bundle traces in the APK if we're building a subset root_extra_deps Current value (from the default) = [] - From //BUILD.gn:54 + From //BUILD.gn:64 A list of extra dependencies to add to the root target. This allows a checkout to add additional targets without explicitly changing any checked- @@ -3530,7 +4183,7 @@ root_extra_deps rtc_audio_device_plays_sinus_tone Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:191 + From //third_party/webrtc/webrtc.gni:206 When set to true, replace the audio output with a sinus tone at 440Hz. The ADM will ask for audio data from WebRTC but instead of reading real @@ -3539,90 +4192,104 @@ rtc_audio_device_plays_sinus_tone rtc_build_dcsctp Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:307 + From //third_party/webrtc/webrtc.gni:340 Enable the dcsctp backend for DataChannels and related unittests rtc_build_examples Current value = false - From //out/Linux/args.gn:56 + From //out/test/args.gn:76 Overridden from the default = true - From //third_party/webrtc/webrtc.gni:126 + From //third_party/webrtc/webrtc.gni:138 Set this to false to skip building examples. rtc_build_json Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:247 + From //third_party/webrtc/webrtc.gni:280 Disable these to not build components which can be externally provided. rtc_build_libevent Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:261 + From //third_party/webrtc/webrtc.gni:294 rtc_build_libsrtp Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:248 + From //third_party/webrtc/webrtc.gni:281 rtc_build_libvpx Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:249 + From //third_party/webrtc/webrtc.gni:282 rtc_build_opus Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:251 + From //third_party/webrtc/webrtc.gni:284 rtc_build_ssl Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:252 + From //third_party/webrtc/webrtc.gni:285 rtc_build_tools Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:129 + From //third_party/webrtc/webrtc.gni:141 Set this to false to skip building tools. rtc_build_with_neon Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:165 + From //third_party/webrtc/webrtc.gni:177 rtc_builtin_ssl_root_certificates Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:88 + From //third_party/webrtc/webrtc.gni:100 Setting this to false will require the API user to pass in their own SSLCertificateVerifier to verify the certificates presented from a TLS-TURN server. In return disabling this saves around 100kb in the binary. +rtc_common_public_deps + Current value = ["//base"] + From //.gn:46 + Overridden from the default = [] + From //third_party/webrtc/webrtc.gni:262 + + Embedders can define dependencies needed by WebRTC. Dependencies can be + configs or targets. This can be defined in their `.gn` file. + + In practise, this is use by Chromium: Targets from + `//third_party/webrtc_overrides` are depending on Chrome's `//base`, but + WebRTC does not declare its public dependencies. See webrtc:8603. Instead + WebRTC is using a global common dependencies. + rtc_disable_check_msg Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:295 + From //third_party/webrtc/webrtc.gni:328 Set this to true to disable detailed error message and logging for RTC_CHECKs. rtc_disable_logging Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:288 + From //third_party/webrtc/webrtc.gni:321 Set this to true to fully remove logging from WebRTC. rtc_disable_metrics Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:298 + From //third_party/webrtc/webrtc.gni:331 Set this to true to disable webrtc metrics. rtc_disable_trace_events Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:291 + From //third_party/webrtc/webrtc.gni:324 Set this to true to disable trace events. rtc_dlog_always_on Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:51 + From //third_party/webrtc/webrtc.gni:59 Setting this to true, will make RTC_DLOG() expand to log statements instead of being removed by the preprocessor. @@ -3630,41 +4297,50 @@ rtc_dlog_always_on rtc_enable_android_aaudio Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:148 + From //third_party/webrtc/webrtc.gni:160 Experimental: enable use of Android AAudio which requires Android SDK 26 or above and NDK r16 or above. rtc_enable_avx2 - Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:274 + Current value = true + From //out/test/args.gn:77 + Overridden from the default = true + From //third_party/webrtc/webrtc.gni:307 rtc_enable_bwe_test_logging Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:123 + From //third_party/webrtc/webrtc.gni:135 Set this to true to enable BWE test logging. rtc_enable_external_auth Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:113 + From //third_party/webrtc/webrtc.gni:125 Enable when an external authentication mechanism is used for performing packet authentication for RTP packets instead of libsrtp. +rtc_enable_google_benchmarks + Current value (from the default) = true + From //third_party/webrtc/webrtc.gni:63 + + Enables additional build targets that rely on + //third_party/google_benchmarks. + rtc_enable_grpc Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:310 + From //third_party/webrtc/webrtc.gni:343 Enable gRPC used for negotiation in multiprocess tests rtc_enable_libevent Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:260 + From //third_party/webrtc/webrtc.gni:293 rtc_enable_objc_symbol_export Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:58 + From //third_party/webrtc/webrtc.gni:70 Setting this to true will make RTC_OBJC_EXPORT expand to code that will manage symbols visibility. By default, Obj-C/Obj-C++ symbols are exported @@ -3674,26 +4350,26 @@ rtc_enable_objc_symbol_export rtc_enable_protobuf Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:241 + From //third_party/webrtc/webrtc.gni:274 Enables the use of protocol buffers for debug recordings. rtc_enable_sctp Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:244 + From //third_party/webrtc/webrtc.gni:277 Set this to disable building with support for SCTP data channels. rtc_enable_symbol_export Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:44 + From //third_party/webrtc/webrtc.gni:48 Setting this to true will make RTC_EXPORT (see rtc_base/system/rtc_export.h) expand to code that will manage symbols visibility. rtc_enable_win_wgc Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:226 + From //third_party/webrtc/webrtc.gni:234 When set to true, a capturer implementation that uses the Windows.Graphics.Capture APIs will be available for use. This introduces a @@ -3701,13 +4377,13 @@ rtc_enable_win_wgc rtc_exclude_audio_processing_module Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:120 + From //third_party/webrtc/webrtc.gni:132 Selects whether the audio processing module should be excluded. rtc_exclude_field_trial_default Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:68 + From //third_party/webrtc/webrtc.gni:80 When WebRTC is built as part of Chromium it should exclude the default implementation of field_trial unless it is building for NACL or @@ -3715,7 +4391,7 @@ rtc_exclude_field_trial_default rtc_exclude_metrics_default Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:77 + From //third_party/webrtc/webrtc.gni:89 Setting this to true will define WEBRTC_EXCLUDE_METRICS_DEFAULT which will tell the pre-processor to remove the default definition of symbols @@ -3724,7 +4400,7 @@ rtc_exclude_metrics_default rtc_exclude_system_time Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:83 + From //third_party/webrtc/webrtc.gni:95 Setting this to true will define WEBRTC_EXCLUDE_SYSTEM_TIME which will tell the pre-processor to remove the default definition of the @@ -3733,112 +4409,120 @@ rtc_exclude_system_time rtc_exclude_transient_suppressor Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:302 + From //third_party/webrtc/webrtc.gni:335 Set this to true to exclude the transient suppressor in the audio processing module from the build. rtc_include_builtin_audio_codecs Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:207 + From //third_party/webrtc/webrtc.gni:221 When set to false, builtin audio encoder/decoder factories and all the audio codecs they depend on will not be included in libwebrtc.{a|lib} (they will still be included in libjingle_peerconnection_so.so and WebRTC.framework) -rtc_include_builtin_video_codecs - Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:213 - - When set to false, builtin video encoder/decoder factories and all the - video codecs they depends on will not be included in libwebrtc.{a|lib} - (they will still be included in libjingle_peerconnection_so.so and - WebRTC.framework) - rtc_include_dav1d_in_internal_decoder_factory Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:229 + From //third_party/webrtc/webrtc.gni:237 Includes the dav1d decoder in the internal decoder factory when set to true. rtc_include_ilbc Current value = true - From //out/Linux/args.gn:54 + From //out/test/args.gn:74 Overridden from the default = true - From //third_party/webrtc/webrtc.gni:91 + From //third_party/webrtc/webrtc.gni:103 Include the iLBC audio codec? rtc_include_internal_audio_device Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:269 + From //third_party/webrtc/webrtc.gni:302 Chromium uses its own IO handling, so the internal ADM is only built for standalone WebRTC. rtc_include_opus Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:94 + From //third_party/webrtc/webrtc.gni:106 Disable this to avoid building the Opus audio codec. rtc_include_pulse_audio Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:265 + From //third_party/webrtc/webrtc.gni:298 Excluded in Chromium since its prerequisites don't require Pulse Audio. rtc_include_tests Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:281 + From //third_party/webrtc/webrtc.gni:314 Set this to true to build the unit tests. Disabled when building with Chromium or Mozilla. -rtc_ios_macos_use_opengl_rendering - Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:201 +rtc_ios_use_opengl_rendering + Current value (from the default) = false + From //third_party/webrtc/webrtc.gni:215 + + Determines whether OpenGL is available on iOS. + +rtc_jni_generator_legacy_symbols + Current value (from the default) = false + From //third_party/webrtc/webrtc.gni:54 + + If set to true, C++ code will refer to the new JNI Generator symbols. + If set to false the old ones will be used (to provide a nice update path). rtc_jsoncpp_root Current value (from the default) = "//third_party/jsoncpp/source/include" - From //third_party/webrtc/webrtc.gni:105 + From //third_party/webrtc/webrtc.gni:117 Used to specify an external Jsoncpp include path when not compiling the library that comes with WebRTC (i.e. rtc_build_json == 0). rtc_libvpx_build_vp9 Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:250 + From //third_party/webrtc/webrtc.gni:283 rtc_link_pipewire Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:141 + From //third_party/webrtc/webrtc.gni:153 Set this to link PipeWire and required libraries directly instead of using the dlopen. +rtc_objc_prefix + Current value (from the default) = "" + From //third_party/webrtc/webrtc.gni:253 + + If different from "", symbols exported with RTC_OBJC_EXPORT will be prefixed + with this string. + See the definition of RTC_OBJC_TYPE_PREFIX in the code. + rtc_opus_support_120ms_ptime Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:98 + From //third_party/webrtc/webrtc.gni:110 Enable this if the Opus version upon which WebRTC is built supports direct encoding of 120 ms packets. rtc_opus_variable_complexity Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:101 + From //third_party/webrtc/webrtc.gni:113 Enable this to let the Opus audio codec change complexity on the fly. rtc_prefer_fixed_point Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:158 + From //third_party/webrtc/webrtc.gni:170 Selects fixed-point code where possible. rtc_sanitize_coverage Current value (from the default) = "" - From //third_party/webrtc/webrtc.gni:155 + From //third_party/webrtc/webrtc.gni:167 Set to "func", "block", "edge" for coverage generation. At unit test runtime set UBSAN_OPTIONS="coverage=1". @@ -3848,33 +4532,53 @@ rtc_sanitize_coverage rtc_ssl_root Current value (from the default) = "" - From //third_party/webrtc/webrtc.gni:109 + From //third_party/webrtc/webrtc.gni:121 Used to specify an external OpenSSL include path when not compiling the library that comes with WebRTC (i.e. rtc_build_ssl == 0). +rtc_strict_field_trials + Current value (from the default) = "" + From //third_party/webrtc/webrtc.gni:248 + + When enabled, a run-time check will make sure that all field trial keys have + been registered in accordance with the field trial policy, see + g3doc/field-trials.md. The value can be set to the following: + + "dcheck": RTC_DCHECKs that the field trial has been registered. RTC_DCHECK + must be enabled separately. + + "warn": RTC_LOGs a message with LS_WARNING severity if the field trial + hasn't been registered. + rtc_use_absl_mutex Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:181 + From //third_party/webrtc/webrtc.gni:196 Enable this flag to make webrtc::Mutex be implemented by absl::Mutex. rtc_use_dummy_audio_file_devices Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:185 + From //third_party/webrtc/webrtc.gni:200 By default, use normal platform audio support or dummy audio, but don't use file-based audio playout and record. rtc_use_h264 Current value = true - From //out/Linux/args.gn:53 + From //out/test/args.gn:73 Overridden from the default = true - From //third_party/webrtc/webrtc.gni:178 + From //third_party/webrtc/webrtc.gni:190 + +rtc_use_h265 + Current value (from the default) = true + From //third_party/webrtc/webrtc.gni:193 + + Enable to use H265 rtc_use_pipewire Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:138 + From //third_party/webrtc/webrtc.gni:150 Set this to use PipeWire on the Wayland display server. By default it's only enabled on desktop Linux (excludes ChromeOS) and @@ -3883,20 +4587,20 @@ rtc_use_pipewire rtc_use_x11 Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:132 + From //third_party/webrtc/webrtc.gni:144 Set this to false to skip building code that requires X11. rtc_use_x11_extensions Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:285 + From //third_party/webrtc/webrtc.gni:318 Set this to false to skip building code that also requires X11 extensions such as Xdamage, Xfixes. rtc_win_undef_unicode Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:221 + From //third_party/webrtc/webrtc.gni:229 When set to true and in a standalone build, it will undefine UNICODE and _UNICODE (which are always defined globally by the Chromium Windows @@ -3907,40 +4611,33 @@ rtc_win_undef_unicode runtime_call_stats_count_everything Current value (from the default) = false - From //third_party/blink/renderer/platform/BUILD.gn:189 + From //third_party/blink/renderer/platform/BUILD.gn:225 rust_sysroot_absolute Current value (from the default) = "" - From //build/config/rust.gni:40 + From //build/config/rust.gni:57 - Chromium currently has a Rust toolchain for Android and Linux, but - if you wish to experiment on more platforms you can use this - argument to specify an alternative toolchain. - This should be an absolute path to a directory - containing a 'bin' directory and others. Commonly + Chromium provides a Rust toolchain in //third_party/rust-toolchain. + + To use a custom toolchain instead, specify an absolute path to the root of + a Rust sysroot, which will have a 'bin' directory and others. Commonly /.rustup/toolchains/nightly-- -rustc_can_link - Current value (from the default) = true - From //build/config/rust.gni:73 +rust_toolchain_supports_nacl + Current value (from the default) = false + From //build/config/rust.gni:67 - Rust code may end up being linked into a final executable by: - * rustc (which calls lld) - * our pre-existing C++ linker invocations - At the moment, this first pipeline is incompatible with the ldflags we use - for thin LTO, due to some problem in escaping gn rules. There's a further - problem with -lunwind on Android. - However, Rust code is still useful if it's contributing to our existing - C++ linker invocations, so this doesn't disable Rust entirely. It does - disable Rust unit test executables, so we do need to fix this. - https://crbug.com/1229423 - NB this may be overridden by individual toolchains + If you're using a Rust toolchain as specified by rust_sysroot_absolute, + you can specify whether it supports nacl here. rustc_version Current value (from the default) = "" - From //build/config/rust.gni:32 + From //build/config/rust.gni:63 - The version string returned by rustc -V, if using an alternative toolchain. + If you're using a Rust toolchain as specified by rust_sysroot_absolute, + set this to the output of `rustc -V`. Changing this string will cause all + Rust targets to be rebuilt, which allows you to update your toolchain and + not break incremental builds. safe_browsing_mode Current value (from the default) = 1 @@ -3948,7 +4645,7 @@ safe_browsing_mode sample_profile_is_accurate Current value (from the default) = false - From //build/config/compiler/compiler.gni:147 + From //build/config/compiler/compiler.gni:150 Whether we should consider the profile we're using to be accurate. Accurate profiles have the benefit of (potentially substantial) binary size @@ -3957,7 +4654,7 @@ sample_profile_is_accurate sanitizer_coverage_flags Current value (from the default) = "" - From //build/config/sanitizers/sanitizers.gni:100 + From //build/config/sanitizers/sanitizers.gni:97 Value for -fsanitize-coverage flag. Setting this causes use_sanitizer_coverage to be enabled. @@ -3968,34 +4665,65 @@ sanitizer_coverage_flags Default value when unset and use_sanitizer_coverage=true: trace-pc-guard,indirect-calls +save_reproducers_on_lld_crash + Current value (from the default) = false + From //build/config/compiler/BUILD.gn:188 + + If true, linker crashes will be rerun with `--reproduce` which causes + a reproducer file to be saved. + seed_corpus_dir - Current value (from the default) = "//out/Linux/gen/components/viz/service/compositor_frame_fuzzer/binary_seed_corpus" + Current value (from the default) = "//out/test/gen/components/viz/service/compositor_frame_fuzzer/binary_seed_corpus" From //components/viz/service/compositor_frame_fuzzer/BUILD.gn:9 show_includes Current value (from the default) = false - From //build/config/compiler/BUILD.gn:177 + From //build/config/compiler/BUILD.gn:179 Enable -H, which prints the include tree during compilation. For use by tools/clang/scripts/analyze_includes.py +simple_template_names + Current value (from the default) = true + From //build/config/compiler/BUILD.gn:207 + + Use DWARF simple template names, with the following exceptions: + + * Windows is not supported as it doesn't use DWARF. + * Apple platforms (e.g. MacOS, iPhone, iPad) aren't supported because xcode + lldb doesn't have the needed changes yet. + TODO(crbug.com/1379070): Remove if the upstream default ever changes. + + This greatly reduces the size of debug builds, at the cost of + debugging information which is required by some specialized + debugging tools. + skia_enable_skshaper Current value (from the default) = true - From //third_party/skia/modules/skshaper/skshaper.gni:20 + From //third_party/skia/modules/skshaper/skshaper.gni:38 + +skia_enable_skshaper_tests + Current value (from the default) = true + From //third_party/skia/modules/skshaper/skshaper.gni:41 skia_use_dawn - Current value (from the default) = false - From //skia/features.gni:7 - - Enable experimental SkiaRenderer Dawn backend. - -skia_use_gl Current value (from the default) = true - From //skia/features.gni:8 + From //skia/features.gni:12 + + Enable experimental Skia Graphite Dawn backend. Enabled on platforms where + the team has verified that at least basic rendering to the screen is + working. + +skia_use_metal + Current value (from the default) = false + From //skia/features.gni:18 + + Enable experimental Skia Graphite Metal backend. Intended only for debugging + on non-official developer builds. skip_buildtools_check Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:312 + From //third_party/perfetto/gn/perfetto.gni:342 Skip buildtools dependency checks (needed for ChromeOS). @@ -4009,12 +4737,24 @@ strip_debug_info subpixel_font_rendering_disabled Current value (from the default) = false - From //gpu/ipc/service/BUILD.gn:13 + From //gpu/ipc/service/BUILD.gn:14 + +support_external_google_api_key + Current value (from the default) = false + From //google_apis/BUILD.gn:80 supports_llvm Current value (from the default) = true From //third_party/swiftshader/src/Reactor/reactor.gni:17 +supports_os_accessibility_service + Current value (from the default) = false + From //services/accessibility/buildflags.gni:26 + + Used to determine if the Accessibility Service should run + assistive technology features, or if the service is running + in a browser embedded in an OS that already has those features. + supports_subzero Current value (from the default) = true From //third_party/swiftshader/src/Reactor/reactor.gni:13 @@ -4037,7 +4777,7 @@ swiftshader_startup_dialog symbol_level Current value = 0 - From //out/Linux/args.gn:22 + From //out/test/args.gn:27 Overridden from the default = -1 From //build/config/compiler/compiler.gni:60 @@ -4058,17 +4798,20 @@ sync_user_agent_product sysroot Current value (from the default) = "" - From //build/config/sysroot.gni:20 + From //build/config/sysroot.gni:18 The path of the sysroot for the current toolchain. If empty, default sysroot is used. system_headers_in_deps Current value (from the default) = false - From //build/toolchain/gcc_toolchain.gni:34 + From //build/toolchain/gcc_toolchain.gni:38 Use -MD instead of -MMD for compiler commands. This is useful for tracking - the comprehensive set of dependencies. + the comprehensive set of dependencies. It's also required when building + without the sysroot so that updates to system header files trigger a + rebuild (when using the sysroot, the CR_SYSROOT_KEY define takes care of + this already). system_libdir Current value (from the default) = "lib" @@ -4084,13 +4827,9 @@ system_libdir in similar fashion by setting the `system_libdir` variable in the build's args.gn file to 'lib' or 'lib64' as appropriate for the target architecture. -system_wayland_scanner_path - Current value (from the default) = "/usr/bin/wayland-scanner" - From //third_party/wayland/features.gni:17 - target_cpu Current value = "x64" - From //out/Linux/args.gn:8 + From //out/test/args.gn:11 Overridden from the default = "" (Internally set; try `gn help target_cpu`.) @@ -4104,58 +4843,130 @@ target_environment default is only there for compatibility reasons and will be removed (see crbug.com/1138425 for more details). +target_is_ios_device + Current value (from the default) = false + From //v8/gni/v8.gni:147 + + iOS device does not support executable code pages. Not we + use target_os == "ios" here because it isn't equivalent + to is_ios (is_ios is based on host_os). + target_os Current value = "linux" - From //out/Linux/args.gn:7 + From //out/test/args.gn:10 Overridden from the default = "" (Internally set; try `gn help target_os`.) target_rpath Current value (from the default) = "" - From //build/config/chromecast_build.gni:30 + From //build/config/cast.gni:16 If non empty, rpath of executables is set to this. If empty, default value is used. target_sysroot Current value (from the default) = "" - From //build/config/sysroot.gni:13 + From //build/config/sysroot.gni:11 The path of the sysroot that is applied when compiling using the target toolchain. target_sysroot_dir Current value (from the default) = "//build/linux" - From //build/config/sysroot.gni:16 + From //build/config/sysroot.gni:14 The path to directory containing linux sysroot images. tests_have_location_tags Current value (from the default) = true - From //testing/test.gni:23 + From //testing/test.gni:21 Some component repos (e.g. ANGLE) import //testing but do not have "location_tags.json", and so we don't want to try and upload the tags for their tests. And, some build configs may simply turn off generation altogether. +thin_lto_enable_cache + Current value = false + From //out/test/args.gn:17 + Overridden from the default = true + From //build/config/compiler/BUILD.gn:139 + + Whether to enable thin lto incremental builds. + See: https://clang.llvm.org/docs/ThinLTO.html#incremental + The cache can lead to non-determinism: https://crbug.com/1486045 + thin_lto_enable_optimizations Current value = true - From //out/Linux/args.gn:66 + From //out/test/args.gn:91 Overridden from the default = true - From //build/config/compiler/BUILD.gn:129 + From //build/config/compiler/BUILD.gn:133 + +tint_build_benchmarks + Current value (from the default) = true + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:134 + +tint_build_cmds + Current value (from the default) = false + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:74 + +tint_build_glsl_validator + Current value (from the default) = true + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:114 tint_build_glsl_writer Current value (from the default) = true - From //third_party/dawn/tint_overrides_with_defaults.gni:72 + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:109 tint_build_hlsl_writer Current value (from the default) = true - From //third_party/dawn/tint_overrides_with_defaults.gni:67 + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:104 + +tint_build_ir_binary + Current value (from the default) = true + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:124 tint_build_msl_writer Current value (from the default) = true - From //third_party/dawn/tint_overrides_with_defaults.gni:62 + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:99 + +tint_build_syntax_tree_writer + Current value (from the default) = false + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:119 + +tint_build_unittests + Current value (from the default) = true + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:129 + +tint_glslang_dir + Current value (from the default) = "//third_party/vulkan-deps/glslang/src" + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:60 + +tint_src_dir + Current value (from the default) = "//third_party/dawn/src/tint" + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:141 + +toolchain_for_rust_host_build_tools + Current value (from the default) = false + From //build/toolchain/toolchain.gni:32 + + Whether this toolchain is to be used for building host tools that are + consumed during the build process. That includes proc macros and Cargo build + scripts. + +toolchain_supports_rust_thin_lto + Current value (from the default) = true + From //build/config/rust.gni:78 + + Whether artifacts produced by the Rust compiler can participate in ThinLTO. + + One important consideration is whether the linker uses the same LLVM + version as `rustc` (i.e. if it can understand the LLVM-IR from the + compilation artifacts produced by `rustc`). In LaCrOS and ash builds this + may not be true - see b/299483903. + + TODO(https://crbug.com/1482525): Re-enable ThinLTO for Rust on LaCrOS + TODO(b/300937673): Re-enable ThinLTO for Rust on ash-chrome toolkit_views Current value (from the default) = true @@ -4164,7 +4975,9 @@ toolkit_views True means the UI is built using the "views" framework. treat_warnings_as_errors - Current value (from the default) = true + Current value = false + From //out/test/args.gn:32 + Overridden from the default = true From //build/config/compiler/compiler.gni:50 Default to warnings as errors for default workflow, where we catch @@ -4172,63 +4985,50 @@ treat_warnings_as_errors builds on Linux that could use a different version of the compiler. With GCC, warnings in no-Chromium code are always not treated as errors. -trial_comparison_cert_verifier_supported - Current value (from the default) = false - From //net/features.gni:40 - - Platforms where the cert verifier comparison trial is supported. - See https://crbug.com/649026. - use_afl Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:75 + From //build/config/sanitizers/sanitizers.gni:76 Compile for fuzzing with AFL. -use_allocator - Current value (from the default) = "partition" - From //base/allocator/allocator.gni:48 - - Memory allocator to use. Set to "none" to use default allocator. - use_allocator_shim Current value (from the default) = true - From //base/allocator/allocator.gni:51 + From //base/allocator/partition_allocator/partition_alloc.gni:39 - Causes all the allocations to be routed via allocator_shim.cc. + Causes all the allocations to be routed via allocator_shim.cc. Usually, + the allocator shim will, in turn, route them to Partition Alloc, but + other allocators are also supported by the allocator shim. use_alsa Current value (from the default) = true - From //media/media_options.gni:129 + From //media/media_options.gni:201 use_amdgpu_minigbm Current value (from the default) = false From //third_party/minigbm/BUILD.gn:17 use_android_unwinder_v2 - Current value (from the default) = false - From //build/config/compiler/compiler.gni:33 + Current value (from the default) = true + From //build/config/compiler/compiler.gni:144 Set to true to use the android unwinder V2 implementation. -use_android_user_agent - Current value (from the default) = false - From //chromecast/chromecast.gni:91 - - Include 'Android' in user agent string to avoid being served desktop - versions of websites. - TODO(halliwell): consider making this default for all Cast hardware. - use_arc_protected_media Current value (from the default) = false - From //media/gpu/args.gni:44 + From //media/gpu/args.gni:34 Indicates if the ChromeOS protected media functionality should also be utilized by HW video decoding for ARC. use_asan_backup_ref_ptr Current value (from the default) = false - From //base/allocator/allocator.gni:115 + From //base/allocator/partition_allocator/partition_alloc.gni:163 + +use_asan_unowned_ptr + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:167 + + Use probe-on-destruct unowned ptr detection with ASAN. use_aura Current value (from the default) = true @@ -4237,22 +5037,25 @@ use_aura Indicates if Aura is enabled. Aura is a low-level windowing library, sort of a replacement for GDI or GTK. -use_backup_ref_ptr - Current value (from the default) = false - From //base/allocator/allocator.gni:89 +use_av1_hw_decoder + Current value (from the default) = true + From //media/gpu/args.gni:42 - Set use_backup_ref_ptr true to use BackupRefPtr (BRP) as the implementation - of raw_ptr, and enable PartitionAlloc support for it. + A platform that is capable of hardware av1 decoding. use_base_test_suite Current value (from the default) = true - From //sandbox/linux/BUILD.gn:20 + From //sandbox/linux/BUILD.gn:22 On Android, use plain GTest. +use_blink + Current value (from the default) = true + From //build/config/features.gni:41 + use_blink_extensions_chromeos Current value (from the default) = false - From //third_party/blink/renderer/config.gni:49 + From //third_party/blink/renderer/config.gni:46 If true, the experimental renderer extensions library will be used. @@ -4270,9 +5073,16 @@ use_bundled_weston Checks if Weston must be compiled +use_centipede + Current value (from the default) = false + From //build/config/sanitizers/sanitizers.gni:73 + + Compile for fuzzing with centipede. + See https://github.com/google/centipede + use_cfi_cast Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:115 + From //build/config/sanitizers/sanitizers.gni:122 Enable checks for bad casts: derived cast and unrelated cast. TODO(krasin): remove this, when we're ready to add these checks by default. @@ -4280,28 +5090,24 @@ use_cfi_cast use_cfi_diag Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:64 + From //build/config/sanitizers/sanitizers.gni:61 Print detailed diagnostics when Control Flow Integrity detects a violation. use_cfi_icall Current value (from the default) = true - From //build/config/sanitizers/sanitizers.gni:61 + From //build/config/sanitizers/sanitizers.gni:58 use_cfi_recover Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:68 + From //build/config/sanitizers/sanitizers.gni:65 Let Control Flow Integrity continue execution instead of crashing when printing diagnostics (use_cfi_diag = true). -use_chromecast_cdms - Current value (from the default) = true - From //chromecast/chromecast.gni:197 - use_chromeos_protected_av1 Current value (from the default) = false - From //media/gpu/args.gni:49 + From //media/gpu/args.gni:39 Indicates if ChromeOS protected media supports the AV1 codec. By default H.264, VP9 and HEVC are enabled if protected media is enabled; AV1 is @@ -4309,28 +5115,12 @@ use_chromeos_protected_av1 use_chromeos_protected_media Current value (from the default) = false - From //media/gpu/args.gni:40 + From //media/gpu/args.gni:30 Indicates if ChromeOS protected media support exists. This is used to enable the CDM daemon in Chrome OS as well as support for - encrypted content with HW video decoders. - TODO(jkardatzke): Enable this for Lacros always, it is determined at runtime - in that configuration. - -use_chromium_rust_toolchain - Current value (from the default) = true - From //build/config/rust.gni:29 - - Use experimental Rust toolchain built in-tree. See //tools/rust. For now, - only use it for linux targets. The package only has prebuilt libs for linux. - More targets will be added later. - - Ideally this should check `current_os` so that e.g. Android builds will use - the Android toolchain for target artifacts and the Chromium Rust toolchain - for host artifacts. Currently there is an std mixup in //build/rust/std that - prevents this. - - TODO(https://crbug.com/1245714): fix std handling and check `current_os`. + encrypted content with HW video decoders. This is always enabled for Lacros + because it detects support at runtime. use_clang_coverage Current value (from the default) = false @@ -4342,31 +5132,31 @@ use_clang_profiling use_clang_profiling_inside_sandbox Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:180 + From //build/config/sanitizers/sanitizers.gni:229 use_command_buffer Current value (from the default) = false - From //device/vr/buildflags/buildflags.gni:14 + From //device/vr/buildflags/buildflags.gni:23 use_cras Current value (from the default) = false - From //media/media_options.gni:44 + From //media/media_options.gni:67 Override to dynamically link the cras (ChromeOS audio) library. use_crash_key_stubs Current value (from the default) = false - From //components/crash/core/common/BUILD.gn:11 + From //components/crash/core/common/BUILD.gn:12 If set to true, this will stub out and disable the entire crash key system. use_cups Current value (from the default) = true - From //printing/buildflags/buildflags.gni:27 + From //printing/buildflags/buildflags.gni:40 use_cups_ipp Current value (from the default) = false - From //printing/buildflags/buildflags.gni:51 + From //printing/buildflags/buildflags.gni:74 Enables the CUPS IPP printing backend. TODO(crbug.com/226176): Remove this after CUPS PPD API calls are removed. @@ -4375,9 +5165,15 @@ use_custom_libcxx Current value (from the default) = true From //build/config/c++/c++.gni:15 + Use in-tree libc++ (buildtools/third_party/libc++ and + buildtools/third_party/libc++abi) instead of the system C++ library for C++ + standard library support. + Don't check in changes that set this to false for more platforms; doing so + is not supported. + use_custom_libcxx_for_host Current value (from the default) = false - From //build/config/c++/c++.gni:25 + From //build/config/c++/c++.gni:24 Use libc++ instead of stdlibc++ when using the host_cpu toolchain, even if use_custom_libcxx is false. This is useful for cross-compiles where a custom @@ -4386,22 +5182,30 @@ use_custom_libcxx_for_host expected usage is to set use_custom_libcxx=false and use_custom_libcxx_for_host=true in the passed in buildargs. -use_cxx11 +use_custom_libunwind Current value (from the default) = false - From //build/config/compiler/BUILD.gn:89 + From //build/config/unwind.gni:6 - Allow projects that wish to stay on C++11 to override Chromium's default. + Use in-tree libunwind (buildtools/third_party/libunwind) instead of whatever + system library provides unwind symbols (e.g. libgcc). + +use_cxx17 + Current value (from the default) = false + From //build_overrides/build.gni:58 + + Allow projects that wish to stay on C++17 to override Chromium's default. + TODO(crbug.com/1402249): evaluate removing this end of 2023 use_dawn Current value (from the default) = true From //ui/gl/features.gni:21 Should Dawn support be compiled to back the WebGPU implementation? - Also controls linking Dawn depedencies in such as SPIRV-Tools/SPIRV-Cross. + Also controls linking Dawn dependencies in such as SPIRV-Tools/SPIRV-Cross. use_dbus Current value (from the default) = true - From //build/config/features.gni:31 + From //build/config/features.gni:37 use_debug_fission Current value (from the default) = "default" @@ -4424,7 +5228,7 @@ use_dummy_lastchange use_dwarf5 Current value (from the default) = false - From //build/config/compiler/BUILD.gn:165 + From //build/config/compiler/BUILD.gn:167 Enable DWARF v5. @@ -4440,13 +5244,13 @@ use_evdev_gestures use_external_fuzzing_engine Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:78 + From //build/config/sanitizers/sanitizers.gni:79 Compile for fuzzing with an external engine (e.g., Grammarinator). use_external_popup_menu Current value (from the default) = false - From //content/common/features.gni:9 + From //content/common/features.gni:11 Whether or not to use external popup menu. @@ -4454,17 +5258,13 @@ use_exynos_minigbm Current value (from the default) = false From //third_party/minigbm/BUILD.gn:18 -use_fake_binary_experiment +use_freeslot_bitmap Current value (from the default) = false - From //base/allocator/allocator.gni:113 - - Registers the binary for a fake binary A/B experiment. The binaries built - with this flag have no behavior difference, except for setting a synthetic - Finch. + From //base/allocator/partition_allocator/partition_alloc.gni:103 use_full_pdb_paths Current value (from the default) = false - From //build/config/compiler/BUILD.gn:173 + From //build/config/compiler/BUILD.gn:175 Override this to put full paths to PDBs in Windows PE files. This helps windbg and Windows Performance Analyzer with finding the PDBs in some local- @@ -4482,41 +5282,34 @@ use_gcm_from_platform use_ghash Current value (from the default) = true - From //build/config/compiler/BUILD.gn:119 + From //build/config/compiler/BUILD.gn:123 Turn this on to use ghash feature of lld for faster debug link on Windows. http://blog.llvm.org/2018/01/improving-link-time-on-windows-with.html use_gio Current value (from the default) = true - From //build/config/features.gni:33 + From //build/config/features.gni:39 use_glib Current value (from the default) = true From //build/config/ui.gni:36 -use_gnome_keyring - Current value (from the default) = true - From //components/os_crypt/features.gni:11 - - Whether to use libgnome-keyring (deprecated by libsecret). - See http://crbug.com/466975 and http://crbug.com/355223. - use_gold Current value (from the default) = false - From //build/config/compiler/compiler.gni:221 + From //build/config/compiler/compiler.gni:245 Whether to use the gold linker from binutils instead of lld or bfd. use_goma Current value (from the default) = false - From //build/toolchain/goma.gni:9 + From //build/toolchain/goma.gni:11 Set to true to enable distributed compilation using Goma. use_goma_rust Current value (from the default) = false - From //build/config/rust.gni:60 + From //build/config/rust.gni:95 Use goma for Rust builds. Experimental. The only known problem is b/193072381, but then again, we don't expect a build speedup before much @@ -4524,7 +5317,7 @@ use_goma_rust use_goma_thin_lto Current value (from the default) = false - From //build/config/compiler/compiler.gni:95 + From //build/config/compiler/compiler.gni:99 If true, use Goma for ThinLTO code generation where applicable. @@ -4534,9 +5327,17 @@ use_gtk Whether or not we should use libgtk. -use_icf +use_hashed_jni_names Current value (from the default) = true - From //build/config/compiler/BUILD.gn:190 + From //third_party/jni_zero/jni_zero.gni:15 + + Use hashed symbol names to reduce JNI symbol overhead. + +use_icf + Current value = true + From //out/test/args.gn:35 + Overridden from the default = true + From //build/config/compiler/BUILD.gn:220 Set to true to use icf, Identical Code Folding. @@ -4554,7 +5355,7 @@ use_intel_minigbm use_internal_autofill_patterns Current value (from the default) = false - From //components/autofill/core/browser/BUILD.gn:30 + From //components/autofill/core/browser/BUILD.gn:32 Normally, only branded builds use Google-internal sets of parsing patterns. @@ -4563,10 +5364,10 @@ use_internal_autofill_patterns use_internal_isolated_origins Current value (from the default) = false - From //components/site_isolation/BUILD.gn:18 + From //components/site_isolation/BUILD.gn:21 - Normally, only Google Chrome Android and Fuchsia WebEngine builds will use - a Google-internal list of isolated origins defined below. + Normally, only Google Chrome Android and some Fuchsia WebEngine builds will + use a Google-internal list of isolated origins defined below. If other Fuchsia embedders are added, the associated logic may need to be updated. See crbug.com/1179087. @@ -4581,15 +5382,19 @@ use_jacoco_coverage Enables JaCoCo Java code coverage. -use_java_goma +use_jank_tracker_for_experiments Current value (from the default) = false - From //build/toolchain/goma.gni:26 + From //ui/latency/BUILD.gn:9 - TODO(crbug.com/726475): true if use_goma = true in the future. +use_javascript_coverage + Current value (from the default) = false + From //build/config/coverage/coverage.gni:39 + + Enables TypeScript/JavaScript code coverage. use_kerberos Current value (from the default) = true - From //net/features.gni:19 + From //net/features.gni:21 Enable Kerberos authentication. It is disabled by default on iOS, Fuchsia and Chromecast, at least for now. This feature needs configuration @@ -4598,21 +5403,21 @@ use_kerberos use_layout_plugin Current value (from the default) = true - From //third_party/blink/renderer/core/BUILD.gn:86 + From //third_party/blink/renderer/core/BUILD.gn:100 Set to true to enable the clang layout plugin that help you to follow the layout-related restrictions during compilation. use_libfuzzer Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:72 + From //build/config/sanitizers/sanitizers.gni:69 Compile for fuzzing with LLVM LibFuzzer. See http://www.chromium.org/developers/testing/libfuzzer use_libgav1_parser Current value (from the default) = true - From //third_party/libgav1/options.gni:14 + From //third_party/libgav1/options.gni:9 use_libinput Current value (from the default) = false @@ -4629,25 +5434,24 @@ use_libjpeg_turbo use_libpci Current value (from the default) = true - From //third_party/angle/BUILD.gn:28 + From //third_party/angle/BUILD.gn:31 Use the PCI lib to collect GPU information on Linux. use_lld Current value = true - From //out/Linux/args.gn:26 + From //out/test/args.gn:34 Overridden from the default = true - From //build/config/compiler/compiler.gni:42 + From //build/config/compiler/compiler.gni:38 Set to true to use lld, the LLVM linker. In late bring-up on macOS (see docs/mac_lld.md). - Tentatively used on iOS, except in cronet builds (cronet still supports - 32-bit builds, which lld doesn't support). + Tentatively used on iOS. The default linker everywhere else. use_locally_built_instrumented_libraries Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:47 + From //build/config/sanitizers/sanitizers.gni:44 Use dynamic libraries instrumented by one of the sanitizers instead of the standard system libraries. Set this flag to build the libraries from source. @@ -4658,16 +5462,6 @@ use_low_quality_image_interpolation If true, defaults image interpolation to low quality. -use_lto_in_rustc_linking - Current value (from the default) = false - From //build/config/rust.gni:55 - - Use LTO when using rustc to link binaries. Experimental. Currently incompatible - with the options we use in our C++ toolchain to split LTO units. - This has no effect on the production of normal Chrome binaries, which are - linked by clang/lld rather than rustc. - https://crbug.com/1229419 - use_marvell_minigbm Current value (from the default) = false From //third_party/minigbm/BUILD.gn:20 @@ -4688,6 +5482,14 @@ use_message_port_core cast_message_port::CreateMessagePortPair as its implementation. Otherwise, uses one of the other types based on platform. +use_ml_inliner + Current value (from the default) = false + From //build/config/compiler/compiler.gni:140 + + Set to true to enable using the ML inliner in LLVM. This currently only + enables the ML inliner when targeting Android. + Currently the ML inliner is only supported on linux hosts + use_mpris Current value (from the default) = true From //components/system_media_controls/linux/buildflags/buildflags.gni:11 @@ -4699,10 +5501,6 @@ use_msm_minigbm Current value (from the default) = false From //third_party/minigbm/BUILD.gn:23 -use_mte_checked_ptr - Current value (from the default) = false - From //base/allocator/allocator.gni:91 - use_nss_certs Current value (from the default) = true From //crypto/features.gni:9 @@ -4711,7 +5509,7 @@ use_nss_certs use_official_enterprise_connectors_api_keys Current value (from the default) = false - From //chrome/browser/BUILD.gn:66 + From //chrome/browser/BUILD.gn:71 You can set the variable 'use_official_enterprise_connectors_api_keys' to true to use the Google-internal file containing official API keys @@ -4725,33 +5523,30 @@ use_official_enterprise_connectors_api_keys use_official_google_api_keys Current value (from the default) = "" - From //google_apis/BUILD.gn:33 + From //google_apis/BUILD.gn:29 - You can set the variable 'use_official_google_api_keys' to true + Set the variable 'use_official_google_api_keys' to true to use the Google-internal file containing official API keys - for Google Chrome even in a developer build. Setting this - variable explicitly to true will cause your build to fail if the - internal file is missing. + even in a developer build. Setting this variable explicitly to + true will cause the build to fail if the internal file is missing. - The variable is documented here, but not handled in this file; - see //google_apis/determine_use_official_keys.gypi for the - implementation. + Set the variable to false to not use the internal file, even for + Chrome-branded builds or when it exists in your checkout. - Set the variable to false to not use the internal file, even when - it exists in your checkout. - - Leave it unset or set to "" to have the variable - implicitly set to true if you have - src/google_apis/internal/google_chrome_api_keys.h in your - checkout, and implicitly set to false if not. - - Note that official builds always behave as if the variable - was explicitly set to true, i.e. they always use official keys, - and will fail to build if the internal file is missing. + Leave it set to "" to have the variable implicitly set to true for + Chrome-branded builds or if + //src/google_apis/internal/google_chrome_api_keys.h is present and false + otherwise. + This does not apply to iOS builds, which use different mechanisms and always + evaluate to use_official_google_api_keys=false. + See https://crbug.com/1183709. use_ozone Current value (from the default) = true - From //build/config/ozone.gni:13 + From //build/config/ozone.gni:12 + + Indicates if Ozone is enabled. Ozone is a low-level library layer for Linux + that does not require X11. use_pangocairo Current value (from the default) = true @@ -4759,25 +5554,43 @@ use_pangocairo use_partition_alloc Current value (from the default) = true - From //base/allocator/allocator.gni:61 + From //base/allocator/partition_allocator/partition_alloc.gni:58 Whether PartitionAlloc should be available for use or not. true makes PartitionAlloc linked to the executable or shared library and makes it available for use. It doesn't mean that the default allocator - is PartitionAlloc, which is governed by |use_allocator|. + is PartitionAlloc, which is governed by |use_partition_alloc_as_malloc|. - This flag is currently set to false only on Cronet bots, because Cronet - doesn't use PartitionAlloc at all, and doesn't wish to incur the library - size increase (crbug.com/674570). + N.B. generally, embedders should look at this GN arg and at the + corresponding buildflag to determine whether to interact with PA + source at all (pulling the component in via GN, including headers, + etc.). There is nothing stopping a lazy embedder from ignoring this + and unconditionally using PA, but such a setup is inadvisable. + + In Chromium, this is set true, except: + + 1. On Cronet bots, because Cronet doesn't use PartitionAlloc at all, + and doesn't wish to incur the library size increase (crbug.com/674570). + 2. On NaCl (through this declaration), where PartitionAlloc doesn't + build at all. + +use_partition_alloc_as_malloc + Current value (from the default) = true + From //base/allocator/partition_allocator/partition_alloc.gni:85 + + PartitionAlloc-Everywhere (PA-E). Causes allocator_shim.cc to route + calls to PartitionAlloc, rather than some other platform allocator. use_perfetto_client_library - Current value (from the default) = false - From //build_overrides/build.gni:28 + Current value (from the default) = true + From //build_overrides/build.gni:42 - Switches the TRACE_EVENT instrumentation from base's TraceLog implementation - to //third_party/perfetto's client library. Not implemented yet, currently a - no-op to set up trybot infrastructure. - TODO(crbug/1006769): Switch to perfetto's client library. +use_perfetto_trace_processor + Current value (from the default) = true + From //build_overrides/build.gni:65 + + Use Perfetto's trace processor for converting protobuf-encoded traces to + the legacy JSON format in base::TraceLog. use_platform_icu_alternatives Current value (from the default) = false @@ -4786,81 +5599,74 @@ use_platform_icu_alternatives Enables the use of ICU alternatives in lieu of ICU for the target toolchain. The flag is used for Cronet to reduce the size of the Cronet binary. +use_profi + Current value (from the default) = false + From //build/config/compiler/BUILD.gn:184 + + Enable Profi algorithm. Profi can infer block and edge counts. + https://clang.llvm.org/docs/UsersManual.html#using-sampling-profilers + TODO(crbug.com/1375958i:) Possibly enable this for Android too. + use_pulseaudio Current value (from the default) = true - From //media/media_options.gni:140 + From //media/media_options.gni:212 use_qt - Current value (from the default) = false - From //ui/qt/qt.gni:7 + Current value (from the default) = true + From //ui/qt/qt.gni:12 - https://crbug.com/1317782 enable QT UI by default on Linux. + TODO(https://crbug.com/1424435): Allow QT in MSAN builds once QT is + added to the instrumented libraries. + +use_qt6 + Current value (from the default) = true + From //ui/qt/qt.gni:22 use_radeon_minigbm Current value (from the default) = false From //third_party/minigbm/BUILD.gn:24 -use_rbe - Current value (from the default) = false - From //build/toolchain/rbe.gni:17 - - Set to true to enable remote compilation using reclient (deprecated). - use_real_dbus_clients Current value (from the default) = false From //chromeos/dbus/config/use_real_dbus_clients.gni:9 Instantiate real D-Bus clients instead of fakes. +use_relative_vtables_abi + Current value (from the default) = false + From //build/config/compiler/compiler.gni:155 + + Use offsets rather than pointers in vtables in order to reduce the number of + relocations. This is safe to enable only when all C++ code is built with the + flag set to the same value. + use_remoteexec Current value (from the default) = false From //build/toolchain/rbe.gni:14 Set to true to enable remote compilation using reclient. +use_remoteexec_links + Current value (from the default) = false + From //build/toolchain/rbe.gni:17 + + Set to true to enable remote linking using reclient. + use_rockchip_minigbm Current value (from the default) = false From //third_party/minigbm/BUILD.gn:25 -use_rts - Current value (from the default) = false - From //build/config/rts.gni:4 - - For more info about RTS, please see - //docs/testing/regression-test-selection.md - use_rtti Current value (from the default) = false - From //build/config/compiler/BUILD.gn:80 + From //build/config/compiler/BUILD.gn:82 Build with C++ RTTI enabled. Chromium builds without RTTI by default, but some sanitizers are known to require it, like CFI diagnostics and UBsan variants. -use_runtime_vlog - Current value (from the default) = true - From //build/config/logging.gni:31 - - Use runtime vlog everywhere except for ash-chrome. - When `use_runtime_vlog` is true, - command line switch `--vmodule=xxx` or `--v=x` could be used to - control vlog level at runtime. - when `use_runtime_volog` is false, - verbose log level is controlled by `ENABLE_VLOG_LEVEL` macro. VLOG(n) - is kept and generate output if `n` is less than or equal to the vlog - level defined by the macro. - Command line switch `--vmodule=xxx`, or `--v=x` would have no effect. - - Runtime vlog is used everywhere except on ash-chrome. - Ash-chrome has a few vmodule patterns that need to be used indefinitely - to investigate problems from logs in feedback reports. These vmodule - patterns are using too much cpu cycles (see http://crbug/489441). Turning - off runtime vlog and using build time vlog would avoid paying that cpu tax - and have a nice side effect of a smaller production binary. - use_sanitizer_configs_without_instrumentation Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:105 + From //build/config/sanitizers/sanitizers.gni:102 When enabled, only relevant sanitizer defines are set, but compilation happens with no extra flags. This is useful when in component build @@ -4868,7 +5674,14 @@ use_sanitizer_configs_without_instrumentation use_sanitizer_coverage Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:169 + From //build/config/sanitizers/sanitizers.gni:218 + +use_siso + Current value (from the default) = false + From //build/toolchain/siso.gni:6 + + Placeholder to allow having use_siso in args.gn files and to disable + precompiled headers in siso builds. use_static_angle Current value (from the default) = false @@ -4889,17 +5702,7 @@ use_synaptics_minigbm use_sysroot Current value (from the default) = true - From //build/config/sysroot.gni:24 - - Controls default is_linux sysroot. If set to true, and sysroot - is empty, default sysroot is calculated. - -use_system_crash_handler - Current value (from the default) = false - From //chromecast/chromecast.gni:138 - - Set to true to forward crashes to the system's crash handler instead of - handling them internally. This disables the built-in crash handler. + From //build/config/sysroot.gni:23 use_system_freetype Current value (from the default) = false @@ -4925,7 +5728,7 @@ use_system_harfbuzz use_system_lcms2 Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:60 + From //third_party/pdfium/pdfium.gni:69 Don't build against bundled lcms2. @@ -4937,6 +5740,16 @@ use_system_libdrm with the system. In release builds of desktop Linux and Chrome OS we use the system version. Some Chromecast devices use this as well. +use_system_libffi + Current value (from the default) = false + From //build/config/linux/libffi/BUILD.gn:13 + + Controls whether the build should use the version of libffi library shipped + with the system. By default, we only use the system version on Chrome OS: + on Linux, libffi must be statically linked to prevent a situation where the + runtime version of libffi is different from the build-time version from the + sysroot. + use_system_libjpeg Current value (from the default) = false From //third_party/libjpeg.gni:7 @@ -4945,13 +5758,13 @@ use_system_libjpeg use_system_libopenjpeg2 Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:63 + From //third_party/pdfium/pdfium.gni:72 Don't build against bundled libopenjpeg2. use_system_libpng Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:66 + From //third_party/pdfium/pdfium.gni:75 Don't build against bundled libpng. @@ -4964,12 +5777,11 @@ use_system_libsync use the system version, but when building on dev workstations we bundle it because Ubuntu doesn't ship a usable version. -use_system_libwayland - Current value (from the default) = true - From //third_party/wayland/features.gni:12 +use_system_libtiff + Current value (from the default) = false + From //third_party/pdfium/pdfium.gni:78 - Controls whether the build should use the version of Wayland - library shipped with the system or Chromium third_party. + Don't build against bundled libtiff. use_system_minigbm Current value (from the default) = true @@ -4979,16 +5791,9 @@ use_system_minigbm with the system. In release builds of desktop Linux and Chrome OS we use the system version. -use_system_wayland_scanner - Current value (from the default) = false - From //third_party/wayland/features.gni:21 - - This may be set by Chromium packagers who do not wish to use the bundled - wayland scanner. - use_system_zlib Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:57 + From //third_party/pdfium/pdfium.gni:81 Don't build against bundled zlib. @@ -4997,105 +5802,87 @@ use_tegra_minigbm From //third_party/minigbm/BUILD.gn:27 use_text_section_splitting - Current value (from the default) = false - From //build/config/compiler/BUILD.gn:149 + Current value = true + From //out/test/args.gn:89 + Overridden from the default = false + From //build/config/compiler/BUILD.gn:164 This argument is to control whether enabling text section splitting in the final binary. When enabled, the separated text sections with prefix '.text.hot', '.text.unlikely', '.text.startup' and '.text.exit' will not be merged to '.text' section. This allows us to identify the hot code section - ('.text.hot') in the binary which may be mlocked or mapped to huge page to - reduce TLB misses which gives performance improvement on cpu usage. - The gold linker by default has text section splitting enabled. + ('.text.hot') in the binary, which allows our data collection pipelines to + more easily identify code that we assume to be hot/cold that doesn't turn + out to be such in the field. use_thin_lto Current value = true - From //out/Linux/args.gn:65 + From //out/test/args.gn:90 Overridden from the default = true - From //build/config/compiler/compiler.gni:89 + From //build/config/compiler/compiler.gni:92 + +use_typeface_fontations + Current value (from the default) = true + From //build/config/rust.gni:127 + + Enable experimental Fontations Rust font stack. use_udev Current value (from the default) = true - From //build/config/features.gni:29 + From //build/config/features.gni:35 libudev usage. This currently only affects the content layer. -use_unix_sockets - Current value (from the default) = true - From //chromecast/chromecast.gni:125 - - Whether use unix sockets in Cast input/output stream. - use_unofficial_version_number Current value (from the default) = true - From //components/version_info/BUILD.gn:10 + From //base/version_info/use_unofficial_version_number.gni:8 use_v4l2_codec Current value (from the default) = false - From //media/gpu/args.gni:22 - - Indicates if Video4Linux2 codec is used. This is used for all CrOS - platforms which have v4l2 hardware encoder / decoder. - -use_v4l2_codec_aml - Current value (from the default) = false - From //media/gpu/args.gni:26 - - Indicates if Video4Linux2 AML encoder is used. This is used for AML - platforms which have v4l2 hardware encoder + From //media/gpu/args.gni:15 use_v4lplugin Current value (from the default) = false - From //media/gpu/args.gni:18 + From //media/gpu/args.gni:10 Indicates if V4L plugin is used. use_v8_context_snapshot Current value = true - From //out/Linux/args.gn:28 + From //out/test/args.gn:43 Overridden from the default = true From //tools/v8_context_snapshot/v8_context_snapshot.gni:19 use_vaapi Current value = true - From //out/Linux/args.gn:46 + From //out/test/args.gn:63 Overridden from the default = true - From //media/gpu/args.gni:32 + From //media/gpu/args.gni:21 Indicates if VA-API-based hardware acceleration is to be used. This is typically the case on x86-based ChromeOS devices. - VA-API should also be compiled by default on x11-using linux devices + VA-API should also be compiled by default on x11/wayland linux devices using x86/x64. use_vaapi_image_codecs Current value (from the default) = false - From //media/gpu/args.gni:69 + From //media/gpu/args.gni:62 VA-API also allows decoding of images, but we don't want to use this outside of chromeos, even if video decoding is enabled. -use_vaapi_x11 - Current value (from the default) = true - From //media/gpu/args.gni:12 - use_vc4_minigbm Current value (from the default) = false From //third_party/minigbm/BUILD.gn:28 use_viz_debugger Current value (from the default) = false - From //components/viz/common/debugger/viz_debugger.gni:8 + From //components/viz/common/debugger/viz_debugger.gni:10 Indicates if the Viz Debugger is enabled. This is disabled by default on - official builds due to security and performance reasons. - -use_vr_assets_component - Current value = true - From //out/Linux/args.gn:47 - Overridden from the default = false - From //chrome/browser/vr/features.gni:12 - - Whether to register, download, etc. the VR assets component. + official builds due to security and performance reasons. test + crbug/1466891 Fuchia threading model does not play well with the + visual debugger multithreaded submission mechanism. use_wayland_gbm Current value (from the default) = true @@ -5104,17 +5891,9 @@ use_wayland_gbm Checks if Wayland must be compiled with dmabuf/gbm feature, which allows a multi-process hardware accelerated mode. -use_webaudio_ffmpeg - Current value = false - From //out/Linux/args.gn:42 - Overridden from the default = false - From //third_party/blink/renderer/config.gni:46 - - If true, ffmpeg will be used for computing FFTs for WebAudio - use_webaudio_pffft Current value = true - From //out/Linux/args.gn:43 + From //out/test/args.gn:60 Overridden from the default = true From //third_party/blink/renderer/config.gni:20 @@ -5131,7 +5910,7 @@ use_xkbcommon using_mismatched_sample_profile Current value (from the default) = false - From //build/config/compiler/compiler.gni:102 + From //build/config/compiler/compiler.gni:106 Whether we're using a sample profile collected on an architecture different than the one we're compiling for. @@ -5141,60 +5920,60 @@ using_mismatched_sample_profile v8_advanced_bigint_algorithms Current value (from the default) = true - From //v8/gni/v8.gni:96 + From //v8/gni/v8.gni:139 Enable advanced BigInt algorithms, costing about 10-30 KB binary size depending on platform. Disabled on Android to save binary size. v8_allocation_site_tracking Current value (from the default) = true - From //v8/BUILD.gn:355 + From //v8/BUILD.gn:382 Enable global allocation site tracking. v8_android_log_stdout Current value (from the default) = false - From //v8/BUILD.gn:31 + From //v8/BUILD.gn:29 Print to stdout on Android. v8_annotate_torque_ir Current value (from the default) = false - From //v8/BUILD.gn:277 + From //v8/BUILD.gn:307 Generate comments describing the Torque intermediate representation. v8_builtins_profiling_log_file - Current value (from the default) = "" - From //v8/BUILD.gn:190 + Current value (from the default) = "default" + From //v8/BUILD.gn:218 Provides the given V8 log file as an input to mksnapshot, where it can be used for profile-guided optimization of builtins. To do profile-guided optimizations of builtins: 1. Build with v8_enable_builtins_profiling = true - 2. Run your chosen workload with the --turbo-profiling-log-builtins flag. + 2. Run your chosen workload with the --turbo-profiling-output flag. For Chrome, the invocation might look like this: chrome --no-sandbox --disable-extensions - --js-flags="--turbo-profiling-log-builtins --logfile=path/to/v8.log" + --js-flags="--turbo-profiling-output=v8.builtins.pgo" "http://localhost/test-suite" - 3. Run tools/get_hints.py to produce the branch hints, selecting min_count - and threshold_ratio as you wish. + 3. Run tools/builtins-pgo/get_hints.py to produce the branch hints, + selecting min_count and threshold_ratio as you wish. 4. Optionally repeat steps 2-3 for additional workloads, and use - tools/combine_hints.py to combine the hints produced in step 3 into a - single file. + tools/builtins-pgo/combine_hints.py to combine the hints produced in + step 3 into a single file. 5. Build again with v8_builtins_profiling_log_file set to the file created in step 3 or 4. v8_can_use_fpu_instructions Current value (from the default) = true - From //v8/BUILD.gn:223 + From //v8/BUILD.gn:247 Similar to vfp but on MIPS. v8_check_header_includes Current value (from the default) = false - From //v8/BUILD.gn:238 + From //v8/BUILD.gn:262 Check that each header can be included in isolation (requires also setting the "check_v8_header_includes" gclient variable to run a @@ -5202,58 +5981,48 @@ v8_check_header_includes v8_code_comments Current value (from the default) = "" - From //v8/BUILD.gn:107 + From //v8/BUILD.gn:119 Allow runtime-enabled code comments (with --code-comments). Enabled by default in debug builds. Sets -dV8_CODE_COMMENTS -v8_code_coverage - Current value (from the default) = false - From //v8/gni/v8.gni:14 - - Set flags for tracking code coverage. Uses gcov with gcc and sanitizer - coverage with clang. - v8_context_snapshot_filename Current value (from the default) = "v8_context_snapshot.bin" - From //tools/v8_context_snapshot/v8_context_snapshot.gni:44 + From //tools/v8_context_snapshot/v8_context_snapshot.gni:43 v8_control_flow_integrity Current value (from the default) = false - From //v8/BUILD.gn:286 - - Enable control-flow integrity features, such as pointer authentication for - ARM64. + From //v8/BUILD.gn:318 v8_correctness_fuzzer Current value (from the default) = false - From //v8/gni/v8.gni:17 + From //v8/gni/v8.gni:16 Includes files needed for correctness fuzzing. v8_current_cpu Current value (from the default) = "x64" - From //build/config/v8_target_cpu.gni:60 + From //build/config/v8_target_cpu.gni:63 This argument is declared here so that it can be overridden in toolchains. It should never be explicitly set by the user. v8_custom_deps Current value (from the default) = "" - From //v8/BUILD.gn:34 + From //v8/BUILD.gn:32 Dynamically set an additional dependency from v8/custom_deps. v8_deprecation_warnings Current value (from the default) = true - From //v8/BUILD.gn:56 + From //v8/BUILD.gn:57 Enable compiler warnings when using V8_DEPRECATED apis. v8_dict_property_const_tracking Current value (from the default) = false - From //v8/BUILD.gn:339 + From //v8/BUILD.gn:361 Experimental feature for tracking constness of properties in non-global dictionaries. Enabling this also always keeps prototypes in dict mode, @@ -5262,50 +6031,64 @@ v8_dict_property_const_tracking v8_disable_write_barriers Current value (from the default) = false - From //v8/BUILD.gn:258 + From //v8/BUILD.gn:282 Disable write barriers when GCs are non-incremental and heap has single generation. v8_embed_script Current value (from the default) = "" - From //v8/BUILD.gn:62 + From //v8/BUILD.gn:63 Embeds the given script into the snapshot. v8_embedder_string Current value (from the default) = "" - From //v8/BUILD.gn:65 + From //v8/BUILD.gn:66 Allows the embedder to add a custom suffix to the version string. v8_enable_31bit_smis_on_64bit_arch Current value (from the default) = false - From //v8/BUILD.gn:126 + From //v8/BUILD.gn:145 v8_enable_allocation_folding Current value (from the default) = true - From //v8/BUILD.gn:349 + From //v8/BUILD.gn:376 Enable allocation folding globally (sets -dV8_ALLOCATION_FOLDING). When it's disabled, the --turbo-allocation-folding runtime flag will be ignored. v8_enable_atomic_object_field_writes Current value (from the default) = "" - From //v8/BUILD.gn:147 + From //v8/BUILD.gn:166 Sets -dV8_ATOMIC_OBJECT_FIELD_WRITES and turns all field write operations into relaxed atomic operations. v8_enable_backtrace Current value (from the default) = "" - From //v8/gni/v8.gni:33 + From //v8/gni/v8.gni:32 Support for backtrace_symbols on linux. +v8_enable_builtin_jump_table_switch + Current value (from the default) = true + From //v8/BUILD.gn:422 + + Enable jump table switch for built-in. + +v8_enable_builtins_optimization + Current value = true + From //out/test/args.gn:39 + Overridden from the default = "" + From //v8/gni/v8.gni:39 + + Includes profiles to optimize builtins. + v8_enable_builtins_profiling Current value (from the default) = false - From //v8/BUILD.gn:165 + From //v8/BUILD.gn:184 Runs mksnapshot with --turbo-profiling. After building in this configuration, any subsequent run of d8 will output information about usage @@ -5313,36 +6096,57 @@ v8_enable_builtins_profiling v8_enable_builtins_profiling_verbose Current value (from the default) = false - From //v8/BUILD.gn:171 + From //v8/BUILD.gn:190 Runs mksnapshot with --turbo-profiling-verbose. After building in this configuration, any subsequent run of d8 will output information about usage of basic blocks in builtins, including the schedule and disassembly of all used builtins. +v8_enable_builtins_reordering + Current value (from the default) = true + From //v8/BUILD.gn:199 + + This build flag is used to control whether reorder builtins acoording to + the call graph with C3 algorithm based builtin PGO profiling. + +v8_enable_cet_ibt + Current value (from the default) = false + From //v8/gni/v8.gni:160 + + Emit CET IBT landing pad instructions in JIT generated code (experimental). + v8_enable_cet_shadow_stack Current value (from the default) = false - From //v8/BUILD.gn:365 + From //v8/gni/v8.gni:157 Change code emission and runtime features to be CET shadow-stack compliant (incomplete and experimental). v8_enable_concurrent_marking Current value (from the default) = true - From //v8/BUILD.gn:151 + From //v8/BUILD.gn:170 Controls the default value of v8_enable_concurrent_marking_state. See the default setting code below. v8_enable_conservative_stack_scanning Current value (from the default) = false - From //v8/gni/v8.gni:79 + From //v8/gni/v8.gni:100 Scan the call stack conservatively during garbage collection. +v8_enable_continuation_preserved_embedder_data + Current value (from the default) = true + From //v8/BUILD.gn:372 + + Allow embedder data to be saved on continuations. Used to support + TaskAttribution and `scheduler.yield()`. + The flag enables disabling the feature, to test this data's overhead. + v8_enable_debug_code Current value (from the default) = "" - From //v8/BUILD.gn:112 + From //v8/BUILD.gn:124 Allow runtime-enabled debug code (with --debug-code). Enabled by default in debug builds. @@ -5350,20 +6154,45 @@ v8_enable_debug_code v8_enable_debugging_features Current value (from the default) = false - From //v8/BUILD.gn:38 + From //v8/BUILD.gn:36 Turns on all V8 debug features. Enables running V8 in a pseudo debug mode within a release Chrome. +v8_enable_direct_handle + Current value (from the default) = "" + From //v8/gni/v8.gni:103 + + Use direct pointers in internal (direct) handles. + +v8_enable_direct_local + Current value (from the default) = false + From //v8/gni/v8.gni:106 + + Use direct pointers in local handles. + v8_enable_disassembler Current value (from the default) = "" - From //v8/BUILD.gn:68 + From //v8/BUILD.gn:69 Sets -dENABLE_DISASSEMBLER. +v8_enable_etw_stack_walking + Current value (from the default) = false + From //v8/BUILD.gn:45 + + Sets -DV8_ENABLE_ETW_STACK_WALKING. Enables ETW Stack Walking + +v8_enable_extensible_ro_snapshot + Current value (from the default) = true + From //v8/BUILD.gn:428 + + Whether custom embedder snapshots may extend (= allocate new objects in) + ReadOnlySpace. + v8_enable_external_code_space Current value (from the default) = "" - From //v8/BUILD.gn:202 + From //v8/BUILD.gn:230 Enable support for external code range relative to the pointer compression cage. @@ -5371,19 +6200,21 @@ v8_enable_external_code_space v8_enable_fast_mksnapshot Current value (from the default) = false - From //v8/BUILD.gn:92 + From //v8/BUILD.gn:104 Enable fast mksnapshot runs. v8_enable_fast_torque - Current value (from the default) = "" - From //v8/BUILD.gn:95 + Current value = true + From //out/test/args.gn:38 + Overridden from the default = "" + From //v8/BUILD.gn:107 Optimize code for Torque executable, even during a debug build. v8_enable_future Current value (from the default) = false - From //v8/BUILD.gn:41 + From //v8/BUILD.gn:39 Sets -DV8_ENABLE_FUTURE. @@ -5391,40 +6222,40 @@ v8_enable_gdbjit Current value = false From //.gn:36 Overridden from the default = true - From //v8/BUILD.gn:231 + From //v8/BUILD.gn:255 v8_enable_google_benchmark Current value (from the default) = false - From //v8/gni/v8.gni:81 + From //v8/gni/v8.gni:111 v8_enable_handle_zapping - Current value (from the default) = true - From //v8/BUILD.gn:86 + Current value (from the default) = false + From //v8/BUILD.gn:98 Sets -dENABLE_HANDLE_ZAPPING. v8_enable_heap_snapshot_verify Current value (from the default) = "" - From //v8/BUILD.gn:352 + From //v8/BUILD.gn:379 Enable runtime verification of heap snapshots produced for devtools. v8_enable_hugepage Current value (from the default) = false - From //v8/BUILD.gn:83 + From //v8/BUILD.gn:84 Sets -dENABLE_HUGEPAGE v8_enable_i18n_support Current value (from the default) = true - From //v8/gni/v8.gni:41 + From //v8/gni/v8.gni:43 Enable ECMAScript Internationalization API. Enabling this feature will add a dependency on the ICU library. v8_enable_ignition_dispatch_counting Current value (from the default) = false - From //v8/BUILD.gn:160 + From //v8/BUILD.gn:179 Sets -dV8_IGNITION_DISPATCH_COUNTING. Enables counting frequencies of bytecode dispatches. After building in this @@ -5436,360 +6267,445 @@ v8_enable_ignition_dispatch_counting v8_enable_javascript_promise_hooks Current value (from the default) = false - From //v8/BUILD.gn:345 + From //v8/BUILD.gn:367 Allow for JS promise hooks (instead of just C++). v8_enable_lazy_source_positions Current value (from the default) = true - From //v8/BUILD.gn:245 + From //v8/BUILD.gn:269 Enable lazy source positions by default. v8_enable_lite_mode Current value (from the default) = false - From //v8/gni/v8.gni:64 + From //v8/gni/v8.gni:70 Lite mode disables a number of performance optimizations to reduce memory at the cost of performance. Sets -DV8_LITE_MODE. +v8_enable_local_off_stack_check + Current value (from the default) = false + From //v8/gni/v8.gni:109 + + Check for off-stack allocated local handles. + v8_enable_maglev - Current value (from the default) = "" - From //v8/BUILD.gn:206 + Current value = true + From //out/test/args.gn:40 + Overridden from the default = "" + From //v8/gni/v8.gni:78 Enable the Maglev compiler. Sets -dV8_ENABLE_MAGLEV +v8_enable_maglev_graph_printer + Current value (from the default) = false + From //v8/BUILD.gn:415 + + Enable Maglev's graph printer. + Sets -DV8_ENABLE_MAGLEV_GRAPH_PRINTER. + v8_enable_map_packing Current value (from the default) = false - From //v8/BUILD.gn:342 + From //v8/BUILD.gn:364 Enable map packing & unpacking (sets -dV8_MAP_PACKING). v8_enable_object_print Current value (from the default) = "" - From //v8/BUILD.gn:129 + From //v8/BUILD.gn:148 Sets -dOBJECT_PRINT. v8_enable_pointer_compression Current value (from the default) = "" - From //v8/BUILD.gn:124 + From //v8/BUILD.gn:143 Enable pointer compression (sets -dV8_COMPRESS_POINTERS). +v8_enable_pointer_compression_8gb + Current value (from the default) = "" + From //v8/BUILD.gn:392 + + Enables pointer compression for 8GB heaps. + Sets -DV8_COMPRESS_POINTERS_8GB. + v8_enable_pointer_compression_shared_cage Current value (from the default) = "" - From //v8/BUILD.gn:125 + From //v8/BUILD.gn:144 v8_enable_precise_zone_stats Current value (from the default) = false - From //v8/BUILD.gn:325 + From //v8/BUILD.gn:347 Experimental feature for collecting per-class zone memory stats. Requires use_rtti = true +v8_enable_private_mapping_fork_optimization + Current value (from the default) = false + From //v8/BUILD.gn:95 + + Sets -dV8_ENABLE_PRIVATE_MAPPING_FORK_OPTIMIZATION. + + This flag speeds up the performance of fork/execve on Linux systems for + embedders which use it (like Node.js). It works by marking the pages that + V8 allocates as MADV_DONTFORK. Without MADV_DONTFORK, the Linux kernel + spends a long time manipulating page mappings on fork and exec which the + child process doesn't generally need to access. + + See v8:7381 for more details. + v8_enable_regexp_interpreter_threaded_dispatch Current value (from the default) = true - From //v8/BUILD.gn:270 + From //v8/BUILD.gn:294 Use token threaded dispatch for the regular expression interpreter. Use switch-based dispatch if this is false v8_enable_runtime_call_stats Current value (from the default) = true - From //v8/gni/v8.gni:73 - - Enable runtime call stats. + From //v8/gni/v8.gni:94 v8_enable_sandbox Current value (from the default) = "" - From //v8/BUILD.gn:305 + From //v8/BUILD.gn:338 Enable the experimental V8 sandbox. Sets -DV8_ENABLE_SANDBOX. -v8_enable_sandbox_future - Current value (from the default) = false - From //v8/BUILD.gn:316 - - Enable all available sandbox features. Implies v8_enable_sandbox. - -v8_enable_sandboxed_external_pointers - Current value (from the default) = false - From //v8/BUILD.gn:309 - - Enable external pointer sandboxing. Requires v8_enable_sandbox. - Sets -DV8_SANDBOXED_EXTERNAL_POINTERS. - -v8_enable_sandboxed_pointers - Current value (from the default) = false - From //v8/BUILD.gn:313 - - Enable sandboxed pointers. Requires v8_enable_sandbox. - Sets -DV8_SANDBOXED_POINTERS. - v8_enable_shared_ro_heap Current value (from the default) = "" - From //v8/BUILD.gn:242 + From //v8/BUILD.gn:266 Enable sharing read-only space across isolates. Sets -DV8_SHARED_RO_HEAP. v8_enable_short_builtin_calls Current value (from the default) = "" - From //v8/BUILD.gn:197 + From //v8/BUILD.gn:225 Enable short builtins call instruction sequences by un-embedding builtins. Sets -dV8_SHORT_BUILTIN_CALLS v8_enable_single_generation Current value (from the default) = "" - From //v8/BUILD.gn:266 + From //v8/BUILD.gn:290 Redirect allocation in young generation so that there will be only one single generation. v8_enable_slow_dchecks Current value (from the default) = false - From //v8/BUILD.gn:89 + From //v8/BUILD.gn:101 Enable slow dchecks. +v8_enable_slow_tracing + Current value (from the default) = false + From //v8/BUILD.gn:419 + + Enable slow tracing, e.g., tracing on every instruction or Turbofan node. + Sets -DV8_ENABLE_SLOW_TRACING. + v8_enable_snapshot_code_comments Current value (from the default) = false - From //v8/BUILD.gn:102 + From //v8/BUILD.gn:114 Enable code comments for builtins in the snapshot (impacts performance). This also enables v8_code_comments. v8_enable_snapshot_compression Current value (from the default) = false - From //v8/BUILD.gn:281 + From //v8/BUILD.gn:311 v8_enable_snapshot_native_code_counters Current value (from the default) = "" - From //v8/BUILD.gn:118 + From //v8/BUILD.gn:130 Enable native counters from the snapshot (impacts performance, sets -dV8_SNAPSHOT_NATIVE_CODE_COUNTERS). This option will generate extra code in the snapshot to increment counters, as per the --native-code-counters flag. +v8_enable_sparkplug + Current value (from the default) = "" + From //v8/BUILD.gn:411 + + Enable Sparkplug + Sets -DV8_ENABLE_SPARKPLUG. + +v8_enable_static_roots + Current value (from the default) = "" + From //v8/BUILD.gn:133 + + Use pre-generated static root pointer values from static-roots.h. + +v8_enable_static_roots_generation + Current value (from the default) = false + From //v8/BUILD.gn:137 + + Mode used by gen-static-roots.py to have a heap layout which is identical + to when v8_enable_static_roots is enabled. + v8_enable_swiss_name_dictionary Current value (from the default) = false - From //v8/BUILD.gn:329 + From //v8/BUILD.gn:351 Experimental feature that uses SwissNameDictionary instead of NameDictionary as the backing store for all dictionary mode objects. v8_enable_system_instrumentation Current value (from the default) = false - From //v8/BUILD.gn:44 + From //v8/BUILD.gn:42 - Sets -DSYSTEM_INSTRUMENTATION. Enables OS-dependent event tracing + Sets -DENABLE_SYSTEM_INSTRUMENTATION. Enables OS-dependent event tracing v8_enable_test_features Current value (from the default) = "" - From //v8/BUILD.gn:193 + From //v8/BUILD.gn:221 Enables various testing features. v8_enable_third_party_heap Current value (from the default) = false - From //v8/BUILD.gn:248 + From //v8/BUILD.gn:272 Enable third party HEAP library v8_enable_trace_baseline_exec Current value (from the default) = false - From //v8/BUILD.gn:140 + From //v8/BUILD.gn:159 v8_enable_trace_feedback_updates Current value (from the default) = false - From //v8/BUILD.gn:143 + From //v8/BUILD.gn:162 Sets -dV8_TRACE_FEEDBACK_UPDATES. v8_enable_trace_ignition Current value (from the default) = false - From //v8/BUILD.gn:139 + From //v8/BUILD.gn:158 v8_enable_trace_maps Current value (from the default) = "" - From //v8/BUILD.gn:132 + From //v8/BUILD.gn:151 Sets -dV8_TRACE_MAPS. v8_enable_trace_unoptimized Current value (from the default) = "" - From //v8/BUILD.gn:138 + From //v8/BUILD.gn:157 Sets -dV8_TRACE_UNOPTIMIZED. +v8_enable_turbofan + Current value = true + From //out/test/args.gn:41 + Overridden from the default = "" + From //v8/gni/v8.gni:74 + + Enable the Turbofan compiler. + Sets -dV8_ENABLE_TURBOFAN. + v8_enable_unconditional_write_barriers Current value (from the default) = false - From //v8/BUILD.gn:262 + From //v8/BUILD.gn:286 Ensure that write barriers are always used. Useful for debugging purposes. v8_enable_v8_checks Current value (from the default) = "" - From //v8/BUILD.gn:135 + From //v8/BUILD.gn:154 Sets -dV8_ENABLE_CHECKS. v8_enable_verify_csa Current value (from the default) = false - From //v8/BUILD.gn:121 + From //v8/BUILD.gn:140 Enable code-generation-time checking of types in the CodeStubAssembler. v8_enable_verify_heap Current value (from the default) = "" - From //v8/BUILD.gn:50 + From //v8/BUILD.gn:51 Sets -DVERIFY_HEAP. v8_enable_verify_predictable Current value (from the default) = false - From //v8/BUILD.gn:53 + From //v8/BUILD.gn:54 Sets -DVERIFY_PREDICTABLE v8_enable_vtunejit Current value (from the default) = false - From //v8/BUILD.gn:77 + From //v8/BUILD.gn:78 Sets -dENABLE_VTUNE_JIT_INTERFACE. v8_enable_vtunetracemark Current value (from the default) = false - From //v8/BUILD.gn:80 + From //v8/BUILD.gn:81 Sets -dENABLE_VTUNE_TRACEMARK. v8_enable_wasm_gdb_remote_debugging Current value (from the default) = false - From //v8/gni/v8.gni:59 + From //v8/gni/v8.gni:65 Enable WebAssembly debugging via GDB-remote protocol. +v8_enable_wasm_simd256_revec + Current value = true + From //out/test/args.gn:42 + Overridden from the default = false + From //v8/gni/v8.gni:88 + + Enable 256-bit long vector re-vectorization pass in WASM compilation pipeline. + v8_enable_webassembly Current value (from the default) = "" - From //v8/gni/v8.gni:70 + From //v8/gni/v8.gni:85 Include support for WebAssembly. If disabled, the 'WebAssembly' global will not be available, and embedder APIs to generate WebAssembly modules will fail. Also, asm.js will not be translated to WebAssembly and will be executed as standard JavaScript instead. + Sets -dV8_ENABLE_WEBASSEMBLY. v8_enable_zone_compression Current value (from the default) = "" - From //v8/BUILD.gn:301 + From //v8/BUILD.gn:334 Enable V8 zone compression experimental feature. Sets -DV8_COMPRESS_ZONES. v8_etw_guid Current value (from the default) = "" - From //v8/BUILD.gn:47 + From //v8/BUILD.gn:48 Sets the GUID for the ETW provider v8_expose_memory_corruption_api Current value (from the default) = false - From //v8/BUILD.gn:321 + From //v8/BUILD.gn:343 Expose the memory corruption API to JavaScript. Useful for testing the sandbox. WARNING This will expose builtins that (by design) cause memory corruption. Sets -DV8_EXPOSE_MEMORY_CORRUPTION_API +v8_expose_public_symbols + Current value (from the default) = "" + From //v8/gni/v8.gni:53 + + Expose public symbols for native modules of Node.js and Electron. Default + is false. + v8_expose_symbols Current value (from the default) = false - From //v8/gni/v8.gni:50 + From //v8/gni/v8.gni:56 - Expose symbols for dynamic linking. - -v8_fuchsia_use_vmex_resource - Current value (from the default) = false - From //v8/BUILD.gn:372 - - Get VMEX priviledge at startup. - It allows to run V8 without "deprecated-ambient-replace-as-executable". - Sets -DV8_USE_VMEX_RESOURCE. - TODO(victorgomes): Remove this flag once Chormium no longer needs - the deprecated feature. + Deprecated for v8_expose_public_symbols. v8_fuzzilli Current value (from the default) = false - From //v8/gni/v8.gni:76 + From //v8/gni/v8.gni:97 Add fuzzilli fuzzer support. v8_gcmole Current value (from the default) = false - From //v8/gni/v8.gni:27 + From //v8/gni/v8.gni:26 Indicate if gcmole was fetched as a hook to make it available on swarming. v8_generate_external_defines_header Current value (from the default) = false - From //v8/BUILD.gn:333 + From //v8/BUILD.gn:355 If enabled then macro definitions that are used in externally visible header files are placed in a separate header file v8-gn.h. v8_has_valgrind Current value (from the default) = false - From //v8/gni/v8.gni:24 + From //v8/gni/v8.gni:23 Indicate if valgrind was fetched as a custom deps to make it available on swarming. +v8_icu_path + Current value (from the default) = "//third_party/icu" + From //v8/gni/v8.gni:150 + + Location of icu. + v8_imminent_deprecation_warnings Current value = false From //.gn:37 Overridden from the default = true - From //v8/BUILD.gn:59 + From //v8/BUILD.gn:60 Enable compiler warnings when using V8_DEPRECATE_SOON apis. +v8_is_on_release_branch + Current value (from the default) = false + From //v8/gni/release_branch_toggle.gni:9 + +v8_jitless + Current value (from the default) = false + From //v8/BUILD.gn:407 + + Enable jitless mode, including compile-time optimizations. Note that even + when this is set to 'false', one can run V8 in jitless mode at runtime by + passing the `--jitless` flag; but then you miss out on compile-time + optimizations. + iOS (non-simulator) does not have executable pages for 3rd party + applications yet so disable jit. + +v8_log_builtins_block_count_input + Current value (from the default) = "" + From //v8/BUILD.gn:195 + + This build flag is used to input a builtin pgo file containing raw + execution counts (as opposed to branch hints), which are embedded into + the `--trace-turbo` .json file from `mksnapshot`. + v8_monolithic Current value (from the default) = false - From //v8/gni/v8.gni:47 + From //v8/gni/v8.gni:49 Enable monolithic static library for embedders. v8_multi_arch_build Current value (from the default) = false - From //v8/gni/v8.gni:20 + From //v8/gni/v8.gni:19 Adds additional compile target for building multiple architectures at once. v8_no_inline Current value (from the default) = false - From //v8/BUILD.gn:217 + From //v8/BUILD.gn:241 Switches off inlining in V8. v8_optimized_debug Current value (from the default) = true - From //v8/gni/v8.gni:30 + From //v8/gni/v8.gni:29 Turns on compiler optimizations in V8 in Debug build. v8_os_page_size Current value (from the default) = "0" - From //v8/BUILD.gn:220 + From //v8/BUILD.gn:244 Override OS page size when generating snapshot v8_postmortem_support Current value (from the default) = false - From //v8/BUILD.gn:211 + From //v8/BUILD.gn:235 With post mortem support enabled, metadata is embedded into libv8 that describes various parameters of the VM for use by debuggers. See @@ -5797,19 +6713,23 @@ v8_postmortem_support v8_promise_internal_field_count Current value (from the default) = 0 - From //v8/BUILD.gn:71 + From //v8/BUILD.gn:72 Sets the number of internal fields on promise objects. v8_scriptormodule_legacy_lifetime Current value (from the default) = false - From //v8/BUILD.gn:361 + From //v8/BUILD.gn:388 TODO(cbruni, v8:12302): Remove once API is migrated Enable legacy mode for ScriptOrModule's lifetime. By default it's a temporary object, if enabled it will be kept alive by the parent Script. This is only used by nodejs. +v8_shortcut_strings_in_minor_ms + Current value (from the default) = false + From //v8/BUILD.gn:424 + v8_snapshot_toolchain Current value (from the default) = "" From //v8/gni/snapshot_toolchain.gni:34 @@ -5820,15 +6740,15 @@ v8_snapshot_toolchain v8_static_library Current value (from the default) = false - From //v8/gni/v8.gni:44 + From //v8/gni/v8.gni:46 Use static libraries instead of source_sets. v8_symbol_level Current value = 0 - From //out/Linux/args.gn:27 + From //out/test/args.gn:37 Overridden from the default = 0 - From //v8/gni/v8.gni:56 + From //v8/gni/v8.gni:62 Override global symbol level setting for v8. @@ -5864,79 +6784,104 @@ v8_target_cpu v8_third_party_heap_files Current value (from the default) = [] - From //v8/BUILD.gn:254 + From //v8/BUILD.gn:278 Source code used by third party heap v8_third_party_heap_libs Current value (from the default) = [] - From //v8/BUILD.gn:251 + From //v8/BUILD.gn:275 Libaries used by third party heap v8_typed_array_max_size_in_heap Current value (from the default) = 64 - From //v8/BUILD.gn:229 + From //v8/BUILD.gn:253 Controls the threshold for on-heap/off-heap Typed Arrays. v8_use_external_startup_data Current value (from the default) = "" - From //v8/gni/v8.gni:37 + From //v8/gni/v8.gni:36 Use external files for startup data blobs: the JS builtins sources and the start snapshot. +v8_use_libm_trig_functions + Current value (from the default) = true + From //v8/gni/v8.gni:142 + + TODO: macros for determining endian type are clang specific. + v8_use_mips_abi_hardfloat Current value (from the default) = true - From //v8/BUILD.gn:226 + From //v8/BUILD.gn:250 Similar to the ARM hard float ABI but on MIPS. v8_use_perfetto Current value (from the default) = false - From //v8/gni/v8.gni:53 + From //v8/gni/v8.gni:59 Implement tracing using Perfetto (https://perfetto.dev). v8_use_siphash Current value (from the default) = false - From //v8/BUILD.gn:214 + From //v8/BUILD.gn:238 Use Siphash as added protection against hash flooding attacks. +v8_use_zlib + Current value (from the default) = true + From //v8/BUILD.gn:396 + + Compile V8 using zlib as dependency. + Sets -DV8_USE_ZLIB + +v8_value_deserializer_hard_fail + Current value (from the default) = false + From //v8/BUILD.gn:399 + + Make ValueDeserializer crash if the data to deserialize is invalid. + +v8_verify_builtins_compatibility + Current value (from the default) = false + From //v8/BUILD.gn:297 + + Enforce equality of builtins hashes from compatible architectures. + +v8_verify_deterministic_mksnapshot + Current value (from the default) = false + From //v8/BUILD.gn:300 + + Check mksnapshot determinism by running it multiple times. + v8_verify_torque_generation_invariance Current value (from the default) = false - From //v8/BUILD.gn:274 + From //v8/BUILD.gn:304 Enable additional targets necessary for verification of torque file generation v8_win64_unwinding_info Current value (from the default) = true - From //v8/BUILD.gn:98 + From //v8/BUILD.gn:110 Enable the registration of unwinding info for Windows x64 and ARM64. +v8_zlib_path + Current value (from the default) = "//third_party/zlib" + From //v8/gni/v8.gni:153 + + Location of zlib. + vma_vulkan_headers_dir Current value (from the default) = "//third_party/vulkan-deps/vulkan-headers/src" From //third_party/vulkan_memory_allocator/BUILD.gn:8 -weblayer_in_split - Current value (from the default) = true - From //weblayer/variables.gni:12 - - Whether WebLayer will be included as a DFM. - -webview_includes_weblayer - Current value (from the default) = true - From //weblayer/variables.gni:9 - - Include the //weblayer code in WebView implementation APKs. - widevine_root Current value (from the default) = "." - From //third_party/widevine/cdm/widevine.gni:62 + From //third_party/widevine/cdm/widevine.gni:63 Relative root directory to //third_party/widevine/cdm for CDM files. Can be overridden if the CDM files are located in other places. @@ -5950,3 +6895,10 @@ win_console_app up when the executable is not run from the command line, so should only be used for development. Only has an effect on Windows builds. +zlib_symbols_visible + Current value (from the default) = false + From //third_party/zlib/BUILD.gn:11 + + Expose zlib's symbols, used by Node.js to provide zlib APIs for its native + modules. + diff --git a/infra/win_args.list b/infra/win_args.list index fc19b3da..9458df5f 100644 --- a/infra/win_args.list +++ b/infra/win_args.list @@ -8,21 +8,24 @@ action_pool_depth added_rust_stdlib_libs Current value (from the default) = [] - From //build/config/rust.gni:44 + From //build/config/rust.gni:82 Any extra std rlibs in your Rust toolchain, relative to the standard - Rust toolchain. Typically used with 'use_unverified_rust_toolchain' = true + Rust toolchain. Typically used with 'rust_sysroot_absolute' allow_critical_memory_pressure_handling_in_foreground Current value (from the default) = false - From //content/common/features.gni:13 + From //content/common/features.gni:16 - Whether to perform critical memory pressure handling when in foreground (if - false, critical memory pressure is treated like moderate pressure in foreground). +allow_jni_multiplexing + Current value (from the default) = false + From //third_party/jni_zero/jni_zero.gni:12 + + Enables JNI multiplexing to reduce JNI native methods overhead. allow_runtime_configurable_key_storage Current value (from the default) = false - From //components/os_crypt/features.gni:17 + From //components/os_crypt/sync/features.gni:13 Whether to make account and service names for the crypto key storage configurable at runtime for embedders. @@ -56,7 +59,7 @@ also_build_lacros_chrome_for_architecture alternate_cdm_storage_id_key Current value (from the default) = "" - From //media/media_options.gni:178 + From //media/media_options.gni:252 If |enable_cdm_storage_id| is set, then an implementation specific key must also be provided. It can be provided by defining CDM_STORAGE_ID_KEY @@ -72,87 +75,103 @@ android_channel android_full_debug Current value (from the default) = false - From //build/config/compiler/BUILD.gn:60 + From //build/config/compiler/BUILD.gn:62 Normally, Android builds are lightly optimized, even for debug builds, to keep binary size down. Setting this flag to true disables such optimization angle_64bit_current_cpu Current value (from the default) = true - From //third_party/angle/gni/angle.gni:81 + From //third_party/angle/gni/angle.gni:114 angle_assert_always_on - Current value (from the default) = false - From //third_party/angle/gni/angle.gni:76 + Current value (from the default) = true + From //third_party/angle/gni/angle.gni:108 angle_build_all Current value (from the default) = false - From //third_party/angle/BUILD.gn:39 + From //third_party/angle/BUILD.gn:44 Don't build extra (test, samples etc) for Windows UWP. We don't have infrastructure (e.g. windowing helper functions) in place to run them. + Also don't build them with MSVC, because tests and unused dependencies + often have problems building with it, e.g. for C++20. angle_build_capture_replay_tests Current value (from the default) = false - From //third_party/angle/src/tests/capture_replay_tests/BUILD.gn:9 + From //third_party/angle/src/tests/capture_replay_tests/BUILD.gn:10 Determines if we build the capture_replay_tests. Off by default. +angle_build_mesa + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:293 + +angle_build_tests + Current value (from the default) = true + From //third_party/angle/gni/angle.gni:306 + + True if we want to build the ANGLE test suites. On by default in most configs. + angle_build_vulkan_system_info Current value (from the default) = true - From //third_party/angle/gni/angle.gni:237 + From //third_party/angle/gni/angle.gni:287 angle_capture_replay_composite_file_id Current value (from the default) = 1 - From //third_party/angle/src/tests/capture_replay_tests/BUILD.gn:14 + From //third_party/angle/src/tests/capture_replay_tests/BUILD.gn:15 angle_capture_replay_test_trace_dir Current value (from the default) = "traces" - From //third_party/angle/src/tests/capture_replay_tests/BUILD.gn:12 + From //third_party/angle/src/tests/capture_replay_tests/BUILD.gn:13 Set the trace directory. Default is traces angle_debug_layers_enabled - Current value (from the default) = false - From //third_party/angle/gni/angle.gni:96 + Current value (from the default) = true + From //third_party/angle/gni/angle.gni:129 By default we enable debug layers when asserts are turned on. angle_delegate_workers Current value (from the default) = true - From //third_party/angle/gni/angle.gni:134 + From //third_party/angle/gni/angle.gni:165 By default, ANGLE is using a thread pool for parallel compilation. Activating the delegate worker results in posting the tasks using the embedder API. In Chromium code base, it results in sending tasks to the worker thread pool. +angle_dump_pipeline_cache_graph + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:241 + angle_egl_extension Current value (from the default) = "" - From //third_party/angle/BUILD.gn:58 + From //third_party/angle/BUILD.gn:64 Allow shared library custom name extensions for setting soname such as libEGL.so.1 angle_enable_abseil Current value (from the default) = true - From //third_party/angle/BUILD.gn:46 + From //third_party/angle/BUILD.gn:52 Abseil has trouble supporting MSVC, particularly regarding component builds. http://crbug.com/1126524 angle_enable_annotator_run_time_checks Current value (from the default) = false - From //third_party/angle/BUILD.gn:49 + From //third_party/angle/BUILD.gn:55 Adds run-time checks to filter out EVENT() messages when the debug annotator is disabled. angle_enable_apple_translator_workarounds Current value (from the default) = false - From //third_party/angle/gni/angle.gni:249 + From //third_party/angle/gni/angle.gni:301 angle_enable_cgl Current value (from the default) = false - From //third_party/angle/gni/angle.gni:246 + From //third_party/angle/gni/angle.gni:298 TODO(jdarpinian): Support enabling CGL and EAGL at the same time using the soft linking code. Also support disabling both for Metal-only builds. @@ -164,161 +183,231 @@ angle_enable_cl angle_enable_cl_passthrough Current value (from the default) = false - From //third_party/angle/gni/angle.gni:166 + From //third_party/angle/gni/angle.gni:197 Enables the OpenCL pass-through back end angle_enable_commit_id Current value (from the default) = true - From //third_party/angle/BUILD.gn:42 + From //third_party/angle/BUILD.gn:48 Enable generating current commit information using git +angle_enable_context_mutex + Current value (from the default) = true + From //third_party/angle/BUILD.gn:84 + +angle_enable_context_mutex_recursion + Current value (from the default) = false + From //third_party/angle/BUILD.gn:94 + + May need to enable to fix recursion when vkAcquireNextImageKHR() returns back to ANGLE from + eglClientWaitSyncKHR(). May happen if Android Presentation Engine uses + EGL_KHR_fence_sync instead of EGL_ANDROID_native_fence_sync for synchronization. + To check call: adb shell "dumpsys SurfaceFlinger | grep 'Sync configuration'" + The Android's "testDrawingHardwareBitmapNotLeaking" test may be used for testing. + Disable this option to save performance on platforms that does not require recursion. + +angle_enable_crc_for_pipeline_cache + Current value (from the default) = true + From //third_party/angle/src/libANGLE/renderer/vulkan/BUILD.gn:36 + + Enable using CRC for pipeline cache data + angle_enable_custom_vulkan_cmd_buffers Current value (from the default) = true - From //third_party/angle/src/libANGLE/renderer/vulkan/BUILD.gn:15 + From //third_party/angle/src/libANGLE/renderer/vulkan/BUILD.gn:17 Enable custom (cpu-side) secondary command buffers angle_enable_custom_vulkan_outside_render_pass_cmd_buffers Current value (from the default) = true - From //third_party/angle/src/libANGLE/renderer/vulkan/BUILD.gn:24 + From //third_party/angle/src/libANGLE/renderer/vulkan/BUILD.gn:26 angle_enable_custom_vulkan_render_pass_cmd_buffers Current value (from the default) = true - From //third_party/angle/src/libANGLE/renderer/vulkan/BUILD.gn:28 + From //third_party/angle/src/libANGLE/renderer/vulkan/BUILD.gn:30 angle_enable_d3d11 - Current value (from the default) = false - From //third_party/angle/gni/angle.gni:140 + Current value (from the default) = true + From //third_party/angle/gni/angle.gni:171 angle_enable_d3d11_compositor_native_window Current value (from the default) = false - From //third_party/angle/gni/angle.gni:215 + From //third_party/angle/gni/angle.gni:265 angle_enable_d3d9 - Current value (from the default) = false - From //third_party/angle/gni/angle.gni:139 + Current value (from the default) = true + From //third_party/angle/gni/angle.gni:170 angle_enable_desktop_glsl - Current value (from the default) = true - From //third_party/angle/gni/angle.gni:188 + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:232 Translator frontend support: angle_enable_eagl Current value (from the default) = false - From //third_party/angle/gni/angle.gni:221 + From //third_party/angle/gni/angle.gni:271 We should use EAGL (ES) on iOS except on Mac Catalyst on Intel CPUs, which uses CGL (desktop GL). angle_enable_essl Current value (from the default) = true - From //third_party/angle/gni/angle.gni:192 + From //third_party/angle/gni/angle.gni:236 angle_enable_gl Current value (from the default) = true - From //third_party/angle/gni/angle.gni:142 + From //third_party/angle/gni/angle.gni:173 -angle_enable_gl_desktop +angle_enable_gl_desktop_backend Current value (from the default) = true - From //third_party/angle/gni/angle.gni:160 + From //third_party/angle/gni/angle.gni:191 + +angle_enable_gl_desktop_frontend + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:29 + + Enable Desktop GL frontend support. angle_enable_gl_null Current value (from the default) = true - From //third_party/angle/src/libANGLE/renderer/gl/BUILD.gn:16 + From //third_party/angle/src/libANGLE/renderer/gl/gl_backend.gni:8 + +angle_enable_global_mutex_load_time_allocate + Current value (from the default) = false + From //third_party/angle/BUILD.gn:82 + +angle_enable_global_mutex_recursion + Current value (from the default) = false + From //third_party/angle/BUILD.gn:77 angle_enable_glsl Current value (from the default) = true - From //third_party/angle/gni/angle.gni:193 + From //third_party/angle/gni/angle.gni:237 angle_enable_hlsl - Current value (from the default) = false - From //third_party/angle/gni/angle.gni:191 + Current value (from the default) = true + From //third_party/angle/gni/angle.gni:235 Translator backend support: +angle_enable_memory_alloc_logging + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:249 + + Memory allocation logging support. This feature is for debugging only. + Disabled by default. + angle_enable_metal Current value (from the default) = false - From //third_party/angle/gni/angle.gni:163 + From //third_party/angle/gni/angle.gni:194 http://anglebug.com/2634 -angle_enable_msl_through_spirv - Current value (from the default) = false - From //third_party/angle/gni/angle.gni:126 - - By default, include the SPIR-V based MSL translator (in addition to the direct translator) - angle_enable_null - Current value (from the default) = false - From //third_party/angle/gni/angle.gni:159 + Current value (from the default) = true + From //third_party/angle/gni/angle.gni:190 Disable null backend to save space for official build. angle_enable_overlay - Current value (from the default) = false - From //third_party/angle/gni/angle.gni:241 + Current value (from the default) = true + From //third_party/angle/gni/angle.gni:291 Enable overlay by default when debug layers are enabled. This is currently only implemented on Vulkan. angle_enable_perf_counter_output Current value (from the default) = false - From //third_party/angle/gni/angle.gni:218 + From //third_party/angle/gni/angle.gni:268 Disable performance counter output by default angle_enable_renderdoc - Current value (from the default) = false - From //third_party/angle/gni/angle.gni:256 + Current value (from the default) = true + From //third_party/angle/gni/angle.gni:310 -angle_enable_spirv_gen_through_glslang +angle_enable_share_context_lock Current value (from the default) = false - From //third_party/angle/gni/angle.gni:209 + From //third_party/angle/BUILD.gn:69 angle_enable_swiftshader Current value (from the default) = true - From //third_party/angle/gni/angle.gni:185 + From //third_party/angle/gni/angle.gni:229 angle_enable_trace Current value (from the default) = false - From //third_party/angle/gni/angle.gni:194 + From //third_party/angle/gni/angle.gni:238 angle_enable_trace_android_logcat Current value (from the default) = false - From //third_party/angle/gni/angle.gni:195 + From //third_party/angle/gni/angle.gni:239 angle_enable_trace_events Current value (from the default) = false - From //third_party/angle/gni/angle.gni:196 + From //third_party/angle/gni/angle.gni:240 + +angle_enable_unwind_backtrace_support + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:245 + + Unwind backtrace support. This feature is currently only implemented + on Android for debugging purposes. Disabled by default. angle_enable_vulkan Current value (from the default) = true - From //third_party/angle/gni/angle.gni:147 + From //third_party/angle/gni/angle.gni:178 angle_enable_vulkan_gpu_trace_events Current value (from the default) = false - From //third_party/angle/src/libANGLE/renderer/vulkan/BUILD.gn:18 + From //third_party/angle/src/libANGLE/renderer/vulkan/BUILD.gn:20 Enable Vulkan GPU trace event capability +angle_enable_vulkan_shared_ring_buffer_cmd_alloc + Current value (from the default) = false + From //third_party/angle/src/libANGLE/renderer/vulkan/BUILD.gn:33 + + Enable shared ring buffer command buffer allocator + angle_enable_vulkan_system_info Current value (from the default) = false - From //third_party/angle/BUILD.gn:32 + From //third_party/angle/BUILD.gn:35 Enable using Vulkan to collect system info as a fallback. angle_enable_vulkan_validation_layers + Current value (from the default) = true + From //third_party/angle/gni/angle.gni:258 + +angle_enable_wgpu + Current value (from the default) = true + From //third_party/angle/gni/angle.gni:200 + + Disable WGPU backend. + +angle_expose_glx_entry_points Current value (from the default) = false - From //third_party/angle/gni/angle.gni:202 + From //third_party/angle/gni/angle.gni:40 + + Expose GLX entry points by default when using Desktop GL on Linux. angle_expose_non_conformant_extensions_and_versions Current value (from the default) = false - From //third_party/angle/BUILD.gn:52 + From //third_party/angle/BUILD.gn:58 Enables non-conformant extensions and features +angle_expose_wgl_entry_points + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:37 + + Expose WGL entry points, which is necessary for running windows desktop GL applications against ANGLE. + TODO(http://anglebug.com/7628): This condition should be `angle_enable_gl_desktop_frontend && is_win` + This is disabled by default on Windows because it was causing some test failures. Once the WGL frontend + has more functionality implemented, we can re-enable this. + angle_extract_native_libs Current value (from the default) = false From //third_party/angle/gni/angle.gni:11 @@ -327,90 +416,102 @@ angle_extract_native_libs angle_force_context_check_every_call Current value (from the default) = false - From //third_party/angle/BUILD.gn:55 + From //third_party/angle/BUILD.gn:61 Optional feature that forces dirty state whenever we use a new context regardless of thread. angle_glesv2_extension Current value (from the default) = "" - From //third_party/angle/BUILD.gn:59 + From //third_party/angle/BUILD.gn:65 + +angle_has_astc_encoder + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:205 + + ASTC emulation is only built on standalone non-android builds angle_has_frame_capture Current value (from the default) = true - From //third_party/angle/gni/angle.gni:123 + From //third_party/angle/gni/angle.gni:157 Frame capture code is enabled by default if rapidjson is available. angle_has_histograms Current value (from the default) = true - From //third_party/angle/gni/angle.gni:252 + From //third_party/angle/gni/angle.gni:303 angle_has_rapidjson Current value (from the default) = true - From //third_party/angle/gni/angle.gni:91 + From //third_party/angle/gni/angle.gni:124 Indicate if the rapidJSON library is available to build with in third_party/. +angle_is_msvc + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:144 + angle_is_winuwp Current value (from the default) = false - From //third_party/angle/gni/angle.gni:110 + From //third_party/angle/gni/angle.gni:143 There's no "is_winuwp" helper in BUILDCONFIG.gn, so we define one ourselves angle_libs_suffix Current value (from the default) = "" - From //third_party/angle/gni/angle.gni:116 + From //third_party/angle/gni/angle.gni:150 angle_link_glx Current value (from the default) = false - From //third_party/angle/BUILD.gn:35 + From //third_party/angle/BUILD.gn:38 Link in system libGL, to work with apitrace. See doc/DebuggingTips.md. +angle_restricted_traces + Current value (from the default) = [] + From //third_party/angle/gni/angle.gni:23 + angle_shared_libvulkan Current value (from the default) = true - From //third_party/angle/gni/angle.gni:107 + From //third_party/angle/gni/angle.gni:140 Vulkan loader is statically linked on Mac. http://anglebug.com/4477 angle_standalone Current value (from the default) = false - From //third_party/angle/gni/angle.gni:137 + From //third_party/angle/gni/angle.gni:168 True if we are building inside an ANGLE checkout. +angle_test_enable_system_egl + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:209 + angle_use_custom_libvulkan Current value (from the default) = true - From //third_party/angle/src/common/vulkan/BUILD.gn:9 + From //third_party/angle/src/common/vulkan/BUILD.gn:13 angle_use_gbm Current value (from the default) = false - From //third_party/angle/gni/angle.gni:43 - -angle_use_spirv_gen_through_glslang - Current value (from the default) = false - From //third_party/angle/gni/angle.gni:169 - - Use glslang to generate SPIR-V + From //third_party/angle/gni/angle.gni:67 angle_use_vulkan_display - Current value (from the default) = true - From //third_party/angle/gni/angle.gni:47 + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:71 angle_use_vulkan_null_display Current value (from the default) = false - From //third_party/angle/gni/angle.gni:156 + From //third_party/angle/gni/angle.gni:187 When set to true, ANGLE will not use VK_KHR_surface and VK_KHR_swapchain extensions. Content can be rendered only off-screen. angle_use_wayland - Current value (from the default) = true - From //third_party/angle/gni/angle.gni:46 + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:70 angle_use_x11 - Current value (from the default) = true - From //third_party/angle/gni/angle.gni:44 + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:68 angle_vulkan_display_mode Current value (from the default) = "simple" @@ -420,31 +521,31 @@ angle_vulkan_display_mode angle_vulkan_headers_dir Current value = "//third_party/vulkan-deps/vulkan-headers/src" - From //.gn:52 + From //.gn:58 Overridden from the default = "//third_party/angle/third_party/vulkan-deps/vulkan-headers/src" - From //third_party/angle/gni/angle.gni:229 + From //third_party/angle/gni/angle.gni:279 angle_vulkan_loader_dir Current value = "//third_party/vulkan-deps/vulkan-loader/src" - From //.gn:53 + From //.gn:59 Overridden from the default = "//third_party/angle/third_party/vulkan-deps/vulkan-loader/src" - From //third_party/angle/gni/angle.gni:231 + From //third_party/angle/gni/angle.gni:281 angle_vulkan_tools_dir Current value = "//third_party/vulkan-deps/vulkan-tools/src" - From //.gn:54 + From //.gn:60 Overridden from the default = "//third_party/angle/third_party/vulkan-deps/vulkan-tools/src" - From //third_party/angle/gni/angle.gni:233 + From //third_party/angle/gni/angle.gni:283 angle_vulkan_validation_layers_dir Current value = "//third_party/vulkan-deps/vulkan-validation-layers/src" - From //.gn:56 + From //.gn:62 Overridden from the default = "//third_party/angle/third_party/vulkan-deps/vulkan-validation-layers/src" - From //third_party/angle/gni/angle.gni:235 + From //third_party/angle/gni/angle.gni:285 angle_wayland_dir Current value (from the default) = "//third_party/angle/third_party/wayland" - From //third_party/angle/gni/angle.gni:226 + From //third_party/angle/gni/angle.gni:276 Directory where to find wayland source files @@ -457,32 +558,32 @@ angle_with_capture_by_default apm_debug_dump Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:117 + From //third_party/webrtc/webrtc.gni:129 Selects whether debug dumps for the audio processing module should be generated. archive_seed_corpus Current value (from the default) = true - From //build/config/sanitizers/sanitizers.gni:108 + From //build/config/sanitizers/sanitizers.gni:105 When true, seed corpora archives are built. -audio_input_sample_rate - Current value (from the default) = 16000 - From //chromecast/chromecast.gni:122 - - Recording happens at this sample rate. Must be 16000, 48000 or 96000 Hz. - auto_profile_path Current value (from the default) = "" - From //build/config/compiler/BUILD.gn:86 + From //build/config/compiler/BUILD.gn:88 AFDO (Automatic Feedback Directed Optimizer) is a form of profile-guided optimization that GCC supports. It used by ChromeOS in their official builds. To use it, set auto_profile_path to the path to a file containing the needed gcov profiling data. +backup_ref_ptr_poison_oob_ptr + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:220 + + Set to `enable_backup_ref_ptr_support && has_64_bit_pointers` when enabling. + blink_animation_use_time_delta Current value (from the default) = false From //third_party/blink/renderer/core/animation/BUILD.gn:11 @@ -519,10 +620,16 @@ blink_gc_plugin_option_warn_unneeded_finalizer a class has an empty destructor which would be unnecessarily invoked when finalized. +blink_heap_inside_shared_library + Current value (from the default) = true + From //third_party/blink/renderer/platform/heap/BUILD.gn:17 + + Whether the blink heap code is compiled into a shared library. + Embedders like CEF use this flag to include blink in a shared library under + non-component build. + blink_symbol_level - Current value = 0 - From //out/thorium/args.gn:26 - Overridden from the default = -1 + Current value (from the default) = -1 From //third_party/blink/renderer/config.gni:40 How many symbols to include in the build of blink. This affects @@ -540,31 +647,54 @@ blink_symbol_level branding_file_path Current value (from the default) = "//chrome/app/theme/chromium/BRANDING" - From //build/config/chrome_build.gni:24 + From //build/config/chrome_build.gni:76 The path to the BRANDING file in chrome/app/theme. branding_path_component Current value (from the default) = "chromium" - From //build/config/chrome_build.gni:18 + From //build/config/chrome_build.gni:69 + +branding_path_product + Current value (from the default) = "chromium" + From //build/config/chrome_build.gni:70 + +build_allocation_stack_trace_recorder + Current value (from the default) = false + From //base/debug/debug.gni:18 + +build_allocation_trace_recorder_full_reporting + Current value (from the default) = false + From //base/debug/debug.gni:28 + + If enabled, the recorder gathers some additional information, i.e. number of + collisions of slots, and prints these periodically. + + Since this might impact performance negatively, it's disabled by default. + Even if it's disabled we still collect some data, i.e. total number of + allocations. All other data will be set to a default value. build_angle_deqp_tests Current value (from the default) = false - From //third_party/angle/src/tests/BUILD.gn:12 + From //third_party/angle/gni/angle.gni:26 Don't build dEQP by default. build_angle_gles1_conform_tests Current value (from the default) = false - From //third_party/angle/src/tests/BUILD.gn:13 + From //third_party/angle/src/tests/BUILD.gn:10 build_angle_perftests Current value (from the default) = true - From //third_party/angle/src/tests/BUILD.gn:16 + From //third_party/angle/src/tests/BUILD.gn:13 build_angle_trace_perf_tests Current value (from the default) = false - From //third_party/angle/src/tests/BUILD.gn:14 + From //third_party/angle/src/tests/BUILD.gn:11 + +build_angle_trace_tests + Current value (from the default) = false + From //third_party/angle/src/tests/BUILD.gn:17 build_contextual_search Current value (from the default) = false @@ -572,7 +702,7 @@ build_contextual_search build_dawn_tests Current value (from the default) = true - From //ui/gl/features.gni:26 + From //ui/gl/features.gni:27 Should Dawn test binaries (unittests, end2end_tests, perf_tests) be built? Independent of use_dawn, which controls whether Dawn is used in Chromium. @@ -584,22 +714,50 @@ build_libsrtp_tests Tests may not be appropriate for some build environments, e.g. Windows. Rather than enumerate valid options, we just let clients ask for them. -build_tflite_with_xnnpack - Current value (from the default) = false - From //third_party/tflite/features.gni:10 +build_tflite_with_ruy + Current value (from the default) = true + From //third_party/tflite/features.gni:16 - This enables building TFLite with XNNPACK. Currently only available for - Linux x64. + Turns on TFLITE_WITH_RUY, using ruy as the gemm backend instead of gemmlowp. + +build_tflite_with_xnnpack + Current value (from the default) = true + From //third_party/tflite/features.gni:11 + +build_webnn_with_tflite_model_loader + Current value (from the default) = false + From //third_party/blink/renderer/modules/ml/webnn/features.gni:15 + + This build flag enables WebNN to access hardware acceleration using TFLite + via the ModelLoader mojo interface. + +build_webnn_with_xnnpack + Current value (from the default) = true + From //third_party/blink/renderer/modules/ml/webnn/features.gni:9 + + This enables building WebNN with XNNPACK. Currently only available for + Windows, macOS and Linux on x64, x86 and arm64. build_with_internal_optimization_guide Current value (from the default) = false - From //components/optimization_guide/features.gni:38 + From //components/optimization_guide/features.gni:41 + When TFLite works for windows arm64, this lib should just work seamlessly. Use is_chrome_branded as a proxy for "does src-internal exist". +build_with_mediapipe_lib + Current value (from the default) = false + From //third_party/mediapipe/features.gni:11 + + This should only be changed in a local args.gn file for now. This library is + not ready to be built into Chromium yet. + + MediaPipe support is under development, but should work on Linux and Windows + Intel chips. + build_with_mozilla Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:144 + From //third_party/webrtc/webrtc.gni:156 Enable to use the Mozilla internal settings. @@ -607,33 +765,16 @@ build_with_tflite_lib Current value (from the default) = true From //components/optimization_guide/features.gni:14 -builtin_cert_verifier_feature_supported - Current value (from the default) = false - From //net/features.gni:46 - - Platforms where both the builtin cert verifier and a platform verifier are - supported and may be switched between using the CertVerifierBuiltin feature - flag. This does not include platforms where the builtin cert verifier is - the only verifier supported. - -builtin_cert_verifier_policy_supported - Current value (from the default) = false - From //chrome/common/features.gni:35 - - Platforms where the BuiltinCertificateVerifierEnabled enterprise policy is - supported. This must must match the supported_on list of the policy in - policy_templates.json and be a subset of the - builtin_cert_verifier_feature_supported platforms. - See crbug.com/410574. This can be removed when the builtin verifier is - unconditionally enabled on all platforms. + This enables build with TFLite library. + TODO(b/269198471): Make sure the internal archive files for opt guide get + updated when win arm64 gets added as a supported platform for TFLite. bundle_widevine_cdm - Current value = false - From //out/thorium/args.gn:43 - Overridden from the default = false + Current value (from the default) = false From //third_party/widevine/cdm/widevine.gni:58 - Widevine CDM is bundled as part of Google Chrome builds. + Widevine CDM is bundled as part of Google Chrome and + Google Chrome for Testing builds. cast_allow_developer_certificate Current value (from the default) = false @@ -642,77 +783,95 @@ cast_allow_developer_certificate Whether or not self-signed certificates are enabled for the receiver and sender implementations. -cast_build_incremental - Current value (from the default) = "999999" - From //chromecast/chromecast.gni:34 - - The incremental build number. The Cast automated builders will set this - value to indicate the buildset. Note: The default value should be greater - than any value the builder may assign to prevent attempted automatic updates - when the default value is used. - -cast_is_debug - Current value (from the default) = false - From //chromecast/chromecast.gni:28 - - If true, IS_CAST_DEBUG_BUILD() will evaluate to 1 in version.h. Otherwise, - it will evaluate to 0. Overriding this when is_debug=false is useful for - doing engineering builds. - cast_streaming_enable_remoting Current value (from the default) = false From //components/cast_streaming/features.gni:9 Whether the cast remoting feature should be enabled in this build. -cast_volume_control_in_avsettings - Current value (from the default) = false - From //chromecast/chromecast.gni:59 - - Set to true on devices where the VolumeControl implementation is in the - libcast_avsettings_1.0.so instead of in libcast_media_1.0.so. - cc_wrapper Current value (from the default) = "" From //build/toolchain/cc_wrapper.gni:37 Set to "ccache", "icecc" or "distcc". Probably doesn't work on windows. -chrome_cleaner_internal_root - Current value (from the default) = "//chrome/chrome_cleaner/internal/chrome_cleaner_internal" - From //chrome/chrome_cleaner/chrome_cleaner_args.gni:21 +chrome_certificate_policies_supported + Current value (from the default) = true + From //chrome/common/features.gni:46 + + Platforms where Chrome x509 server certificate enterprise policies are + supported. This must must match the supported_on/future_on list of the + policy in the following policies stored in + components/policy/resources/templates/policy_definitions/: + + * CertificateManagement/CACertificates.yaml + * CertificateManagement/CADistrustedCertificates.yaml + * CertificateManagement/CAHintCertificates.yaml + * CertificateManagement/CAPlatformIntegrationEnabled.yaml + + +chrome_enable_logging_by_default + Current value (from the default) = true + From //chrome/common/features.gni:34 + + Enables the build to have logging enabled by default. + This is intended for use only in developer builds. chrome_pgo_phase - Current value = 2 - From //out/thorium/args.gn:60 - Overridden from the default = 2 - From //build/config/compiler/pgo/pgo.gni:20 + Current value (from the default) = 0 + From //build/config/compiler/pgo/pgo.gni:22 + + Specify the current PGO phase. + Here's the different values that can be used: + 0 : Means that PGO is turned off. + 1 : Used during the PGI (instrumentation) phase. + 2 : Used during the PGO (optimization) phase. + PGO profiles are generated from `dcheck_always_on = false` builds. Mixing + those profiles with `dcheck_always_on = true` builds can cause the compiler + to think some code is hotter than it actually is, potentially causing very + bad compile times. + +chrome_root_store_only + Current value (from the default) = true + From //net/features.gni:53 + + Platforms for which certificate verification can only be performed using + the builtin cert verifier with the Chrome Root Store. + +chrome_root_store_optional + Current value (from the default) = false + From //net/features.gni:49 + + Platforms for which certificate verification can be performed using the + builtin cert verifier with the Chrome Root Store, and this can be + configured using the ChromeRootStoreUsed feature flag. When the feature + flag is false, verification may be done with the platform verifier or the + builtin verifier using platform roots, depending on the platform. + See https://crbug.com/1216547 for status. chrome_root_store_supported - Current value (from the default) = false - From //net/features.gni:50 - - Platforms for which the builtin cert verifier can use the Chrome Root Store. - See https://crbug.com/1216547 for status. + Current value (from the default) = true + From //net/features.gni:68 chrome_wide_echo_cancellation_supported Current value (from the default) = true - From //media/media_options.gni:266 + From //media/media_options.gni:345 - The audio service must be sandboxed for us to do audio processing there. - Currently it is so only on Win and Mac. + Currently it is available on Win, Mac and Linux, since it requires the audio + service to run in a separate process. -chromecast_branding - Current value (from the default) = "public" - From //build/config/chromecast_build.gni:21 +chromedriver_disclaim_responsibility + Current value (from the default) = true + From //chrome/test/chromedriver/BUILD.gn:20 - chromecast_branding is used to include or exclude Google-branded components. - Set it to "public" for a Chromium build. - TODO(crbug.com/1293517): Remove usages in Chromium and move to //chromecast. + Make macOS request permissions for the chrome binary instead of its parent + process (usually the Terminmal.app). + This is required for running chrome tests on Google's CI machines, but for + some vendor builds like Microsoft Teams they need to turn this off. chromeos_afdo_platform Current value (from the default) = "atom" - From //build/config/compiler/BUILD.gn:109 + From //build/config/compiler/BUILD.gn:112 This configuration is used to select a default profile in Chrome OS based on the microarchitectures we are using. This is only used if @@ -723,7 +882,7 @@ chromeos_is_browser_only Current value (from the default) = false From //build/config/chromeos/ui_mode.gni:19 - Deprecated, use is_lacros. + Deprecated, use is_chromeos_lacros. This controls UI configuration for Chrome. If this flag is set, we assume Chrome runs on Chrome OS devices, using @@ -732,45 +891,51 @@ chromeos_is_browser_only TODO(crbug.com/1052397): Define chromeos_product instead, which takes either "browser" or "ash". Re-define the following variables as: - is_lacros = chromeos_product == "browser" - is_ash = chromeos_product == "ash" + is_chromeos_lacros = chromeos_product == "browser" + is_chromeos_ash = chromeos_product == "ash" clang_base_path Current value (from the default) = "//third_party/llvm-build/Release+Asserts" - From //build/config/clang/clang.gni:17 + From //build/config/clang/clang.gni:29 clang_diagnostic_dir Current value (from the default) = "../../tools/clang/crashreports" - From //build/config/compiler/compiler.gni:124 + From //build/config/compiler/compiler.gni:128 + +clang_embed_bitcode + Current value (from the default) = false + From //build/config/clang/clang.gni:33 + + Specifies whether or not bitcode should be embedded during compilation. + This is used for creating a MLGO corpus from Chromium in the non-ThinLTO case. clang_emit_debug_info_for_profiling Current value (from the default) = false - From //build/config/compiler/BUILD.gn:112 + From //build/config/compiler/BUILD.gn:116 Emit debug information for profiling wile building with clang. + Only enable this for ChromeOS official builds for AFDO. clang_sample_profile_path Current value (from the default) = "" - From //build/config/compiler/BUILD.gn:93 + From //build/config/compiler/BUILD.gn:96 Path to an AFDO profile to use while building with clang, if any. Empty implies none. clang_use_chrome_plugins Current value (from the default) = true - From //build/config/clang/clang.gni:14 + From //build/config/clang/clang.gni:15 clang_use_default_sample_profile Current value (from the default) = false - From //build/config/compiler/BUILD.gn:102 + From //build/config/compiler/BUILD.gn:105 clang_version - Current value (from the default) = "15.0.0" - From //build/toolchain/toolchain.gni:36 + Current value (from the default) = "18" + From //build/toolchain/toolchain.gni:53 -cleaner_branding_path - Current value (from the default) = "//chrome/chrome_cleaner/constants/CLEANER_BRANDING" - From //chrome/chrome_cleaner/constants/args.gni:7 + TODO(crbug.com/1517549): Remove in the next Clang roll. com_init_check_hook_disabled Current value (from the default) = false @@ -780,7 +945,7 @@ com_init_check_hook_disabled compiler_timing Current value (from the default) = false - From //build/config/compiler/BUILD.gn:115 + From //build/config/compiler/BUILD.gn:119 Turn this on to have the compiler output extra timing information. @@ -817,17 +982,24 @@ concurrent_links The default to use varies by platform and by the amount of memory available, so we call out to a script to get the right value. +content_enable_legacy_ipc + Current value (from the default) = false + From //content/common/features.gni:24 + + We allow legacy IPC to be enabled for Android (GIN Java bridge), and + Pepper usage. + content_shell_major_version Current value (from the default) = "999" - From //content/shell/BUILD.gn:37 + From //content/shell/BUILD.gn:45 content_shell_product_name Current value (from the default) = "Content Shell" - From //content/shell/BUILD.gn:35 + From //content/shell/BUILD.gn:43 content_shell_version Current value (from the default) = "999.77.34.5" - From //content/shell/BUILD.gn:36 + From //content/shell/BUILD.gn:44 coverage_instrumentation_input_file Current value (from the default) = "" @@ -843,45 +1015,67 @@ coverage_instrumentation_input_file cppgc_allow_allocations_in_prefinalizers Current value (from the default) = false - From //v8/BUILD.gn:297 + From //v8/BUILD.gn:330 Enable allocations during prefinalizer invocations. +cppgc_enable_2gb_cage + Current value (from the default) = false + From //v8/gni/v8.gni:132 + + Enable 2gb cage for fast compression/decompression. Currently disabled + due to an increased number of OOMs. + cppgc_enable_caged_heap Current value (from the default) = true - From //v8/BUILD.gn:290 + From //v8/BUILD.gn:323 + +cppgc_enable_larger_cage + Current value (from the default) = false + From //v8/gni/v8.gni:135 + + Enable support for larger cages, up to 16GB. cppgc_enable_object_names Current value (from the default) = false - From //v8/gni/v8.gni:86 + From //v8/gni/v8.gni:116 - Enable object names in cppgc for debug purposes. + Enable object names in cppgc for profiling purposes. cppgc_enable_pointer_compression Current value (from the default) = false - From //v8/gni/v8.gni:92 + From //v8/gni/v8.gni:128 Enable pointer compression in cppgc. +cppgc_enable_slim_write_barrier + Current value (from the default) = true + From //v8/gni/v8.gni:125 + + Enables a slim write barrier that only performs a single check in the fast + path and delegates all further checks to a slow path call. This is fast + in a setting with few slow-path checks, i.e., with disabled young generation + GC. + cppgc_enable_verify_heap Current value (from the default) = "" - From //v8/BUILD.gn:294 + From //v8/BUILD.gn:327 Enables additional heap verification phases and checks. cppgc_enable_young_generation Current value (from the default) = false - From //v8/gni/v8.gni:89 + From //v8/gni/v8.gni:119 Enable young generation in cppgc. cppgc_is_standalone Current value (from the default) = false - From //v8/gni/v8.gni:83 + From //v8/gni/v8.gni:113 crashpad_dependencies Current value = "chromium" - From //.gn:49 + From //.gn:55 Overridden from the default = "standalone" From //third_party/crashpad/crashpad/build/crashpad_buildconfig.gni:19 @@ -890,11 +1084,11 @@ crashpad_dependencies "fuchsia", "dart" or "external". crashpad_http_transport_impl - Current value (from the default) = "libcurl" - From //third_party/crashpad/crashpad/util/net/tls.gni:21 + Current value (from the default) = "" + From //third_party/crashpad/crashpad/util/net/tls.gni:23 crashpad_use_boringssl_for_http_transport_socket - Current value (from the default) = true + Current value (from the default) = false From //third_party/crashpad/crashpad/util/net/tls.gni:30 cros_board @@ -932,82 +1126,109 @@ custom_vulkan_loader_library_name dawn_always_assert Current value (from the default) = false - From //third_party/dawn/scripts/dawn_features.gni:42 + From //third_party/dawn/scripts/dawn_features.gni:66 Enable Dawn's ASSERTs even in release builds dawn_complete_static_libs Current value (from the default) = false - From //third_party/dawn/scripts/dawn_features.gni:47 + From //third_party/dawn/scripts/dawn_features.gni:71 Should the Dawn static libraries be fully linked vs. GN's default of treating them as source sets. This is useful for people using Dawn standalone to produce static libraries to use in their projects. -dawn_enable_d3d12 +dawn_dxc_disable_asserts_debug Current value (from the default) = false - From //third_party/dawn/scripts/dawn_features.gni:50 + From //third_party/dawn/third_party/gn/dxc/BUILD.gn:50 + + DXC sometimes asserts on valid HLSL. Set this to true to disable assertions in debug builds. + +dawn_enable_d3d11 + Current value (from the default) = true + From //third_party/dawn/scripts/dawn_features.gni:74 + + Enables the compilation of Dawn's D3D11 backend + +dawn_enable_d3d12 + Current value (from the default) = true + From //third_party/dawn/scripts/dawn_features.gni:77 Enables the compilation of Dawn's D3D12 backend dawn_enable_desktop_gl - Current value (from the default) = true - From //third_party/dawn/scripts/dawn_features.gni:61 + Current value (from the default) = false + From //third_party/dawn/scripts/dawn_features.gni:88 Enables the compilation of Dawn's OpenGL backend (best effort, non-conformant) dawn_enable_error_injection - Current value (from the default) = false - From //third_party/dawn/scripts/dawn_features.gni:76 + Current value (from the default) = true + From //third_party/dawn/scripts/dawn_features.gni:103 dawn_enable_metal Current value (from the default) = false - From //third_party/dawn/scripts/dawn_features.gni:53 + From //third_party/dawn/scripts/dawn_features.gni:80 Enables the compilation of Dawn's Metal backend dawn_enable_null Current value (from the default) = true - From //third_party/dawn/scripts/dawn_features.gni:57 + From //third_party/dawn/scripts/dawn_features.gni:84 Enables the compilation of Dawn's Null backend (required for unittests, obviously non-conformant) dawn_enable_opengles Current value (from the default) = true - From //third_party/dawn/scripts/dawn_features.gni:67 + From //third_party/dawn/scripts/dawn_features.gni:94 + +dawn_enable_spirv_validation + Current value (from the default) = true + From //third_party/dawn/scripts/dawn_features.gni:121 + + Disable SPIR-V validation on Android because it adds a significant amount + to the binary size, and Tint's output should be well-formed. dawn_enable_vulkan Current value (from the default) = true - From //third_party/dawn/scripts/dawn_features.gni:71 + From //third_party/dawn/scripts/dawn_features.gni:98 Enables the compilation of Dawn's Vulkan backend Disables vulkan when compiling for UWP, since UWP only supports d3d dawn_enable_vulkan_loader - Current value (from the default) = true - From //third_party/dawn/scripts/dawn_features.gni:90 + Current value (from the default) = false + From //third_party/dawn/scripts/dawn_features.gni:117 dawn_enable_vulkan_validation_layers Current value (from the default) = true - From //third_party/dawn/scripts/dawn_features.gni:85 + From //third_party/dawn/scripts/dawn_features.gni:112 -dawn_use_angle +dawn_tests_use_angle Current value (from the default) = true - From //third_party/dawn/scripts/dawn_features.gni:33 + From //third_party/dawn/scripts/dawn_features.gni:50 + +dawn_use_built_dxc + Current value (from the default) = true + From //third_party/dawn/scripts/dawn_features.gni:61 + + Whether we allow building DXC. + DXC requires SM6.0+ which is blocklisted on x86, + and arm64 support is not implemented yet. + See crbug.com/tint/1753. dawn_use_swiftshader Current value (from the default) = true - From //third_party/dawn/scripts/dawn_features.gni:37 + From //third_party/dawn/scripts/dawn_features.gni:55 Enables SwiftShader as the fallback adapter. Requires dawn_swiftshader_dir to be set to take effect. + TODO(dawn:1536): Enable SwiftShader for Android. dcheck_always_on - Current value = false - From //out/thorium/args.gn:11 - Overridden from the default = false + Current value (from the default) = true From //build/config/dcheck_always_on.gni:25 dcheck_is_configurable @@ -1018,27 +1239,18 @@ dcheck_is_configurable DCHECKS can then be set as fatal/non-fatal via the "DcheckIsFatal" feature. See https://bit.ly/dcheck-albatross for details on how this is used. -default_command_line_flags - Current value (from the default) = [] - From //chromecast/chromecast.gni:97 - - Contain default command line switches we want to set. - This will get joined into a comma-separated list that looks like: - "test-flag-one=public,test-flag-two=true,test-flag-three=1," - TODO(ziyangch): make the parsing logic have ability to quote/escape characters. - -device_user_agent_suffix - Current value (from the default) = "" - From //chromecast/chromecast.gni:151 - - device specific string to append to User string. - devtools_components_visibility Current value (from the default) = ["*"] From //third_party/devtools-frontend/src/front_end/ui/components/visibility.gni:8 -devtools_dcheck_always_on +devtools_css_hot_reload_enabled Current value (from the default) = false + From //third_party/devtools-frontend/src/scripts/build/ninja/generate_css.gni:11 + + Whether to enable CSS hot reloading with `watch` script or not. + +devtools_dcheck_always_on + Current value (from the default) = true From //third_party/devtools-frontend/src/scripts/build/ninja/vars.gni:8 devtools_entrypoints_visibility @@ -1046,7 +1258,7 @@ devtools_entrypoints_visibility From //third_party/devtools-frontend/src/front_end/entrypoints/visibility.gni:8 devtools_fast_bundle - Current value (from the default) = false + Current value (from the default) = true From //third_party/devtools-frontend/src/scripts/build/ninja/bundle.gni:12 If this is enabled, devtools build uses esbuild instead of rollup.js to @@ -1072,13 +1284,24 @@ devtools_panels_visibility Current value (from the default) = ["*"] From //third_party/devtools-frontend/src/front_end/panels/visibility.gni:8 +devtools_release_sourcemaps + Current value (from the default) = false + From //third_party/devtools-frontend/src/scripts/build/ninja/bundle.gni:20 + + If this is enabled, we will emit source maps for the entrypoint bundles. + Since we only bundle release builds, this flag can't be used with + is_debug = true. + Note that this flag works regardless of the devtools_skip_typecheck or + devtools_fast_bundle GN arg. Both rollup.js or ESBuild will emit source + maps if this flag is set. + devtools_root_location Current value (from the default) = "third_party/devtools-frontend/src" From //build/config/devtools.gni:26 devtools_skip_typecheck - Current value (from the default) = false - From //third_party/devtools-frontend/src/third_party/typescript/typescript.gni:15 + Current value (from the default) = true + From //third_party/devtools-frontend/src/third_party/typescript/typescript.gni:16 devtools_third_party_visibility Current value (from the default) = ["*"] @@ -1088,38 +1311,30 @@ devtools_ui_legacy_visibility Current value (from the default) = ["*"] From //third_party/devtools-frontend/src/front_end/ui/legacy/visibility.gni:8 -devtools_use_rbe +devtools_use_remoteexec Current value (from the default) = false - From //third_party/devtools-frontend/src/third_party/typescript/typescript.gni:13 + From //third_party/devtools-frontend/src/third_party/typescript/typescript.gni:14 - Set to true to enable remote compilation of TypeScript using RBE. - This flag is temporarily until DevTools RBE support has stabilized. - At that point, this flag will be folded together with "use_rbe". + Set to true to enable remote compilation of TypeScript using reclient. + This flag is temporarily until DevTools reclient support has stabilized. + At that point, this flag will be folded together with "use_remoteexec". TODO(crbug.com/1139220): Remove the flag once we are confident. devtools_visibility Current value = ["*"] - From //.gn:63 + From //.gn:71 Overridden from the default = [] From //third_party/devtools-frontend/src/front_end/visibility.gni:6 -dfmify_feed_v2_modern - Current value (from the default) = false - From //components/feed/features.gni:13 - - Whether to include Feed as a DFM in ChromeModern builds. - disable_brotli_filter Current value (from the default) = false - From //net/features.gni:22 + From //net/features.gni:24 Do not disable brotli filter by default. disable_fieldtrial_testing_config - Current value = true - From //out/thorium/args.gn:15 - Overridden from the default = false - From //components/variations/service/BUILD.gn:14 + Current value (from the default) = false + From //components/variations/service/BUILD.gn:15 Set to true make a build that disables activation of field trial tests specified in testing/variations/fieldtrial_testing_config.json. @@ -1129,9 +1344,10 @@ disable_fieldtrial_testing_config disable_file_support Current value (from the default) = false - From //net/features.gni:9 + From //net/features.gni:11 Disables support for file URLs. File URL support requires use of icu. + Cronet does not support file URLs. disable_histogram_support Current value (from the default) = true @@ -1141,32 +1357,40 @@ disable_histogram_support disable_libfuzzer Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:86 + From //build/config/sanitizers/sanitizers.gni:87 Helper variable for testing builds with disabled libfuzzer. Not for client use. -disable_secure_flac_and_opus_decoding +disable_zstd_filter Current value (from the default) = false - From //chromecast/chromecast.gni:101 + From //net/features.gni:27 - Set to true to disable secure flac/opus support in EME, when using - cast CMA media backend and supporting Widevine or Playready. + Do not disable zstd filter by default, except for Cronet builds. + +enable_accessibility_service + Current value (from the default) = false + From //services/accessibility/buildflags.gni:11 + + Used to enable the Accessibility Service. Override this in + gn args on supported platforms (see below). + +enable_accessibility_service_internal + Current value (from the default) = false + From //services/accessibility/buildflags.gni:20 + +enable_all_rust_features + Current value (from the default) = false + From //build/config/rust.gni:50 + + As we incrementally enable Rust on mainstream builders, we want to enable + the toolchain (by switching 'enable_rust' to true) while still disabling + almost all Rust features). Yet we still want to have some builders with + all Rust features enabled. enable_arcore Current value (from the default) = false - From //device/vr/buildflags/buildflags.gni:38 - - Controls inclusion of code for ARCore that must be identical across configs. - Once crbug.com/920424 is resolved, this will exactly control whether ARCore - is supported. - TODO(crbug.com/843374): AR should not depend on |enable_vr|. - -enable_assistant - Current value (from the default) = false - From //chromecast/chromecast.gni:47 - - Set true to enable assistant features. + From //device/vr/buildflags/buildflags.gni:21 enable_assistant_integration_tests Current value (from the default) = false @@ -1177,40 +1401,49 @@ enable_assistant_integration_tests server, which increases the library size, which is why we introduced this flag to disable them in the release builds. -enable_audio_capture_service - Current value (from the default) = false - From //chromecast/chromecast.gni:128 - - Set to true to enable audio capture service for audio input. - -enable_autofill_assistant_api - Current value (from the default) = false - From //extensions/buildflags/buildflags.gni:10 - - Compile time flag for the Autofill Assistant API. - WARNING: This must not be enabled in official builds. - enable_av1_decoder Current value (from the default) = true - From //media/media_options.gni:93 + From //media/media_options.gni:133 + + If overriding this to false, possibly via its component values, + `enable_libaom` should likely also be overriddent to false. enable_background_contents Current value (from the default) = true - From //chrome/common/features.gni:38 + From //chrome/common/features.gni:49 Enables support for background apps. enable_background_mode Current value (from the default) = true - From //chrome/common/features.gni:39 + From //chrome/common/features.gni:50 + +enable_backup_ref_ptr_feature_flag + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:194 + + Enable the feature flag required to activate backup ref pointers. That is to + say `PartitionAllocBackupRefPtr`. + + This is meant to be used primarily on bots. It is much easier to override + the feature flags using a binary flag instead of updating multiple bots's + scripts to pass command line arguments. + +enable_backup_ref_ptr_instance_tracer + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:222 enable_backup_ref_ptr_slow_checks Current value (from the default) = false - From //base/allocator/allocator.gni:107 + From //base/allocator/partition_allocator/partition_alloc.gni:186 + +enable_backup_ref_ptr_support + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:144 enable_base_tracing Current value (from the default) = true - From //build_overrides/build.gni:22 + From //build_overrides/build.gni:36 Tracing support requires //third_party/perfetto, which is not available in libchrome (CrOS's version of //base). This flag can disable tracing support @@ -1220,27 +1453,34 @@ enable_base_tracing enable_basic_print_dialog Current value (from the default) = true - From //chrome/common/features.gni:43 + From //printing/buildflags/buildflags.gni:34 - Enable the printing system dialog for platforms that support printing + Enables the printing system dialog for platforms that support printing and have a system dialog. enable_basic_printing Current value (from the default) = true - From //printing/buildflags/buildflags.gni:14 + From //printing/buildflags/buildflags.gni:25 - Enables basic printing support and UI. + TODO(awscreen) Safety net to avoid revert for a flag rename which affects + many locations. Remove this once `enable_printing` has landed. enable_blink_bindings_tracing Current value (from the default) = false - From //third_party/blink/renderer/platform/BUILD.gn:193 + From //third_party/blink/renderer/platform/BUILD.gn:229 Enable TRACE_EVENT instrumentation for Blink bindings. Disabled by default as it increases binary size. +enable_bound_session_credentials + Current value (from the default) = true + From //components/signin/features.gni:10 + + Compile time flag for Bound Session Credentials. + enable_browser_speech_service Current value (from the default) = true - From //chrome/services/speech/buildflags/buildflags.gni:22 + From //chrome/services/speech/buildflags/buildflags.gni:24 Whether the speech service is implemented in the browser as a hosted service possibly running in a utility process. @@ -1252,15 +1492,12 @@ enable_browser_speech_service (e.g. Android, where Live Caption is instead a system feature). enable_call_graph_profile_sort - Current value (from the default) = true - From //build/config/compiler/BUILD.gn:162 - - Turn off the --call-graph-profile-sort flag for lld by default. Enable - selectively for targets where it's beneficial. + Current value (from the default) = false + From //build/config/compiler/BUILD.gn:246 enable_callgrind Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:54 + From //third_party/pdfium/pdfium.gni:66 Enable callgrind for performance profiling @@ -1268,52 +1505,43 @@ enable_captive_portal_detection Current value (from the default) = true From //components/captive_portal/core/features.gni:9 -enable_cast_audio_manager_mixer +enable_cardboard Current value (from the default) = false - From //chromecast/chromecast.gni:106 + From //device/vr/buildflags/buildflags.gni:19 enable_cast_audio_renderer Current value (from the default) = false - From //build/config/chromecast_build.gni:38 + From //build/config/cast.gni:24 True to enable the cast audio renderer. TODO(crbug.com/1293520): Remove this buildflag. -enable_cast_media_runtime - Current value (from the default) = false - From //chromecast/chromecast.gni:144 - - True to link in alternate build targets for the Cast Media Runtime. - enable_cast_receiver Current value (from the default) = false - From //build/config/chromecast_build.gni:47 + From //build/config/cast.gni:42 Set this true for a Chromecast build. Chromecast builds are supported on Linux, Android, ChromeOS, and Fuchsia. - - During the migration from is_chromecast, this must be set to the same value - as is_chromecast. enable_cast_renderer Current value (from the default) = false - From //build/config/chromecast_build.gni:62 + From //build/config/cast.gni:51 enable_cdm_host_verification Current value (from the default) = false - From //media/media_options.gni:167 + From //media/media_options.gni:240 enable_cdm_storage_id Current value (from the default) = false - From //media/media_options.gni:171 + From //media/media_options.gni:245 Enable Storage ID which is used by CDMs. This is only available with chrome branding, but may be overridden by other embedders. enable_cet_shadow_stack Current value (from the default) = true - From //build/config/compiler/compiler.gni:131 + From //build/config/compiler/compiler.gni:135 Mark binaries as compatible with Shadow Stack of Control-flow Enforcement Technology (CET). If Windows version and hardware supports the feature and @@ -1321,53 +1549,57 @@ enable_cet_shadow_stack performed as mitigation against Return-oriented programming (ROP). https://chromium.googlesource.com/chromium/src/+/main/docs/design/sandbox.md#cet-shadow-stack +enable_check_raw_ptr_fields + Current value (from the default) = true + From //build/config/clang/clang.gni:19 + +enable_check_raw_ref_fields + Current value (from the default) = true + From //build/config/clang/clang.gni:26 + enable_chrome_notifications Current value (from the default) = true - From //chrome/common/features.gni:46 + From //chrome/common/features.gni:53 Enables usage of notifications via Chrome's MessageCenter. -enable_chromecast_extensions +enable_chromium_prelude Current value (from the default) = true - From //chromecast/chromecast.gni:191 + From //build/config/rust.gni:44 -enable_chromecast_webui - Current value (from the default) = true - From //chromecast/chromecast.gni:44 - - If true, Chromecast WebUI resources are included in a build. - TODO(antz): default to false for audio-only builds, might need further - clean up (b/27119303) - -enable_chromium_runtime_cast_renderer - Current value (from the default) = false - From //chromecast/chromecast.gni:141 - - True to use the Chromium runtime for cast rendering. - -enable_chromium_updater - Current value (from the default) = false - From //chrome/browser/buildflags.gni:17 - - Chromium Updater is a cross-platform updater for desktop clients built using - Chromium code and tools. Code is in //chrome/updater. The design doc is - located at http://bit.ly/chromium-updater. Chrome is currently installed and - updated with proprietary updater (Omaha & Keystone). This build flag allows - integration with the open source, cross-platform Chromium updater. - TODO(crbug.com/1054060) + The chromium prelude crate provides the `chromium::import!` macro which + is needed to depend on first-party rust libraries. Third-party libraries + are specified with cargo_crate and do not get imported through this macro. + + The macro requires //third_party/rust for syn, quote, and proc_macro2. + Downstream projects that want to use //build for the rust GN templates but + don't want to enable the chromium prelude can disable it here, and should + specify a globally unique `crate_name` in their rust library GN rules + instead. Note that using a `crate_name` is strongly discouraged inside + Chromium, and is also discouraged for downstream projects when possible. enable_click_to_call Current value (from the default) = true - From //chrome/common/features.gni:49 + From //chrome/common/features.gni:56 Disable Click to Call on Fuchsia. -enable_color_manager - Current value (from the default) = false - From //components/exo/buildflags.gni:11 +enable_component_updater + Current value (from the default) = true + From //chrome/common/features.gni:60 - If true, enables zcr_color_manager_v1. This is a temporary flag meant to - guard an in-progress implementation, to be replaced by a feature flag. + Whether to enable the component updater. Code is in + //components/component_updater. + +enable_compose + Current value (from the default) = true + From //components/compose/features.gni:7 + + Whether Compose is enabled in the build. + +enable_concurrent_basic_print_dialogs + Current value (from the default) = false + From //printing/buildflags/buildflags.gni:55 enable_cros_libassistant Current value (from the default) = false @@ -1376,26 +1608,54 @@ enable_cros_libassistant Enable assistant implementation based on libassistant. enable_cros_media_app - Current value = false - From //out/thorium/args.gn:34 - Overridden from the default = false + Current value (from the default) = false From //ash/webui/media_app_ui/media_app_ui.gni:7 Whether to enable the "real" ChromeOS Media App. When false, a mock app is bundled for testing integration points. +enable_cxx + Current value (from the default) = true + From //build/config/rust.gni:32 + + The CXX tool is in //third_party/rust which is not shared with downstream + projects yet. So they need to copy the required dependencies and GN files + into their project to enable CXX there. + enable_dangling_raw_ptr_checks Current value (from the default) = false - From //base/allocator/allocator.gni:108 + From //base/allocator/partition_allocator/partition_alloc.gni:199 + +enable_dangling_raw_ptr_feature_flag + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:207 + + Enable the feature flag required to check for dangling pointers. That is to + say `PartitionAllocDanglingPtr`. + + This is meant to be used primarily on bots. It is much easier to override + the feature flags using a binary flag instead of updating multiple bots's + scripts to pass command line arguments. + +enable_dangling_raw_ptr_perf_experiment + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:217 + + Enables the dangling raw_ptr checks feature for the performance experiment. + Not every dangling pointers have been fixed or annotated yet. To avoid + accounting for the cost of calling the PA's embedder's callbacks when a + dangling pointer has been detected, this simulates the raw_ptr to be + allowed to dangle. + + This flag is temporary, and isn't used by PA embedders, so it doesn't need + to go through build_overrides enable_dav1d_decoder Current value (from the default) = true - From //media/media_options.gni:73 + From //media/media_options.gni:108 enable_discovery - Current value = true - From //out/thorium/args.gn:33 - Overridden from the default = false + Current value (from the default) = false From //chrome/browser/sharing/buildflags.gni:6 enable_downgrade_processing @@ -1412,7 +1672,7 @@ enable_downstream_media_tests in public chromium checkouts. enable_dsyms - Current value (from the default) = true + Current value (from the default) = false From //build/config/apple/symbols.gni:17 Produce dSYM files for targets that are configured to do so. dSYM @@ -1422,21 +1682,20 @@ enable_dsyms generated. enable_expensive_dchecks - Current value (from the default) = false - From //build/config/dcheck_always_on.gni:30 - - Set to false to disable EXPENSIVE_DCHECK()s. + Current value (from the default) = true + From //build/config/dcheck_always_on.gni:33 enable_extensions Current value (from the default) = true - From //extensions/buildflags/buildflags.gni:6 + From //extensions/buildflags/buildflags.gni:8 -enable_external_mojo_services - Current value (from the default) = false - From //chromecast/chromecast.gni:113 +enable_extractors + Current value (from the default) = true + From //chrome/services/file_util/public/features.gni:11 - Set to true to enable external Mojo services to communicate with services - within cast_shell. + Whether the file_util service supports .TAR.XZ and .TAR file extraction. + Currently only used by imageWriterPrivate extension API, so only enabled + when Extensions are enabled. enable_fake_assistant_microphone Current value (from the default) = false @@ -1451,17 +1710,9 @@ enable_feed_v2 Whether Feed is enabled in the build. -enable_feed_v2_modern - Current value (from the default) = true - From //components/feed/features.gni:10 - - Whether to include Feed in ChromeModern builds. - enable_ffmpeg_video_decoders - Current value = true - From //out/thorium/args.gn:37 - Overridden from the default = true - From //media/media_options.gni:152 + Current value (from the default) = true + From //media/media_options.gni:224 On Android, FFMpeg is built without video decoders by default. This flag gives the option to override that decision in case there are no @@ -1470,7 +1721,7 @@ enable_ffmpeg_video_decoders enable_full_stack_frames_for_profiling Current value (from the default) = false - From //build/config/compiler/BUILD.gn:67 + From //build/config/compiler/BUILD.gn:69 Compile in such a way as to make it possible for the profiler to unwind full stack frames. Setting this flag has a large effect on the performance of the @@ -1478,16 +1729,13 @@ enable_full_stack_frames_for_profiling information to analyze. Requires profiling to be set to true. -enable_google_benchmarks +enable_fuzztest_fuzz Current value (from the default) = false - From //third_party/google_benchmark/buildconfig.gni:11 - - Google Benchmark is not checked out by default, because it is only used by - a few specialized benchmarks that most developers do not interact with. + From //build/config/sanitizers/sanitizers.gni:140 enable_gpu_client_logging Current value (from the default) = false - From //gpu/command_buffer/client/BUILD.gn:13 + From //gpu/command_buffer/client/BUILD.gn:14 Enable GPU client logging without DCHECK being on. @@ -1498,56 +1746,46 @@ enable_gpu_service_logging Whether service side logging (actual calls into the GL driver) is enabled or not. -enable_gvr_services - Current value (from the default) = false - From //device/vr/buildflags/buildflags.gni:11 - enable_gwp_asan Current value (from the default) = true - From //components/gwp_asan/buildflags/buildflags.gni:25 + From //components/gwp_asan/buildflags/buildflags.gni:27 Convenience definition enable_gwp_asan_malloc - Current value (from the default) = true - From //components/gwp_asan/buildflags/buildflags.gni:19 + Current value (from the default) = false + From //components/gwp_asan/buildflags/buildflags.gni:21 Is GWP-ASan malloc/PartitionAlloc hooking enabled for chrome/ on a given platform. enable_gwp_asan_partitionalloc Current value (from the default) = true - From //components/gwp_asan/buildflags/buildflags.gni:20 + From //components/gwp_asan/buildflags/buildflags.gni:22 enable_hangout_services_extension - Current value = true - From //out/thorium/args.gn:46 - Overridden from the default = false - From //chrome/common/features.gni:53 + Current value (from the default) = false + From //chrome/common/features.gni:64 Hangout services is an extension that adds extra features to Hangouts. It is enableable separately to facilitate testing. +enable_hevc_parser_and_hw_decoder + Current value (from the default) = false + From //media/media_options.gni:121 + +enable_hidpi + Current value (from the default) = true + From //ui/base/ui_features.gni:32 + enable_hls_demuxer - Current value = true - From //out/thorium/args.gn:31 - Overridden from the default = false - From //media/media_options.gni:80 + Current value (from the default) = false + From //media/media_options.gni:115 Enable HLS manifest parser and demuxer. -enable_hls_sample_aes - Current value = true - From //out/thorium/args.gn:30 - Overridden from the default = false - From //media/media_options.gni:66 - - Enable HLS with SAMPLE-AES decryption. - enable_ink - Current value = false - From //out/thorium/args.gn:32 - Overridden from the default = false + Current value (from the default) = false From //pdf/features.gni:18 Enable ink libraries provided by the ChromeOS media app dependency. @@ -1558,19 +1796,21 @@ enable_ink enable_ipc_fuzzer Current value (from the default) = false - From //tools/ipc_fuzzer/ipc_fuzzer.gni:15 + From //tools/ipc_fuzzer/ipc_fuzzer.gni:14 + + Build IPC fuzzer by default if it's a supported configuration. For + sanitizer builds, this needs to be enabled explicitly as they can be slow + (especially MSan). enable_ipc_logging - Current value (from the default) = false + Current value (from the default) = true From //ipc/features.gni:7 Enabling debug builds automatically sets enable_ipc_logging to true. enable_iterator_debugging - Current value = false - From //out/thorium/args.gn:14 - Overridden from the default = false - From //build/config/c++/c++.gni:41 + Current value (from the default) = false + From //build/config/c++/c++.gni:40 When set, enables libc++ debug mode with iterator debugging. @@ -1584,39 +1824,28 @@ enable_iterator_debugging enable_js_protobuf Current value (from the default) = true - From //third_party/protobuf/proto_library.gni:145 + From //third_party/protobuf/proto_library.gni:146 Allows subprojects to omit javascript dependencies (e.g.) closure_compiler and google-closure-library. -enable_js_type_check - Current value (from the default) = true - From //third_party/closure_compiler/compile_js.gni:11 - - Enable closure type-checking for Chrome's web technology-based UI. This - enables the webui_closure_compile target which does a no-op without this - flag enabled. Requires Java. - -enable_jxl_decoder - Current value (from the default) = true - From //third_party/blink/public/public_features.gni:9 - - If true, adds support for JPEG XL image decoding. - -enable_keystone_registration_framework - Current value (from the default) = true - From //chrome/BUILD.gn:60 - - Indicates whether keystone registration framework should be enabled (see - action("keystone_registration_framework") below). There are some tests - where we'd like for it to be disabled. (https://crbug.com/909080) - enable_kythe_annotations Current value (from the default) = false From //build/toolchain/kythe.gni:10 Enables Kythe annotations necessary to build cross references. +enable_lens_desktop + Current value (from the default) = true + From //components/lens/features.gni:15 + + Includes Lens features in the build. toolkit_views is used to ensure Lens + features are only included on Desktop devices running Chromium + +enable_lens_desktop_google_branded_features + Current value (from the default) = false + From //components/lens/features.gni:25 + enable_libaom Current value (from the default) = true From //third_party/libaom/options.gni:7 @@ -1629,41 +1858,30 @@ enable_libaom_decoder To be deprecated soon. -enable_libgav1_decoder - Current value (from the default) = false - From //third_party/libgav1/options.gni:12 - enable_library_cdms Current value (from the default) = true - From //media/media_options.gni:159 + From //media/media_options.gni:232 Enables the use of library CDMs that implements the interface defined at media/cdm/api/content_decryption_module.h. If true, the actually library CDM will be hosted in the mojo CDM service running in the CDM (utility) process. + Used for all desktop platforms. enable_linux_installer Current value (from the default) = false - From //chrome/installer/BUILD.gn:11 - -enable_location_source - Current value (from the default) = true - From //base/BUILD.gn:52 - - Indicates if the Location object contains the source code information - (file, function, line). False means only the program counter (and currently - file name) is saved. + From //chrome/installer/installers.gni:12 enable_log_error_not_reached Current value (from the default) = false - From //build/config/logging.gni:12 + From //build/config/logging.gni:11 enable_logging_override Current value (from the default) = false - From //media/media_options.gni:71 + From //media/media_options.gni:106 Enable logging override, e.g. enable DVLOGs through level 2 at build time. - On Chromecast, these are logged as INFO. - On Fuchsia, these are logged as VLOGs. + On Cast devices, these are logged as INFO. + When enabled on Fuchsia, these are logged as VLOGs. enable_maldoca Current value (from the default) = true @@ -1673,34 +1891,24 @@ enable_maldoca enable_mdns Current value (from the default) = true - From //net/features.gni:25 + From //net/features.gni:30 Multicast DNS. enable_media_drm_storage - Current value = true - From //out/thorium/args.gn:44 - Overridden from the default = false - From //media/media_options.gni:77 + Current value (from the default) = false + From //media/media_options.gni:112 Enable browser managed persistent metadata storage for EME persistent session and persistent usage record session. enable_media_foundation_widevine_cdm Current value (from the default) = false - From //third_party/widevine/cdm/widevine.gni:51 - -enable_media_overlay - Current value = true - From //out/thorium/args.gn:45 - Overridden from the default = false - From //chromecast/chromecast.gni:134 - - Set to true to enable media overlay for volume bar, etc. + From //third_party/widevine/cdm/widevine.gni:50 enable_media_remoting Current value (from the default) = true - From //media/media_options.gni:254 + From //media/media_options.gni:333 This switch defines whether the Media Remoting implementation will be built. When enabled, media is allowed to be renderer and played back on remote @@ -1708,7 +1916,7 @@ enable_media_remoting enable_media_remoting_rpc Current value (from the default) = true - From //media/media_options.gni:260 + From //media/media_options.gni:339 Media Remoting RPC is disabled on Android since it's unused but increases the native binary size by ~70Kb. @@ -1717,43 +1925,40 @@ enable_message_center Current value (from the default) = true From //ui/base/ui_features.gni:30 +enable_ml_internal + Current value (from the default) = false + From //services/on_device_model/on_device_model.gni:10 + enable_modular_updater Current value (from the default) = false - From //build/config/chromecast_build.gni:33 + From //build/config/cast.gni:19 Set true to enable modular_updater. enable_mojo_tracing Current value (from the default) = false - From //mojo/public/cpp/bindings/BUILD.gn:12 - -enable_mojom_closure_compile - Current value (from the default) = true - From //mojo/public/tools/bindings/mojom.gni:44 - - Enables Closure compilation of generated JS lite bindings. In environments - where compilation is supported, any mojom target "foo" will also have a - corresponding "foo_js_library_for_compile" target generated. + From //mojo/public/cpp/bindings/BUILD.gn:13 enable_mojom_fuzzer Current value (from the default) = false - From //mojo/public/tools/bindings/mojom.gni:51 + From //mojo/public/tools/bindings/mojom.gni:47 Enables generating javascript fuzzing-related code and the bindings for the MojoLPM fuzzer targets. Off by default. enable_mojom_message_id_scrambling - Current value (from the default) = true - From //mojo/public/tools/bindings/mojom.gni:39 + Current value (from the default) = false + From //mojo/public/tools/bindings/mojom.gni:43 Controls message ID scrambling behavior. If |true|, message IDs are scrambled (i.e. randomized based on the contents of //chrome/VERSION) on - non-Chrome OS desktop platforms. Set to |false| to disable message ID - scrambling on all platforms. + non-Chrome OS desktop platforms. Enabled on official builds by default. + Set to |true| to enable message ID scrambling on a specific build. + See also `enable_scrambled_message_ids` below for more details. enable_mojom_typemapping Current value (from the default) = true - From //mojo/public/tools/bindings/mojom.gni:33 + From //mojo/public/tools/bindings/mojom.gni:36 Indicates whether typemapping should be supported in this build configuration. This may be disabled when building external projects which @@ -1765,10 +1970,8 @@ enable_mojom_typemapping any Chromium build configuration. enable_mse_mpeg2ts_stream_parser - Current value = true - From //out/thorium/args.gn:56 - Overridden from the default = false - From //media/media_options.gni:58 + Current value (from the default) = false + From //media/media_options.gni:144 enable_mutex_priority_inheritance Current value (from the default) = false @@ -1779,16 +1982,16 @@ enable_mutex_priority_inheritance platform requirements to safely enable priority inheritance. enable_nacl - Current value = false - From //out/thorium/args.gn:25 - Overridden from the default = true - From //components/nacl/features.gni:14 + Current value (from the default) = false + From //components/nacl/features.gni:27 + + Enables Native Client support. + + NaCl is only supported on ChromeOS. enable_nocompile_tests Current value (from the default) = true - From //build/nocompile.gni:68 - - TODO(crbug.com/105388): make sure no-compile test is not flaky. + From //build/nocompile.gni:58 enable_offline_pages Current value (from the default) = false @@ -1804,18 +2007,31 @@ enable_offline_pages_harness This enables test API for locally-built harness which is used for quality evaluations. Requires setting this variable manually at local environment. +enable_oop_basic_print_dialog + Current value (from the default) = true + From //printing/buildflags/buildflags.gni:62 + + Enables the printing system dialog being invoked from out-of-process for + platforms that support printing, have a system dialog, and which can invoke + that system print dialog from a process other than the browser process. + TODO(crbug.com/809738) Determine if Linux Wayland can be made to have a + system dialog be modal against an application window in the browser process. + enable_oop_printing Current value (from the default) = true - From //printing/buildflags/buildflags.gni:35 + From //printing/buildflags/buildflags.gni:47 - Enables out-of-process printing. While this definition matches - `enable_print_preview`, do not base this definition upon that. This - feature could still be appropriate for some build configurations which - explicitly disable print preview. + Enables out-of-process printing. Do not have this definition just be + based on `enable_print_preview`; this feature could still be appropriate + for some build configurations which explicitly disable print preview. + +enable_oop_printing_no_oop_basic_print_dialog + Current value (from the default) = false + From //printing/buildflags/buildflags.gni:68 enable_opengl_apitrace Current value (from the default) = false - From //build/config/ozone.gni:35 + From //build/config/ozone.gni:34 Enable explicit apitrace (https://apitrace.github.io) loading. This requires apitrace library with additional bindings. @@ -1825,13 +2041,16 @@ enable_opengl_apitrace Trace will be saved to /tmp/gltrace.dat file by default. You can override it at run time with TRACE_FILE= environment variable. -enable_openscreen +enable_openscreen_protocol Current value (from the default) = false - From //chrome/browser/media/router/features.gni:14 + From //chrome/browser/media/router/BUILD.gn:12 + + Set to true to build code that supports the Open Screen Protocol. + OSP is experimental and not yet feature-complete. enable_openxr - Current value (from the default) = false - From //device/vr/buildflags/buildflags.gni:18 + Current value (from the default) = true + From //device/vr/buildflags/buildflags.gni:27 To build with OpenXR support, the OpenXR Loader needs to be pulled to third_party/openxr. @@ -1841,7 +2060,7 @@ enable_paint_preview From //build/config/buildflags_paint_preview.gni:15 Enable basic paint preview support. Does not work on iOS. Should - not be included with Chromecast. + not be included with Chromecast hardware devices. Used by //components/paint_preview and //third_party/harfbuzz-ng. TODO(crbug.com/webrtc/11223) Move back this file in //components/paint_preview/ once WebRTC doesn't roll harfbuzz-ng anymore, @@ -1859,30 +2078,52 @@ enable_perfetto_fuzzers Current value (from the default) = false From //third_party/perfetto/gn/perfetto.gni:198 +enable_perfetto_grpc + Current value (from the default) = false + From //third_party/perfetto/gn/perfetto.gni:322 + + Enables gRPC in the Perfetto codebase. gRPC significantly increases build + times and the general footprint of Perfetto. As it only required for + BigTrace and even then only to build the final ready-to-ship binary, don't + enable this by default. + enable_perfetto_heapprofd Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:158 + From //third_party/perfetto/gn/perfetto.gni:157 enable_perfetto_integration_tests Current value (from the default) = false From //third_party/perfetto/gn/perfetto.gni:193 enable_perfetto_ipc - Current value (from the default) = true + Current value (from the default) = false From //third_party/perfetto/gn/perfetto.gni:150 enable_perfetto_llvm_demangle Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:298 + From //third_party/perfetto/gn/perfetto.gni:316 enable_perfetto_platform_services Current value (from the default) = false From //third_party/perfetto/gn/perfetto.gni:141 +enable_perfetto_site + Current value (from the default) = false + From //third_party/perfetto/gn/perfetto.gni:339 + + Allows to build the perfetto.dev website. + WARNING: if this flag is enabled, the build performs globbing at generation + time. Incremental builds that add/remove files will not be supported without + rerunning gn. + enable_perfetto_stderr_crash_dump Current value (from the default) = false From //third_party/perfetto/gn/perfetto.gni:235 +enable_perfetto_system_consumer + Current value (from the default) = false + From //third_party/perfetto/gn/perfetto.gni:251 + enable_perfetto_tools Current value (from the default) = false From //third_party/perfetto/gn/perfetto.gni:187 @@ -1893,35 +2134,35 @@ enable_perfetto_trace_processor enable_perfetto_trace_processor_httpd Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:285 + From //third_party/perfetto/gn/perfetto.gni:302 enable_perfetto_trace_processor_json Current value (from the default) = true - From //third_party/perfetto/gn/perfetto.gni:280 + From //third_party/perfetto/gn/perfetto.gni:295 enable_perfetto_trace_processor_linenoise Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:274 + From //third_party/perfetto/gn/perfetto.gni:289 enable_perfetto_trace_processor_percentile Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:270 + From //third_party/perfetto/gn/perfetto.gni:284 enable_perfetto_trace_processor_sqlite Current value (from the default) = true - From //third_party/perfetto/gn/perfetto.gni:265 + From //third_party/perfetto/gn/perfetto.gni:279 enable_perfetto_traceconv Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:304 + From //third_party/perfetto/gn/perfetto.gni:328 enable_perfetto_traced_perf Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:166 + From //third_party/perfetto/gn/perfetto.gni:165 enable_perfetto_traced_probes Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:257 + From //third_party/perfetto/gn/perfetto.gni:267 The traced_probes daemon is very Linux-specific, as it depends on ftrace and various /proc interfaces. There is no point making its code platform-neutral @@ -1931,15 +2172,16 @@ enable_perfetto_traced_probes code happens to build cleanly and for now the mainteinance cost on Mac is extremely low. -enable_perfetto_tracing +enable_perfetto_traced_relay Current value (from the default) = false - From //chromecast/chromecast.gni:119 + From //third_party/perfetto/gn/perfetto.gni:271 - Support using system perfetto tracing + The relay service is enabled when platform services are enabled. + TODO(chinglinyu) check if we can enable on Windows. enable_perfetto_ui Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:308 + From //third_party/perfetto/gn/perfetto.gni:332 enable_perfetto_unittests Current value (from the default) = true @@ -1955,80 +2197,132 @@ enable_perfetto_watchdog enable_perfetto_x64_cpu_opt Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:241 + From //third_party/perfetto/gn/perfetto.gni:243 enable_perfetto_zlib + Current value (from the default) = true + From //third_party/perfetto/gn/perfetto.gni:310 + +enable_pkeys Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:291 + From //base/allocator/partition_allocator/partition_alloc.gni:344 enable_platform_ac3_eac3_audio - Current value = true - From //out/thorium/args.gn:53 - Overridden from the default = false - From //media/media_options.gni:49 + Current value (from the default) = false + From //media/media_options.gni:71 - Enables AC3/EAC3 audio demuxing. This is enabled only on Chromecast, since - it only provides demuxing, and is only useful for AC3/EAC3 audio - pass-through to HDMI sink on Chromecast. + Enables AC3/EAC3 audio handling in chromium. This includes demuxing, + on-device decoding and bitstream passthrough as supported by device. + +enable_platform_ac4_audio + Current value (from the default) = false + From //media/media_options.gni:75 + + Enables AC4 audio handling in chromium. This includes demuxing, + on-device decoding and bitstream passthrough as supported by device. enable_platform_dolby_vision - Current value = true - From //out/thorium/args.gn:54 - Overridden from the default = false - From //media/media_options.gni:63 - - Enable Dolby Vision demuxing. Enable by default for Chromecast. Actual - decoding must be provided by the platform. Note some Dolby Vision profiles - which are encoded using HEVC require |enable_platform_hevc| to be enabled. + Current value (from the default) = false + From //media/media_options.gni:94 enable_platform_dts_audio Current value (from the default) = false - From //media/media_options.gni:55 + From //media/media_options.gni:81 Enables DTS/DTSX audio handling in chromium. This includes demuxing, on-device decoding and bitstream passthrough as supported by device. -enable_platform_hevc - Current value = true - From //out/thorium/args.gn:51 - Overridden from the default = true - From //media/media_options.gni:99 +enable_platform_encrypted_dolby_vision + Current value (from the default) = false + From //media/media_options.gni:101 -enable_platform_hevc_decoding - Current value = true - From //out/thorium/args.gn:52 - Overridden from the default = false - From //media/media_options.gni:86 + Enable platform support of encrypted Dolby Vision. The actual support + depends on platform capability and is controlled by the run time feature + kPlatformEncryptedDolbyVision. Clear Dolby Vision is not supported by + default, unless overwritten by the run time feature + kAllowClearDolbyVisionInMseWhenPlatformEncryptedDvEnabled. + +enable_platform_hevc + Current value (from the default) = false + From //media/media_options.gni:140 + +enable_platform_iamf_audio + Current value (from the default) = false + From //media/media_options.gni:85 + + Enables IAMF audio handling in chromium. This includes demuxing, + on-device decoding and bitstream passthrough as supported by device. enable_platform_mpeg_h_audio - Current value = true - From //out/thorium/args.gn:55 - Overridden from the default = false - From //media/media_options.gni:51 - -enable_playready Current value (from the default) = false - From //chromecast/chromecast.gni:156 + From //media/media_options.gni:77 - Use Playready CDMs for internal non-desktop builds. +enable_platform_vvc + Current value (from the default) = false + From //media/media_options.gni:126 + + Enable inclusion of VVC/H.266 parser/demuxer, and also enable VVC/H.266 decoding + with hardware acceleration provided by platform. Disabled by default for all builds. enable_plugins Current value (from the default) = true - From //ppapi/buildflags/buildflags.gni:10 + From //ppapi/buildflags/buildflags.gni:15 + + Enables basic plugin support. This enables support for registering and + looking up plugins, but does not include support for loading plugins using a + specific technology like Pepper. + + In particular, the PDF viewer (enable_pdf) requires plugin support, but it + does not require Pepper support (enable_ppapi). + +enable_pointer_arithmetic_trait_check + Current value (from the default) = true + From //base/allocator/partition_allocator/partition_alloc.gni:124 + + Enables a compile-time check that all raw_ptrs to which arithmetic + operations are to be applied are annotated with the AllowPtrArithmetic + trait, + +enable_pointer_compression_support + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:115 + + Introduces pointer compression support in PA. These are 4-byte + pointers that can point within the core pools (regular and BRP). + + This is effective only for memory allocated from PartitionAlloc, so it is + recommended to enable PA-E above, but isn't strictly necessary. Embedders + can create and use PA partitions explicitly. + +enable_pointer_subtraction_check + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:119 + + Enables a bounds check when two pointers (at least one being raw_ptr) are + subtracted (if supported by the underlying implementation). + +enable_ppapi + Current value (from the default) = false + From //ppapi/buildflags/buildflags.gni:22 + + Enables Pepper API (PPAPI) plugin support. + The only remaining PPAPI plugin supported is NaCl and if is disabled + we can disable PPAPI. enable_precompiled_headers - Current value = false - From //out/thorium/args.gn:27 - Overridden from the default = false - From //build/config/pch.gni:14 + Current value (from the default) = true + From //build/config/pch.gni:15 enable_print_content_analysis Current value (from the default) = true - From //printing/buildflags/buildflags.gni:40 + From //printing/buildflags/buildflags.gni:51 + + Enable snapshotting a page when printing for its content to be analyzed for + sensitive content by enterprise users. enable_print_media_l10n Current value (from the default) = false - From //chrome/common/printing/BUILD.gn:15 + From //chrome/common/printing/BUILD.gn:16 Enable print media localization only on the platforms that support CUPS IPP (ChromeOS and macOS for now). The localization expects media vendor IDs @@ -2036,23 +2330,35 @@ enable_print_media_l10n enable_print_preview Current value (from the default) = true - From //printing/buildflags/buildflags.gni:21 + From //printing/buildflags/buildflags.gni:30 Enables printing with print preview. Print preview requires PDF per //printing/BUILD.gn. The is_android condition is currently redundant but left for clarity. +enable_printing + Current value (from the default) = true + From //printing/buildflags/buildflags.gni:14 + + Enables printing support. + +enable_printing_tests + Current value (from the default) = false + From //printing/buildflags/buildflags.gni:19 + + TODO(crbug.com/1432082): iOS blink port only enables printing_tests to run + unit tests and web tests for now because the port does not enable the + printing feature yet. + enable_profiling - Current value = false - From //out/thorium/args.gn:17 - Overridden from the default = false + Current value (from the default) = false From //build/config/compiler/compiler.gni:69 Compile in such a way as to enable profiling of the generated code. For example, don't omit the frame pointer and leave in symbols. enable_pseudolocales - Current value (from the default) = false + Current value (from the default) = true From //build/config/locales.gni:243 We want to give pseudolocales to everyone except end-users (devs & QA). @@ -2060,13 +2366,13 @@ enable_pseudolocales enable_qr_print Current value (from the default) = false - From //components/qr_code_generator/BUILD.gn:7 + From //components/qr_code_generator/BUILD.gn:11 Enables building a development / debugging binary. enable_random_mojo_delays Current value (from the default) = false - From //mojo/public/cpp/bindings/BUILD.gn:18 + From //mojo/public/cpp/bindings/BUILD.gn:19 enable_random_mojo_delays starts a task runner that periodically pauses random Mojo bindings and later resumes them, in order to test whether parts @@ -2082,71 +2388,128 @@ enable_reading_list enable_remoting Current value (from the default) = true - From //remoting/remoting_enable.gni:12 - -enable_remoting_for_cwr - Current value (from the default) = false - From //chromecast/chromecast.gni:148 - - True to use the remoting implementation of cast streaming for the cast web - runtime (as opposed to the mirroring-only implementation). + From //remoting/remoting_enable.gni:13 enable_reporting Current value (from the default) = true - From //net/features.gni:28 + From //net/features.gni:33 Reporting not used on iOS. enable_resource_allowlist_generation - Current value = false - From //out/thorium/args.gn:16 - Overridden from the default = true - From //build/toolchain/gcc_toolchain.gni:28 + Current value (from the default) = false + From //build/toolchain/gcc_toolchain.gni:29 + +enable_rlz + Current value (from the default) = false + From //rlz/buildflags/buildflags.gni:13 enable_rust - Current value (from the default) = false - From //build/config/rust.gni:17 + Current value (from the default) = true + From //build/config/rust.gni:27 - Whether to allow Rust code to be part of the Chromium *build process*. - This can be used to create Rust test binaries, even if the flag below - is false. + Rust is available in the Chromium build but 3p repos that use //build may + not use Rust and thus won't want to depend on having the Rust toolchain + present, so this defaults to off in those cases. + + Chromium-based projects that are built for for architectures Chrome does not + support may need to disable this as well, though they may need to replace + code with C/C++ to get a functional product. + +enable_rust_base_conversions + Current value (from the default) = true + From //build/config/rust.gni:109 + + Conversions between Rust types and C++ types. + +enable_rust_boringssl + Current value (from the default) = true + From //build/config/rust.gni:124 + + Enable Boringssl Rust bindings generation + +enable_rust_crash + Current value (from the default) = true + From //build/config/rust.gni:115 + + Support for chrome://crash-rust to check crash dump collection works. + +enable_rust_gtest_interop + Current value (from the default) = true + From //build/config/rust.gni:121 + + Rust gtest interop. + +enable_rust_json + Current value (from the default) = false + From //build/config/rust.gni:112 + + The base::JSONReader implementation. Requires base conversions. + +enable_rust_mojo + Current value (from the default) = false + From //build/config/rust.gni:118 + + Support for Rust mojo bindings. enable_screen_ai_service Current value (from the default) = true - From //components/services/screen_ai/buildflags/features.gni:11 + From //components/services/screen_ai/buildflags/features.gni:10 + + Screen AI service is only supported on desktop platforms. enable_segment_heap Current value (from the default) = false From //build/config/win/manifest.gni:46 +enable_server_based_recognition + Current value (from the default) = false + From //chrome/services/speech/buildflags/buildflags.gni:28 + + Whether the server based speech recognition recognizer is available. + Currently only available in official builds for ash ChromeOS. + enable_service_discovery Current value (from the default) = true - From //chrome/common/features.gni:55 + From //chrome/common/features.gni:66 enable_session_service Current value (from the default) = true - From //chrome/common/features.gni:59 + From //chrome/common/features.gni:70 Enables use of the session service, which is enabled by default. Android stores them separately on the Java side. -enable_skia_dawn_gtests +enable_shadow_call_stack Current value (from the default) = false - From //skia/features.gni:13 + From //build/config/compiler/BUILD.gn:195 - Enable gtests using SkiaRenderer Dawn. - TODO(rivr): Remove this and enable the tests by default once a software - path for D3D12 is available. + Enable ShadowCallStack for compiled binaries. SCS stores a pointer to a + shadow call stack in register x18. Hence, x18 must not be used by the OS + or libraries. We assume that to be the case for high end Android + configurations. For more details see + https://clang.llvm.org/docs/ShadowCallStack.html -enable_skia_wuffs_gif - Current value (from the default) = true - From //skia/BUILD.gn:30 - -enable_soda +enable_shadow_metadata Current value (from the default) = false - From //components/soda/buildflags.gni:7 + From //base/allocator/partition_allocator/partition_alloc.gni:228 + + Shadow metadata is still under development and only supports Linux + for now. + +enable_skia_graphite_gtests + Current value (from the default) = false + From //skia/features.gni:21 + + Enable gtests using SkiaRenderer on Skia Graphite. + +enable_soda_integration_tests + Current value (from the default) = false + From //components/soda/buildflags.gni:9 Used to enable the Speech On-Device API (SODA) in unit and browser tests. + This affects production code on some platforms and should not be enabled in + official builds. enable_speech_service Current value (from the default) = true @@ -2154,39 +2517,35 @@ enable_speech_service Whether the browser provides a speech recognition service (//media/mojo/mojom/speech_recognition_service.mojom) to the renderer. - TODO(b:223493879): Add support for speech to LaCrOS via go/crosapi and - change `is_chromeos_ash` to `is_chromeos` below. + TODO(crbug.com/1378804) Enable on Fuchsia. enable_stack_trace_line_numbers Current value (from the default) = false - From //build/config/logging.gni:13 + From //build/config/logging.gni:12 enable_stripping - Current value = true - From //out/thorium/args.gn:8 - Overridden from the default = true + Current value (from the default) = false From //build/config/apple/symbols.gni:24 Strip symbols from linked targets by default. If this is enabled, the - //build/config/mac:strip_all config will be applied to all linked targets. + //build/config/apple:strip_all config will be applied to all linked targets. If custom stripping parameters are required, remove that config from a linked target and apply custom -Wcrl,strip flags. See //build/toolchain/apple/linker_driver.py for more information. enable_supervised_users - Current value (from the default) = false - From //chrome/common/features.gni:63 + Current value (from the default) = true + From //components/supervised_user/buildflags.gni:9 - Enables supervision for Family Link users. - Supervision is only supported on Chrome OS and Android. + Platforms which fully support supervision features: enable_swiftshader Current value (from the default) = true - From //ui/gl/features.gni:30 + From //ui/gl/features.gni:37 enable_swiftshader_vulkan Current value (from the default) = true - From //gpu/vulkan/features.gni:17 + From //gpu/vulkan/features.gni:16 Enable swiftshader vulkan. Disabling it can save build time, however --use-vulkan=swiftshader and some tests which use swiftshader vulkan will @@ -2194,104 +2553,119 @@ enable_swiftshader_vulkan enable_system_notifications Current value (from the default) = true - From //chrome/common/features.gni:67 - -enable_tagged_pdf - Current value (from the default) = true - From //printing/buildflags/buildflags.gni:45 - - Enables exporting to tagged PDF. + From //chrome/common/features.gni:74 enable_trace_logging + Current value (from the default) = true + From //third_party/openscreen/src/util/BUILD.gn:12 + + Enables trace logging in build. This is true by default, but may be disabled + for a slight performance increase. + +enable_update_notifications Current value (from the default) = false - From //third_party/openscreen/src/util/BUILD.gn:11 + From //chrome/browser/buildflags.gni:13 - Enables trace logging in build. This is true by default, unless - we are built against Chrome--we have no way to link their platform - implementation into our binaries so trace logging is not possible. + Detect updates and notify the user for Google Chrome across all platforms. + Chromium does not use an auto-updater. -enable_typescript_bindings +enable_updater Current value (from the default) = false - From //mojo/public/tools/bindings/mojom.gni:47 + From //chrome/browser/buildflags.gni:9 - Enables generating Typescript bindings and compiling them to JS bindings. + By default, only branded builds integrate with automatic updates. -enable_video_capture_service +enable_validating_command_decoder Current value (from the default) = false - From //chromecast/chromecast.gni:109 - - Set to true to enable video capture service for video input and output. - -enable_video_with_mixed_audio - Current value (from the default) = false - From //chromecast/chromecast.gni:83 - - Set to true to enable a CMA media backend that allows mixed audio to be - output with sync'd video. + From //ui/gl/features.gni:30 enable_vr - Current value = true - From //out/thorium/args.gn:50 - Overridden from the default = true - From //device/vr/buildflags/buildflags.gni:25 - - Enable VR device support whenever VR device SDK(s) are supported. - We enable VR on Linux even though VR features aren't usable because - the binary size impact is small and allows many VR tests to run on Linux + Current value (from the default) = true + From //device/vr/buildflags/buildflags.gni:35 enable_vulkan Current value (from the default) = true - From //gpu/vulkan/features.gni:12 + From //gpu/vulkan/features.gni:11 + + Enable experimental vulkan backend. enable_wayland_server Current value (from the default) = false - From //chrome/common/features.gni:70 + From //chrome/common/features.gni:77 Indicates if Wayland display server support is enabled. enable_websockets Current value (from the default) = true - From //net/features.gni:13 + From //net/features.gni:15 - WebSockets and socket stream code are not used on iOS and are optional in - cronet. + WebSockets and socket stream code are not used when blink is not used + and are optional in cronet. + +enable_webui_certificate_viewer + Current value (from the default) = true + From //chrome/common/features.gni:80 + + Enables the webui certificate viewer dialog. + +enable_webui_inline_sourcemaps + Current value (from the default) = false + From //ui/webui/webui_features.gni:19 + + Whether to inline source maps during build. Cannot be enabled when + `optimize_webui=true`. enable_webui_tab_strip - Current value = true - From //out/thorium/args.gn:21 - Overridden from the default = true - From //ui/webui/webui_features.gni:14 + Current value (from the default) = true + From //ui/webui/webui_features.gni:15 Enable the WebUI version of the browser's tab strip. enable_widevine - Current value = true - From //out/thorium/args.gn:42 - Overridden from the default = false + Current value (from the default) = false From //third_party/widevine/cdm/widevine.gni:15 Enables Widevine key system support. Enabled by default in Google Chrome, - on Android and Fuchsia platforms. + Google Chrome for Testing and Android. For Fuchsia, see crbug.com/1354347. Can be optionally enabled in Chromium on non-Android platforms. Please see //src/third_party/widevine/LICENSE file for details. -enable_wmax_tokens - Current value (from the default) = false - From //build/config/compiler/BUILD.gn:154 - -enable_xz_extractor +enterprise_client_certificates Current value (from the default) = true - From //chrome/services/file_util/public/features.gni:11 + From //components/enterprise/buildflags/buildflags.gni:26 - Whether the file_util service supports .xz file extraction. - Currently only used by imageWriterPrivate extension API, so only enabled - when Extensions are enabled. + Indicates support for client certificates provisioning. + +enterprise_cloud_content_analysis + Current value (from the default) = true + From //components/enterprise/buildflags/buildflags.gni:16 + +enterprise_content_analysis + Current value (from the default) = true + From //components/enterprise/buildflags/buildflags.gni:38 + +enterprise_data_controls + Current value (from the default) = true + From //components/enterprise/buildflags/buildflags.gni:23 + + Indicates support for Data Control rules. + +enterprise_local_content_analysis + Current value (from the default) = true + From //components/enterprise/buildflags/buildflags.gni:20 + + Indicates support for content analysis against a cloud agent for Enterprise + Connector policies. + +enterprise_watermark + Current value (from the default) = true + From //components/enterprise/buildflags/buildflags.gni:29 + + The watermark is currently implemented using the views framework exclude_unwind_tables - Current value = true - From //out/thorium/args.gn:12 - Overridden from the default = true - From //build/config/compiler/compiler.gni:120 + Current value (from the default) = false + From //build/config/compiler/compiler.gni:124 Exclude unwind tables by default for official builds as unwinding can be done from stack dumps produced by Crashpad at a later time "offline" in the @@ -2312,18 +2686,39 @@ extended_tracing_enabled Enable more trace events. Disabled by default due to binary size impact, but highly recommended for local development. +extra_sysroot_libs + Current value (from the default) = [] + From //build/config/rust.gni:90 + + Non-rlib libs provided in the toolchain sysroot. Usually this is empty, but + e.g. the Android Rust Toolchain provides a libunwind.a that rustc expects. + +fail_on_san_warnings + Current value (from the default) = false + From //build/config/sanitizers/sanitizers.gni:108 + + When true, sanitizer warnings will cause test case failures. + +fast_archive_compression + Current value (from the default) = true + From //chrome/installer/mini_installer/BUILD.gn:24 + + The Chrome archive is maximally compressed in official builds to reduce the + size of the installer. By default: non-official or component builds, build + modes targeting developers, use maximum-speed instead of maximum-compression + settings so as to provide quicker build-test cycles. Uncompressed archives + are not supported due to size constraints. + fatal_linker_warnings Current value (from the default) = true - From //build/config/compiler/BUILD.gn:75 + From //build/config/compiler/BUILD.gn:77 Enable fatal linker warnings. Building Chromium with certain versions of binutils can cause linker warning. ffmpeg_branding - Current value = "Chrome" - From //out/thorium/args.gn:36 - Overridden from the default = "Chromium" - From //third_party/ffmpeg/ffmpeg_options.gni:44 + Current value (from the default) = "Chromium" + From //third_party/ffmpeg/ffmpeg_options.gni:32 Controls whether we build the Chromium or Google Chrome version of FFmpeg. The Google Chrome version contains additional codecs. Typical values are @@ -2331,7 +2726,7 @@ ffmpeg_branding ffmpeg_use_unsafe_atomics Current value (from the default) = false - From //third_party/ffmpeg/ffmpeg_options.gni:62 + From //third_party/ffmpeg/ffmpeg_options.gni:50 Set to true to force the use of ffmpeg's stdatomic fallback code. This code is unsafe and does not implement atomics properly. https://crbug.com/161723. @@ -2345,7 +2740,7 @@ ffmpeg_use_unsafe_atomics forbid_non_component_debug_builds Current value (from the default) = true - From //build/config/compiler/compiler.gni:107 + From //build/config/compiler/compiler.gni:111 Whether an error should be raised on attempts to make debug builds with is_component_build=false. Very large debug symbols can have unwanted side @@ -2355,11 +2750,45 @@ force_cast_bluetooth Current value (from the default) = false From //device/bluetooth/cast_bluetooth.gni:4 -from_here_uses_location_builtins - Current value (from the default) = true - From //base/BUILD.gn:55 +force_enable_fieldtrial_testing_config + Current value (from the default) = false + From //components/variations/service/BUILD.gn:19 - Whether or not the FROM_HERE macro uses base::Location::Current(). + Set to true to make a build that force enables activation of field trial + tests specified in testing/variations/fieldtrial_testing_config.json. + +force_enable_raw_ptr_exclusion + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:148 + + RAW_PTR_EXCLUSION macro is disabled on official builds because it increased + binary size. This flag can be used to enable it for official builds too. + +force_rustc_color_output + Current value (from the default) = false + From //build/config/rust.gni:100 + + Force-enable `--color=always` for rustc, even when it would be disabled for + a platform. Mostly applicable to Windows, where new versions can handle ANSI + escape sequences but it's not reliable in general. + +forward_through_malloc + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:129 + + Forwards all the allocation/freeing calls in shim (e.g. operator new) + through malloc. Useful for using with tools that intercept malloc, e.g. + heaptrack. + +fuzztest_supported + Current value (from the default) = false + From //build/config/sanitizers/sanitizers.gni:115 + + The fuzztest library builds only on some platforms, so for now, + all targets depending on fuzztest need to be configured according + to this. + TODO(crbug.com/1494445): remove this when all build permutations + work gcc_target_rpath Current value (from the default) = "" @@ -2375,35 +2804,40 @@ gcc_target_rpath generate_fuzzer_owners Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:166 + From //build/config/sanitizers/sanitizers.gni:215 Generates an owners file for each fuzzer test. TODO(crbug.com/1194183): Remove this arg when finding OWNERS is faster. generate_linker_map Current value (from the default) = false - From //build/toolchain/toolchain.gni:21 + From //build/toolchain/toolchain.gni:27 Used for binary size analysis. +glue_core_pools + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:107 + + Puts the regular and BRP pools right next to each other, so that we can + check "belongs to one of the two pools" with a single bitmask operation. + gold_path Current value (from the default) = "" - From //build/config/compiler/BUILD.gn:71 + From //build/config/compiler/BUILD.gn:73 When we are going to use gold we need to find it. This is initialized below, after use_gold might have been overridden. goma_dir Current value (from the default) = "" - From //build/toolchain/goma.gni:17 + From //build/toolchain/goma.gni:14 Absolute directory containing the gomacc binary. google_api_key - Current value = "AIzaSyCkfPOPZXDKNn8hhgu3JrA62wIgC93d44k" - From //out/thorium/args.gn:3 - Overridden from the default = "" - From //google_apis/BUILD.gn:48 + Current value (from the default) = "" + From //google_apis/BUILD.gn:43 Set these to bake the specified API keys and OAuth client IDs/secrets into your build. @@ -2414,30 +2848,25 @@ google_api_key require server-side APIs may fail to work if no keys are provided. - Note that if you are building an official build or if - use_official_google_api_keys has been set to trie (explicitly or - implicitly), these values will be ignored and the official + Note that if `use_official_google_api_keys` has been set to true + (explicitly or implicitly), these values will be ignored and the official keys will be used instead. google_default_client_id - Current value = "811574891467.apps.googleusercontent.com" - From //out/thorium/args.gn:4 - Overridden from the default = "" - From //google_apis/BUILD.gn:51 + Current value (from the default) = "" + From //google_apis/BUILD.gn:46 See google_api_key. google_default_client_secret - Current value = "kdloedMFGdGla2P1zacGjAQh" - From //out/thorium/args.gn:5 - Overridden from the default = "" - From //google_apis/BUILD.gn:54 + Current value (from the default) = "" + From //google_apis/BUILD.gn:49 See google_api_key. gtest_enable_absl_printers Current value (from the default) = true - From //build_overrides/build.gni:39 + From //build_overrides/build.gni:54 Allows googletest to pretty-print various absl types. Disabled for nacl due to lack of toolchain support. @@ -2450,7 +2879,7 @@ gtk_version loaded at runtime. has_native_accessibility - Current value (from the default) = false + Current value (from the default) = true From //ui/base/ui_features.gni:18 Whether the platform provides a native accessibility toolkit, in other words @@ -2468,18 +2897,18 @@ has_platform_accessibility_support AccessibilityNodeProvider API) and Fuchsia (uses fidl messaging, kind of like mojo). -have_full_mixer - Current value (from the default) = false - From //chromecast/chromecast.gni:51 +headless_enable_commands + Current value (from the default) = true + From //headless/headless.gni:11 - Set to true if there is a full mixer implementation; if not, we create a - shim mixer service receiver that pushes audio to the CMA backend. + Enable support for --screenshot, --print-to-pdf and --dump-dom commands + Note: this option is not available if |headless_use_embedded_resources|. -headless_fontconfig_utils - Current value (from the default) = false - From //headless/headless.gni:10 +headless_mode_policy_supported + Current value (from the default) = true + From //headless/headless.gni:20 - Provide bindings for font loading for headless embedders. + Platforms where headless mode is supported. headless_use_embedded_resources Current value (from the default) = false @@ -2489,13 +2918,13 @@ headless_use_embedded_resources headless_use_policy Current value (from the default) = true - From //headless/headless.gni:16 + From //headless/headless.gni:17 Use Policy component to manage preferences. headless_use_prefs Current value (from the default) = true - From //headless/headless.gni:13 + From //headless/headless.gni:14 Use Prefs component to access Local State and other preferences. @@ -2524,16 +2953,32 @@ host_toolchain This should not normally be set as a build argument. It's here so that every toolchain can pass through the "global" value via toolchain_args(). +icu_copy_icudata_to_root_build_dir + Current value (from the default) = true + From //third_party/icu/config.gni:32 + + If set, the ":icudata" target will copy the ICU data to $root_build_dir. + icu_disable_thin_archive Current value (from the default) = false - From //third_party/icu/config.gni:17 + From //third_party/icu/config.gni:24 If true, compile icu into a standalone static library. Currently this is only useful on Chrome OS. +icu_fuchsia_extra_compile_flags + Current value (from the default) = [] + From //third_party/icu/config.gni:39 + + Fuchsia sometimes requires extra compilation flags for ICU to adapt it to + its current toolchain. Since it takes a while for ICU to roll through + Fuchsia, it can take a long time from an ICU commit to a fix rolling into + Fuchsia. This flag allows us to define the flag ahead of time in + //build/icu.gni, and remove the rollout issues. + icu_fuchsia_override_data_dir Current value (from the default) = "" - From //third_party/icu/config.gni:22 + From //third_party/icu/config.gni:29 If set to nonempty, this is the label of the directory to be used to pull the ICU data files content. The setting has effect only when building @@ -2541,22 +2986,22 @@ icu_fuchsia_override_data_dir icu_use_data_file Current value (from the default) = true - From //third_party/icu/config.gni:8 + From //third_party/icu/config.gni:15 Tells icu to load an external data file rather than rely on the icudata being linked directly into the binary. icu_use_stub_data Current value (from the default) = true - From //third_party/icu/config.gni:13 + From //third_party/icu/config.gni:20 If true, then this creates a stub data file. This should be disabled if a custom data file will be used instead, in order to avoid conflicting symbols. ignore_missing_widevine_signing_cert - Current value (from the default) = false - From //third_party/widevine/cdm/widevine.gni:81 + Current value (from the default) = true + From //third_party/widevine/cdm/widevine.gni:78 If set, and Widevine CDM host verification signing failed due to no signing cert, the failure will be ignored. Otherwise the build process will fail. @@ -2577,9 +3022,18 @@ include_ash_ambient_animation_resources May be overridden locally to false for testing purposes if desired. +include_branded_entitlements + Current value (from the default) = true + From //chrome/BUILD.gn:64 + + On macOS, `is_chrome_branded` builds that have been signed locally will not + launch because certain entitlements are tied to the official Google code + signing identity. If `include_branded_entitlements` is set to false, these + entitlements will be skipped. + include_transport_security_state_preload_list Current value (from the default) = true - From //net/features.gni:36 + From //net/features.gni:41 Includes the transport security state preload list. This list includes mechanisms (e.g. HSTS, HPKP) to enforce trusted connections to a significant @@ -2588,15 +3042,16 @@ include_transport_security_state_preload_list willing to take the responsibility to make sure that all important connections use HTTPS. -include_vr_data +incremental_install Current value (from the default) = false - From //device/vr/buildflags/buildflags.gni:30 + From //build/config/android/config.gni:12 - Whether to include VR extras like test APKs in non-VR-specific targets + Build incremental targets whenever possible. + See //build/android/incremental_install/README.md for more details. init_stack_vars Current value (from the default) = true - From //build/config/compiler/BUILD.gn:140 + From //build/config/compiler/BUILD.gn:151 Initialize all local variables with a pattern. This flag will fill uninitialized floating-point types (and 32-bit pointers) with 0xFF and the @@ -2604,8 +3059,17 @@ init_stack_vars recognizable in the debugger, and crashes on memory accesses through uninitialized pointers. - TODO(crbug.com/1131993): Enabling this when 'is_android' is true breaks - content_shell_test_apk on both ARM and x86. + Flag discussion: https://crbug.com/977230 + + TODO(crbug.com/1131993): This regresses binary size by ~1MB on Android and + needs to be evaluated before enabling it there as well. + +init_stack_vars_zero + Current value (from the default) = false + From //build/config/compiler/BUILD.gn:155 + + Zero init has favorable performance/size tradeoffs for Chrome OS + but was not evaluated for other platforms. internal_gles2_conform_tests Current value (from the default) = false @@ -2617,12 +3081,8 @@ internal_khronos_glcts_tests Current value (from the default) = false From //gpu/khronos_glcts_support/BUILD.gn:8 -invert_fieldtrials - Current value (from the default) = false - From //components/variations/field_trial_config/BUILD.gn:8 - ios_deployment_target - Current value (from the default) = "14.0" + Current value (from the default) = "15.0" From //build/config/ios/ios_sdk_overrides.gni:10 Version of iOS that we're targeting. @@ -2635,48 +3095,37 @@ ios_stack_profiler_enabled only supported on iOS 64-bit architecture, but some project build //base for 32-bit architecture. -iot_service_rpath - Current value (from the default) = "" - From //chromecast/chromecast.gni:131 - - Extra rpath to use for standalone services. - -is_android_arc - Current value (from the default) = false - From //chromecast/chromecast.gni:62 - - Set to true for builds targeting ARC. - is_asan Current value (from the default) = false From //build/config/sanitizers/sanitizers.gni:14 Compile for Address Sanitizer to find memory bugs. +is_cast_android + Current value (from the default) = false + From //build/config/cast.gni:32 + + Set this to true to build for Android-based Cast devices. + Set this to false to use the defaults for Android. + is_cast_audio_only Current value (from the default) = false - From //build/config/chromecast_build.gni:26 + From //build/config/cast.gni:12 Set this true for an audio-only Chromecast build. - TODO(crbug.com/1293538): Replace with a buildflag for speaker-only builds not - specific to Cast. - -is_cast_desktop_build - Current value (from the default) = false - From //chromecast/chromecast.gni:20 + TODO(https://crbug.com/1516671): Remove this arg as CastOS builds are no + longer supported. is_castos Current value (from the default) = false - From //build/config/chromecast_build.gni:53 + From //build/config/cast.gni:28 Set this to true to build for Nest hardware running Linux (aka "CastOS"). - Set this to false to use the defaults for the target OS/platform. - - TODO(crbug.com/1314528): Change default to false and require is_linux. + Set this to false to use the defaults for Linux. is_cfi Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:53 + From //build/config/sanitizers/sanitizers.gni:50 Compile with Control Flow Integrity to protect virtual calls and casts. See http://clang.llvm.org/docs/ControlFlowIntegrity.html @@ -2685,14 +3134,10 @@ is_cfi is_cfm Current value (from the default) = false - From //chromeos/components/chromebox_for_meetings/buildflags/buildflags.gni:7 + From //build/config/chromebox_for_meetings/buildflags.gni:7 True if compiling for Chromebox for Meeting devices. -is_chancie_wancie_build - Current value (from the default) = false - From //third_party/ffmpeg/ffmpeg_options.gni:18 - is_chrome_branded Current value (from the default) = false From //build/config/chrome_build.gni:9 @@ -2701,15 +3146,23 @@ is_chrome_branded true means official Google Chrome branding (requires extra Google-internal resources). -is_chromecast +is_chrome_for_testing Current value (from the default) = false - From //build/config/chromecast_build.gni:16 + From //build/config/chrome_build.gni:15 - DEPRECATED. This flag will be removed in the future; see https://crbug.com/1219802. + Whether to enable the Chrome for Testing (CfT) flavor. This arg is not + compatible with `is_chrome_branded`. - New code should use enable_cast_receiver if the feature in question is - required for all Cast-enabled browsers, or an alternative buildflag if it is - for specific types of devices. + Design document: https://goo.gle/chrome-for-testing + +is_chrome_for_testing_branded + Current value (from the default) = false + From //build/config/chrome_build.gni:21 + + Whether to use internal Chrome for Testing (CfT). + Requires `src-internal/` and `is_chrome_for_testing = true`. + + When true, use Google-internal icons, otherwise fall back to Chromium icons. is_chromeos_device Current value (from the default) = false @@ -2738,10 +3191,8 @@ is_clang Set to true when compiling with the Clang compiler. is_component_build - Current value = false - From //out/thorium/args.gn:18 - Overridden from the default = false - From //build/config/BUILDCONFIG.gn:168 + Current value (from the default) = true + From //build/config/BUILDCONFIG.gn:173 Component build. Setting to true compiles targets declared as "components" as shared libraries loaded dynamically. This speeds up development time. @@ -2751,10 +3202,8 @@ is_component_build https://chromium.googlesource.com/chromium/src/+/main/docs/component_build.md is_component_ffmpeg - Current value = false - From //out/thorium/args.gn:38 - Overridden from the default = false - From //third_party/ffmpeg/ffmpeg_options.gni:51 + Current value (from the default) = true + From //third_party/ffmpeg/ffmpeg_options.gni:39 Set true to build ffmpeg as a shared library. NOTE: this means we should always consult is_component_ffmpeg instead of is_component_build for @@ -2764,24 +3213,33 @@ is_component_ffmpeg is_cronet_build Current value (from the default) = false - From //build/config/ios/config.gni:16 + From //build/config/cronet/config.gni:9 Control whether cronet is built (this is usually set by the script components/cronet/tools/cr_cronet.py as cronet requires specific gn args to build correctly). +is_cronet_for_aosp_build + Current value (from the default) = false + From //build/config/cronet/config.gni:14 + + Controls whether cronet is currently being built for AOSP or Chromium. + This will always be false when building Cronet for Chromium. + the flag exists to accommodate for the divergence between the repos. + is_ct_supported Current value (from the default) = true - From //services/network/public/cpp/features.gni:10 + From //services/network/public/cpp/features.gni:9 Certificate transparency is not supported on iOS. - TODO(mmenke): It's actually not supported on Android, either. + +is_dawn_lpm_fuzzer + Current value (from the default) = false + From //third_party/dawn/src/dawn/fuzzers/dawn_fuzzers.gni:36 is_debug - Current value = false - From //out/thorium/args.gn:10 - Overridden from the default = false - From //build/config/BUILDCONFIG.gn:158 + Current value (from the default) = true + From //build/config/BUILDCONFIG.gn:163 Debug build. Enabling official builds automatically sets is_debug to false. @@ -2789,6 +3247,22 @@ is_ggp Current value (from the default) = false From //third_party/angle/gni/angle.gni:8 +is_high_end_android + Current value (from the default) = false + From //build/config/chrome_build.gni:27 + + Set to true to enable settings for high end Android devices, typically + enhancing speed at the expense of resources such as binary sizes and memory. + Non-official builds should ignore this argument so that arm64 builders + remain fast and independent from PGO without having to set the value to false. + +is_high_end_android_secondary_toolchain + Current value (from the default) = false + From //build/config/chrome_build.gni:44 + + Whether to apply size->speed trade-offs to the secondary toolchain. + Relevant only for 64-bit target_cpu. + is_hwasan Current value (from the default) = false From //build/config/sanitizers/sanitizers.gni:19 @@ -2797,13 +3271,12 @@ is_hwasan (android/arm64 only). See http://clang.llvm.org/docs/HardwareAssistedAddressSanitizerDesign.html -is_internal_chrome_cleaner_build - Current value (from the default) = false - From //chrome/chrome_cleaner/chrome_cleaner_args.gni:9 +is_java_debug + Current value (from the default) = true + From //build/config/android/config.gni:18 - If this is true, the build will look for extra Google-internal resources. - This should only be set on the Chrome Cleaner builders, not general - chromium builders, since it can cause tests to take longer. + Java debug on Android. Having this on enables multidexing, and turning it + off will enable proguard. is_lsan Current value (from the default) = false @@ -2830,9 +3303,7 @@ is_nacl_saigo True if saigo_newlib is used. is_official_build - Current value = true - From //out/thorium/args.gn:9 - Overridden from the default = false + Current value (from the default) = false From //build/config/BUILDCONFIG.gn:136 Set to enable the official build level of optimization. This has nothing @@ -2846,20 +3317,16 @@ is_official_build which can halve overall performance, and do increase memory usage. Always set "is_official_build" to true for any build intended to ship to end-users. -is_official_chrome_cleaner_build - Current value (from the default) = false - From //chrome/chrome_cleaner/chrome_cleaner_args.gni:13 - - If this is true, builds an official release of the Chrome Cleanup Tool - (requires is_internal_chrome_cleaner_build=true). - is_on_release_branch Current value (from the default) = false - From //v8/gni/release_branch_toggle.gni:6 + From //v8/gni/release_branch_toggle.gni:8 + + TODO(liviurau): Remove old name after Chromium config update + https://crbug.com/1476977. is_p2p_enabled Current value (from the default) = true - From //services/network/public/cpp/features.gni:16 + From //services/network/public/cpp/features.gni:15 Controls whether P2P is exposed by the network service. Optional to reduce avoid having Chrome on iOS depends on @@ -2887,12 +3354,13 @@ is_reven Refers to the separate branding required for the reven build. -is_single_volume +is_robolectric Current value (from the default) = false - From //chromecast/chromecast.gni:66 + From //build/config/BUILDCONFIG.gn:156 - Set true if the platform works as a single volume device, mapping all - volume streams to a single one. + Do not set this directly. + It should be set only by //build/toolchains/android:robolectric_x64. + True when compiling native code for use with robolectric_binary(). is_skylab Current value (from the default) = false @@ -2919,27 +3387,21 @@ is_ubsan_no_recover Halt the program if a problem is detected. -is_ubsan_null - Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:38 - - Compile for Undefined Behaviour Sanitizer's null pointer checks. - is_ubsan_security Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:82 + From //build/config/sanitizers/sanitizers.gni:83 Enables core ubsan security features. Will later be removed once it matches is_ubsan. is_ubsan_vptr Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:118 + From //build/config/sanitizers/sanitizers.gni:125 Compile for Undefined Behaviour Sanitizer's vptr checks. is_unsafe_developer_build - Current value (from the default) = false + Current value (from the default) = true From //base/BUILD.gn:60 Unsafe developer build. Has developer-friendly features that may weaken or @@ -2948,25 +3410,30 @@ is_unsafe_developer_build is_win_arm64 Current value (from the default) = false - From //third_party/angle/gni/angle.gni:120 + From //third_party/angle/gni/angle.gni:154 Currently Windows on Arm doesn't support OpenGL or Vulkan. -jsoncpp_no_deprecated_declarations - Current value (from the default) = true - From //third_party/jsoncpp/BUILD.gn:11 +jinja_dir + Current value (from the default) = "//third_party" + From //v8/third_party/inspector_protocol/inspector_protocol.gni:7 - Allow individual projects to remove the warning suppression - by overriding this in their .gn file or through custom args.gn - See crbug.com/983223 + Where jinja2 is located, in chromium it is //third_party. + +lacros_use_chromium_toolchain + Current value (from the default) = false + From //build/toolchain/cros/cros_config.gni:8 + + If set, build lacros with Chromium's toolchain instead of with Chrome OS's. + TODO(thakis): Set this to `= chromeos_is_browser_only` once that works. ldso_path Current value (from the default) = "" From //build/config/gcc/BUILD.gn:20 libcxx_is_shared - Current value (from the default) = false - From //build/config/c++/c++.gni:55 + Current value (from the default) = true + From //build/config/c++/c++.gni:54 WARNING: Setting this to a non-default value is highly discouraged. If true, libc++ will be built as a shared library; otherwise libc++ will be @@ -2977,14 +3444,14 @@ libcxx_is_shared libcxx_natvis_include Current value (from the default) = true - From //build/config/c++/c++.gni:30 + From //build/config/c++/c++.gni:29 Builds libcxx Natvis into the symbols for type visualization. Set to false to workaround http://crbug.com/966676 and http://crbug.com/966687. libcxx_revision - Current value (from the default) = "79a2e924d96e2fc1e4b937c42efd08898fa472d7" + Current value (from the default) = "28aa23ffb4c7344914a5b4ac7169f12e5a12333f" From //buildtools/deps_revisions.gni:8 Used to cause full rebuilds on libc++ rolls. This should be kept in sync @@ -2994,13 +3461,17 @@ libyuv_disable_jpeg Current value (from the default) = false From //third_party/libyuv/libyuv.gni:15 +libyuv_disable_rvv + Current value (from the default) = false + From //third_party/libyuv/libyuv.gni:16 + libyuv_include_tests Current value (from the default) = false From //third_party/libyuv/libyuv.gni:14 libyuv_symbols_visible Current value (from the default) = false - From //third_party/libyuv/BUILD.gn:19 + From //third_party/libyuv/BUILD.gn:20 When building a shared library using a target in WebRTC or Chromium projects that depends on libyuv, setting this flag @@ -3008,25 +3479,25 @@ libyuv_symbols_visible libyuv_use_absl_flags Current value (from the default) = true - From //third_party/libyuv/BUILD.gn:14 + From //third_party/libyuv/BUILD.gn:15 Set to false to disable building with absl flags. libyuv_use_mmi Current value (from the default) = false - From //third_party/libyuv/libyuv.gni:22 + From //third_party/libyuv/libyuv.gni:23 libyuv_use_msa Current value (from the default) = false - From //third_party/libyuv/libyuv.gni:20 + From //third_party/libyuv/libyuv.gni:21 libyuv_use_neon Current value (from the default) = false - From //third_party/libyuv/libyuv.gni:17 + From //third_party/libyuv/libyuv.gni:18 limit_android_deps Current value (from the default) = false - From //build_overrides/build.gni:35 + From //build_overrides/build.gni:50 Limits the defined //third_party/android_deps targets to only "buildCompile" and "buildCompileNoDeps" targets. This is useful for third-party @@ -3036,12 +3507,28 @@ limit_android_deps link_pulseaudio Current value (from the default) = false - From //media/media_options.gni:19 + From //media/media_options.gni:42 Allows distributions to link pulseaudio directly (DT_NEEDED) instead of using dlopen. This helps with automated detection of ABI mismatches and prevents silent errors. +lld_emit_indexes_and_imports + Current value (from the default) = false + From //build/config/clang/clang.gni:37 + + Set to true to enable output of ThinLTO index and import files used for + creating a Chromium MLGO corpus in the ThinLTO case. + +llvm_android_mainline + Current value (from the default) = false + From //build/toolchain/toolchain.gni:24 + + Cronet is shipped in AOSP, where it is built using the Android Mainline + Clang. Please refer to go/cronet-builders-with-mainline-clang-design for + more information. + If this arg is set to true, we use the Android Mainline LLVM. + llvm_force_head_revision Current value (from the default) = false From //build/toolchain/toolchain.gni:18 @@ -3056,48 +3543,35 @@ mac_sdk_min Current value (from the default) = "10.15" From //build/config/mac/mac_sdk_overrides.gni:12 -make_partition_alloc_standalone - Current value (from the default) = false - From //base/allocator/partition_allocator/partition_alloc.gni:6 - mbi_mode Current value (from the default) = true - From //content/common/features.gni:17 + From //content/common/features.gni:20 Whether or not MBI mode (Multiple Blink Isolates) should be enabled, depending on the build argument. -media_clock_monotonic_raw - Current value (from the default) = true - From //chromecast/chromecast.gni:86 - - unified flag to pick monotonic_clock OR monotonic_clock_raw - media_use_ffmpeg - Current value = true - From //out/thorium/args.gn:28 - Overridden from the default = true - From //media/media_options.gni:24 + Current value (from the default) = true + From //media/media_options.gni:47 Enable usage of FFmpeg within the media library. Used for most software based decoding, demuxing, and sometimes optimized FFTs. If disabled, implementors must provide their own demuxers and decoders. media_use_libvpx - Current value = true - From //out/thorium/args.gn:29 - Overridden from the default = true - From //media/media_options.gni:28 + Current value (from the default) = true + From //media/media_options.gni:51 Enable usage of libvpx within the media library. Used for software based decoding of VP9 and VP8A type content. media_use_openh264 - Current value (from the default) = true - From //media/media_options.gni:38 + Current value (from the default) = false + From //media/media_options.gni:63 - Enable usage of OpenH264 within the media library. Used for software based - encoding of H264 content. +mediapipe_build_with_gpu_support + Current value (from the default) = false + From //third_party/mediapipe/BUILD.gn:12 mips_use_mmi Current value (from the default) = false @@ -3105,16 +3579,9 @@ mips_use_mmi MIPS MultiMedia Instruction compilation flag. -mixer_in_cast_shell - Current value (from the default) = true - From //chromecast/chromecast.gni:55 - - If true, the mixer will be instantiated inside cast_shell. When false, the - mixer is expected to be running in another process. - mojo_media_host Current value (from the default) = "gpu" - From //media/media_options.gni:247 + From //media/media_options.gni:326 The process that the mojo MediaService runs in. By default, all services registered in |mojo_media_services| are hosted in the MediaService, with the @@ -3128,8 +3595,8 @@ mojo_media_host - "": Do not use mojo media service. mojo_media_services - Current value (from the default) = ["video_decoder", "cdm"] - From //media/media_options.gni:235 + Current value (from the default) = ["audio_decoder", "audio_encoder", "video_decoder", "cdm"] + From //media/media_options.gni:314 A list of mojo media services that should be used in the media pipeline. Valid entries in the list are: @@ -3140,28 +3607,25 @@ mojo_media_services - "video_decoder": Use mojo-based video decoder in the default media Renderer. Cannot be used with the mojo Renderer above. -mojom_message_id_salt_path - Current value (from the default) = "//chrome/VERSION" - From //mojo/public/tools/bindings/mojom.gni:116 - - The path to a file whose contents can be used as the basis for a message - ID scrambling salt. +mojo_use_apple_channel + Current value (from the default) = false + From //mojo/features.gni:8 monolithic_binaries - Current value (from the default) = false + Current value (from the default) = true From //third_party/perfetto/gn/perfetto.gni:214 Only for local development. When true the binaries (perfetto, traced, ...) are monolithic and don't use a common shared library. This is mainly to avoid LD_LIBRARY_PATH dances when testing locally. On Windows we default to monolithic executables, because pairing - dllexport/import adds extra complexity for little benefit. Te only reason + dllexport/import adds extra complexity for little benefit. The only reason for monolithic_binaries=false is saving binary size, which matters mainly on Android. See also comments on PERFETTO_EXPORT_ENTRYPOINT in compiler.h. msan_track_origins Current value (from the default) = 2 - From //build/config/sanitizers/sanitizers.gni:43 + From //build/config/sanitizers/sanitizers.gni:40 Track where uninitialized memory originates from. From fastest to slowest: 0 - no tracking, 1 - track only the initial allocation site, 2 - track the @@ -3169,34 +3633,31 @@ msan_track_origins msvc_use_sse2 Current value (from the default) = true - From //third_party/pdfium/pdfium.gni:69 + From //third_party/pdfium/pdfium.gni:84 Enable SSE2 for MSVC builds. Ignored if it's not a MSVC build. ndk_api_level_at_least_26 Current value (from the default) = false - From //third_party/angle/gni/angle.gni:99 - -needs_gomacc_path_arg - Current value (from the default) = false - From //build/toolchain/goma.gni:14 - - This flag is for ChromeOS compiler wrapper. - By passing gomacc path via cmd-line arg, ChromeOS' compiler wrapper - invokes gomacc inside it. + From //third_party/angle/gni/angle.gni:132 optimize_for_fuzzing Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:90 + From //build/config/compiler/BUILD.gn:92 Optimize for coverage guided fuzzing (balance between speed and number of - branches). Can be also used to remove non-determinism and other issues. + branches) + +optimize_for_size + Current value (from the default) = false + From //build/config/compiler/compiler.gni:42 + + If true, optimize for size. + Default to favoring speed over size for platforms not listed below. optimize_webui - Current value = true - From //out/thorium/args.gn:20 - Overridden from the default = true - From //ui/webui/webui_features.gni:11 + Current value (from the default) = false + From //ui/webui/webui_features.gni:12 Optimize parts of Chrome's UI written with web technologies (HTML/CSS/JS) for runtime performance purposes. This does more work at compile time for @@ -3206,75 +3667,92 @@ optional_trace_events_enabled Current value (from the default) = true From //base/trace_event/tracing.gni:20 +os_level_geolocation_permission_supported + Current value (from the default) = false + From //services/device/public/cpp/geolocation/buildflags.gni:11 + + Specifies if we support the OS level global geolocation permission for the current platform. + This is exposed with the macro OS_LEVEL_GEOLOCATION_PERMISSION_SUPPORTED. + ozone_auto_platforms - Current value (from the default) = true - From //build/config/ozone.gni:22 + Current value (from the default) = false + From //build/config/ozone.gni:21 Select platforms automatically. Turn this off for manual control. ozone_extra_path Current value (from the default) = "//build/config/ozone_extra.gni" - From //build/config/ozone.gni:19 + From //build/config/ozone.gni:18 Ozone extra platforms file path. Can be overridden to build out of tree ozone platforms. ozone_platform - Current value (from the default) = "x11" - From //build/config/ozone.gni:95 + Current value (from the default) = "" + From //build/config/ozone.gni:40 + + The platform that will used at runtime by default. This can be overridden + with the command line flag --ozone-platform=. ozone_platform_cast Current value (from the default) = false - From //build/config/ozone.gni:44 + From //build/config/ozone.gni:43 Compile the 'cast' platform. ozone_platform_drm Current value (from the default) = false - From //build/config/ozone.gni:47 + From //build/config/ozone.gni:46 Compile the 'drm' platform. ozone_platform_flatland Current value (from the default) = false - From //build/config/ozone.gni:56 + From //build/config/ozone.gni:52 Compile the 'flatland' platform. ozone_platform_gbm Current value (from the default) = -1 - From //build/config/ozone.gni:26 + From //build/config/ozone.gni:25 TODO(petermcneeley): Backwards compatiblity support for VM images. Remove when deprecated. (https://crbug.com/1122009) ozone_platform_headless - Current value (from the default) = true - From //build/config/ozone.gni:70 - -ozone_platform_scenic Current value (from the default) = false - From //build/config/ozone.gni:53 + From //build/config/ozone.gni:49 - Compile the 'scenic' platform. + Compile the 'headless' platform. ozone_platform_wayland - Current value (from the default) = true - From //build/config/ozone.gni:96 - -ozone_platform_windows Current value (from the default) = false - From //build/config/ozone.gni:65 + From //build/config/ozone.gni:58 - Compile the 'windows' platform. + Compile the 'wayland' platform. ozone_platform_x11 + Current value (from the default) = false + From //build/config/ozone.gni:55 + + Compile the 'x11' platform. + +partition_alloc_optimized_debug Current value (from the default) = true - From //build/config/ozone.gni:97 + From //base/allocator/partition_allocator/partition_alloc.gni:81 + + Turns on compiler optimizations in PartitionAlloc in Debug build. + If enabling PartitionAlloc-Everywhere in Debug build for tests in Debug + build, since all memory allocations and deallocations are executed by + non-optimized PartitionAlloc, chrome (including tests) will be much + slower. This will cause debug trybots' timeouts. If we want to debug + PartitionAlloc itself, use partition_alloc_optimized_debug=false. + Otherwise, use partition_alloc_optimized_debug=true to enable optimized + PartitionAlloc. pdf_bundle_freetype Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:16 + From //third_party/pdfium/pdfium.gni:17 Build PDFium either: 1) When set to true, with a bundled FreeType, built from FreeType source @@ -3285,71 +3763,85 @@ pdf_bundle_freetype pdf_enable_click_logging Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:19 + From //third_party/pdfium/pdfium.gni:20 Generate logging messages for click events that reach PDFium +pdf_enable_fontations + Current value (from the default) = false + From //third_party/pdfium/pdfium.gni:56 + + Build PDFium with experimental Fontations library support. + If enabled, coexists in build with FreeType library and the default font + library is selectable at runtime. + Note that Fontations requires Skia and Rust support. + pdf_enable_v8 Current value (from the default) = true - From //third_party/pdfium/pdfium.gni:22 + From //third_party/pdfium/pdfium.gni:23 Build PDFium either with or without v8 support. pdf_enable_xfa Current value (from the default) = true - From //third_party/pdfium/pdfium.gni:25 + From //third_party/pdfium/pdfium.gni:26 Build PDFium either with or without XFA Forms support. pdf_enable_xfa_bmp Current value (from the default) = true - From //third_party/pdfium/pdfium.gni:28 + From //third_party/pdfium/pdfium.gni:29 If XFA, also support bmp codec. Ignored if not XFA. pdf_enable_xfa_gif Current value (from the default) = true - From //third_party/pdfium/pdfium.gni:31 + From //third_party/pdfium/pdfium.gni:32 If XFA, also support gif codec. Ignored if not XFA. pdf_enable_xfa_png Current value (from the default) = true - From //third_party/pdfium/pdfium.gni:34 + From //third_party/pdfium/pdfium.gni:35 If XFA, also support png codec. Ignored if not XFA. pdf_enable_xfa_tiff Current value (from the default) = true - From //third_party/pdfium/pdfium.gni:37 + From //third_party/pdfium/pdfium.gni:38 If XFA, also support tiff codec. Ignored if not XFA. pdf_is_complete_lib Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:51 + From //third_party/pdfium/pdfium.gni:63 Build a complete static library pdf_is_standalone Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:48 + From //third_party/pdfium/pdfium.gni:60 - Build PDFium standalone + Build PDFium standalone. Now only controls whether the test binaries + are built. Most logic is conditioned by build_with_chromium. -pdf_use_skia - Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:41 - - Build PDFium against Skia (experimental) rather than AGG. Use Skia to draw - everything. - -pdf_use_skia_paths - Current value (from the default) = false +pdf_use_partition_alloc + Current value (from the default) = true From //third_party/pdfium/pdfium.gni:45 - Build PDFium against Skia (experimental) rather than AGG. Use Skia to draw - paths. + Build PDFium against PartitionAlloc. When false, PDFium must build without + requiring any PartitionAlloc headers or code to be present. When true, + PDFium will use PartitionAlloc partitions to separate strings, scalars, + etc. from other allocations. However, the use of PartitionAlloc for new or + malloc is controlled by args in build_overrides/partition_alloc.gni. + +pdf_use_skia + Current value (from the default) = true + From //third_party/pdfium/pdfium.gni:50 + + Build PDFium to use Skia (experimental) for all PDFium graphics. + If enabled, coexists in build with AGG graphics and the default + renderer is selectable at runtime. perfetto_build_with_android Current value (from the default) = false @@ -3362,7 +3854,7 @@ perfetto_build_with_android perfetto_enable_git_rev_version_header Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:247 + From //third_party/perfetto/gn/perfetto.gni:257 perfetto_force_dcheck Current value (from the default) = "" @@ -3385,26 +3877,41 @@ perfetto_force_dlog none ("off"). We disable it by default for embedders to avoid spamming their console. +perfetto_use_pkgconfig + Current value (from the default) = false + From //third_party/perfetto/gn/perfetto.gni:349 + + Used by CrOS builds. Uses pkg-config to determine the appropriate flags + for including and linking system libraries. + set `host_pkg_config` to the `BUILD_PKG_CONFIG` and + set `pkg_config` to the target `PKG_CONFIG`. + Note: that if this is enabled `perfetto_use_system_protobuf` should be also. + perfetto_use_system_protobuf Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:316 + From //third_party/perfetto/gn/perfetto.gni:353 Used by CrOS system builds. Uses the system version of protobuf from /usr/include instead of the hermetic one. +perfetto_use_system_sqlite + Current value (from the default) = false + From //third_party/perfetto/gn/perfetto.gni:357 + + Used by CrOS system builds. Uses the system version of sqlite + from /usr/include instead of the hermetic one. + perfetto_use_system_zlib Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:318 + From //third_party/perfetto/gn/perfetto.gni:359 perfetto_verbose_logs_enabled Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:261 + From //third_party/perfetto/gn/perfetto.gni:275 pgo_data_path - Current value = "/media/alex/linuz/home/alex/chromium/src/chrome/build/pgo_profiles/chrome-win64-main-1653123517-84b6a91c74c02edc7650c1735aac3607369bdd63.profdata" - From //out/thorium/args.gn:61 - Overridden from the default = "" - From //build/config/compiler/pgo/pgo.gni:24 + Current value (from the default) = "" + From //build/config/compiler/pgo/pgo.gni:35 When using chrome_pgo_phase = 2, read profile data from this path. @@ -3418,6 +3925,14 @@ pkg_config Leaving it blank defaults to searching PATH for 'pkg-config' and relying on the sysroot mechanism to find the right .pc files. +platform_has_optional_hevc_support + Current value (from the default) = false + From //media/media_options.gni:150 + +plus_addresses_use_internal_android_resources + Current value (from the default) = false + From //components/plus_addresses/buildflags.gni:11 + print_unsymbolized_stack_traces Current value (from the default) = false From //base/third_party/symbolize/BUILD.gn:13 @@ -3428,59 +3943,86 @@ print_unsymbolized_stack_traces and also enabling symbol_level = 2, you can get much more detailed stack traces with file names and line numbers, even in non-ASAN builds. +produce_v8_compile_hints + Current value (from the default) = true + From //third_party/blink/renderer/bindings/bindings.gni:7 + + Enable V8 to produce hints regarding which functions to compile eagerly. + proprietary_codecs - Current value = true - From //out/thorium/args.gn:35 - Overridden from the default = false - From //build/config/features.gni:26 + Current value (from the default) = false + From //build/config/features.gni:31 Enables proprietary codecs and demuxers; e.g. H264, AAC, MP3, and MP4. We always build Google Chrome and Chromecast with proprietary codecs. Note: this flag is used by WebRTC which is DEPSed into Chrome. Moving it out of //build will require using the build_overrides directory. + + Do not add any other conditions to the following line. + + TODO(crbug.com/1314528): Remove chromecast-related conditions and force + builds to explicitly specify this. -put_ref_count_in_previous_slot +raw_ptr_zero_on_construct + Current value (from the default) = true + From //base/allocator/partition_allocator/partition_alloc.gni:375 + +raw_ptr_zero_on_destruct Current value (from the default) = false - From //base/allocator/allocator.gni:106 + From //base/allocator/partition_allocator/partition_alloc.gni:377 - If BRP is enabled, additional options are available: - - put_ref_count_in_previous_slot: place the ref-count at the end of the - previous slot (or in metadata if a slot starts on the page boundary), as - opposed to the beginning of the slot. - - enable_backup_ref_ptr_slow_checks: enable additional safety checks that - are too expensive to have on by default. - - enable_dangling_raw_ptr_checks: enable checking raw_ptr do not become - dangling during their lifetime. +raw_ptr_zero_on_move + Current value (from the default) = true + From //base/allocator/partition_allocator/partition_alloc.gni:376 + +rbe_bin_dir + Current value (from the default) = "../../buildtools/reclient" + From //build/toolchain/rbe.gni:5 + + The directory where the re-client tooling binaries are. rbe_cc_cfg_file - Current value (from the default) = "" - From //build/toolchain/rbe.gni:23 - - Set to the path of the RBE reclient configuration file. + Current value (from the default) = "../../buildtools/reclient_cfgs/chromium-browser-clang/rewrapper_linux.cfg" + From //build/toolchain/rbe.gni:29 rbe_cfg_dir - Current value (from the default) = "../../buildtools/reclient_cfgs" + Current value (from the default) = "//buildtools/reclient_cfgs" From //build/toolchain/rbe.gni:20 The directory where the re-client configuration files are. rbe_cros_cc_wrapper Current value (from the default) = "../../buildtools/reclient/rewrapper" - From //build/toolchain/rbe.gni:26 + From //build/toolchain/rbe.gni:52 Set to the path of the RBE recleint wrapper for ChromeOS. -regenerate_x11_protos - Current value (from the default) = false - From //ui/gfx/x/BUILD.gn:12 +rbe_exec_root + Current value (from the default) = "/home/alex/chromium/src/" + From //build/toolchain/rbe.gni:11 -remoting_use_wayland - Current value (from the default) = false - From //remoting/build/config/remoting_features.gni:8 + Execution root - this should be the root of the source tree. + This is defined here instead of in the config file because + this will vary depending on where the user has placed the + chromium source on their system. - Determines whether or not remoting should use wayland implementation - to talk to remote host. +rbe_link_cfg_file + Current value (from the default) = "../../buildtools/reclient_cfgs/chromium-browser-clang/rewrapper_linux_link.cfg" + From //build/toolchain/rbe.gni:31 + +rbe_py_cfg_file + Current value (from the default) = "../../buildtools/reclient_cfgs/python/rewrapper_linux.cfg" + From //build/toolchain/rbe.gni:28 + +remoting_internal + Current value (from the default) = false + From //remoting/build/config/remoting_build.gni:28 + + You can set the variable 'remoting_internal' to true to include Google- + internal sources and implementations in a developer build. Setting this + variable explicitly to true will cause your build to fail if the + //remoting/internal directory is not present in your checkout. remoting_webrtc_verbose_logging Current value (from the default) = false @@ -3502,18 +4044,20 @@ remoting_wix_path removed_rust_stdlib_libs Current value (from the default) = [] - From //build/config/rust.gni:48 + From //build/config/rust.gni:86 Any removed std rlibs in your Rust toolchain, relative to the standard - Rust toolchain. Typically used with 'use_unverified_rust_toolchain' = true + Rust toolchain. Typically used with 'rust_sysroot_absolute' -reporter_branding_path - Current value (from the default) = "//chrome/chrome_cleaner/constants/REPORTER_BRANDING" - From //chrome/chrome_cleaner/constants/args.gni:6 +restricted_traces_outside_of_apk + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:43 + + Only bundle traces in the APK if we're building a subset root_extra_deps Current value (from the default) = [] - From //BUILD.gn:54 + From //BUILD.gn:64 A list of extra dependencies to add to the root target. This allows a checkout to add additional targets without explicitly changing any checked- @@ -3521,7 +4065,7 @@ root_extra_deps rtc_audio_device_plays_sinus_tone Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:191 + From //third_party/webrtc/webrtc.gni:206 When set to true, replace the audio output with a sinus tone at 440Hz. The ADM will ask for audio data from WebRTC but instead of reading real @@ -3530,90 +4074,102 @@ rtc_audio_device_plays_sinus_tone rtc_build_dcsctp Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:307 + From //third_party/webrtc/webrtc.gni:340 Enable the dcsctp backend for DataChannels and related unittests rtc_build_examples - Current value = false - From //out/thorium/args.gn:49 - Overridden from the default = true - From //third_party/webrtc/webrtc.gni:126 + Current value (from the default) = true + From //third_party/webrtc/webrtc.gni:138 Set this to false to skip building examples. rtc_build_json Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:247 + From //third_party/webrtc/webrtc.gni:280 Disable these to not build components which can be externally provided. rtc_build_libevent - Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:261 + Current value (from the default) = false + From //third_party/webrtc/webrtc.gni:291 rtc_build_libsrtp Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:248 + From //third_party/webrtc/webrtc.gni:281 rtc_build_libvpx Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:249 + From //third_party/webrtc/webrtc.gni:282 rtc_build_opus Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:251 + From //third_party/webrtc/webrtc.gni:284 rtc_build_ssl Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:252 + From //third_party/webrtc/webrtc.gni:285 rtc_build_tools Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:129 + From //third_party/webrtc/webrtc.gni:141 Set this to false to skip building tools. rtc_build_with_neon Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:165 + From //third_party/webrtc/webrtc.gni:177 rtc_builtin_ssl_root_certificates Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:88 + From //third_party/webrtc/webrtc.gni:100 Setting this to false will require the API user to pass in their own SSLCertificateVerifier to verify the certificates presented from a TLS-TURN server. In return disabling this saves around 100kb in the binary. +rtc_common_public_deps + Current value = ["//base"] + From //.gn:46 + Overridden from the default = [] + From //third_party/webrtc/webrtc.gni:262 + + Embedders can define dependencies needed by WebRTC. Dependencies can be + configs or targets. This can be defined in their `.gn` file. + + In practise, this is use by Chromium: Targets from + `//third_party/webrtc_overrides` are depending on Chrome's `//base`, but + WebRTC does not declare its public dependencies. See webrtc:8603. Instead + WebRTC is using a global common dependencies. + rtc_disable_check_msg Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:295 + From //third_party/webrtc/webrtc.gni:328 Set this to true to disable detailed error message and logging for RTC_CHECKs. rtc_disable_logging Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:288 + From //third_party/webrtc/webrtc.gni:321 Set this to true to fully remove logging from WebRTC. rtc_disable_metrics Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:298 + From //third_party/webrtc/webrtc.gni:331 Set this to true to disable webrtc metrics. rtc_disable_trace_events Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:291 + From //third_party/webrtc/webrtc.gni:324 Set this to true to disable trace events. rtc_dlog_always_on Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:51 + From //third_party/webrtc/webrtc.gni:59 Setting this to true, will make RTC_DLOG() expand to log statements instead of being removed by the preprocessor. @@ -3621,41 +4177,48 @@ rtc_dlog_always_on rtc_enable_android_aaudio Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:148 + From //third_party/webrtc/webrtc.gni:160 Experimental: enable use of Android AAudio which requires Android SDK 26 or above and NDK r16 or above. rtc_enable_avx2 Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:274 + From //third_party/webrtc/webrtc.gni:307 rtc_enable_bwe_test_logging Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:123 + From //third_party/webrtc/webrtc.gni:135 Set this to true to enable BWE test logging. rtc_enable_external_auth Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:113 + From //third_party/webrtc/webrtc.gni:125 Enable when an external authentication mechanism is used for performing packet authentication for RTP packets instead of libsrtp. -rtc_enable_grpc +rtc_enable_google_benchmarks Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:310 + From //third_party/webrtc/webrtc.gni:63 + + Enables additional build targets that rely on + //third_party/google_benchmarks. + +rtc_enable_grpc + Current value (from the default) = false + From //third_party/webrtc/webrtc.gni:343 Enable gRPC used for negotiation in multiprocess tests rtc_enable_libevent - Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:260 + Current value (from the default) = false + From //third_party/webrtc/webrtc.gni:290 rtc_enable_objc_symbol_export Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:58 + From //third_party/webrtc/webrtc.gni:70 Setting this to true will make RTC_OBJC_EXPORT expand to code that will manage symbols visibility. By default, Obj-C/Obj-C++ symbols are exported @@ -3665,26 +4228,26 @@ rtc_enable_objc_symbol_export rtc_enable_protobuf Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:241 + From //third_party/webrtc/webrtc.gni:274 Enables the use of protocol buffers for debug recordings. rtc_enable_sctp Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:244 + From //third_party/webrtc/webrtc.gni:277 Set this to disable building with support for SCTP data channels. rtc_enable_symbol_export Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:44 + From //third_party/webrtc/webrtc.gni:48 Setting this to true will make RTC_EXPORT (see rtc_base/system/rtc_export.h) expand to code that will manage symbols visibility. rtc_enable_win_wgc - Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:226 + Current value (from the default) = true + From //third_party/webrtc/webrtc.gni:234 When set to true, a capturer implementation that uses the Windows.Graphics.Capture APIs will be available for use. This introduces a @@ -3692,13 +4255,13 @@ rtc_enable_win_wgc rtc_exclude_audio_processing_module Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:120 + From //third_party/webrtc/webrtc.gni:132 Selects whether the audio processing module should be excluded. rtc_exclude_field_trial_default Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:68 + From //third_party/webrtc/webrtc.gni:80 When WebRTC is built as part of Chromium it should exclude the default implementation of field_trial unless it is building for NACL or @@ -3706,7 +4269,7 @@ rtc_exclude_field_trial_default rtc_exclude_metrics_default Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:77 + From //third_party/webrtc/webrtc.gni:89 Setting this to true will define WEBRTC_EXCLUDE_METRICS_DEFAULT which will tell the pre-processor to remove the default definition of symbols @@ -3715,7 +4278,7 @@ rtc_exclude_metrics_default rtc_exclude_system_time Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:83 + From //third_party/webrtc/webrtc.gni:95 Setting this to true will define WEBRTC_EXCLUDE_SYSTEM_TIME which will tell the pre-processor to remove the default definition of the @@ -3724,112 +4287,120 @@ rtc_exclude_system_time rtc_exclude_transient_suppressor Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:302 + From //third_party/webrtc/webrtc.gni:335 Set this to true to exclude the transient suppressor in the audio processing module from the build. rtc_include_builtin_audio_codecs Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:207 + From //third_party/webrtc/webrtc.gni:221 When set to false, builtin audio encoder/decoder factories and all the audio codecs they depend on will not be included in libwebrtc.{a|lib} (they will still be included in libjingle_peerconnection_so.so and WebRTC.framework) -rtc_include_builtin_video_codecs - Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:213 - - When set to false, builtin video encoder/decoder factories and all the - video codecs they depends on will not be included in libwebrtc.{a|lib} - (they will still be included in libjingle_peerconnection_so.so and - WebRTC.framework) - rtc_include_dav1d_in_internal_decoder_factory Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:229 + From //third_party/webrtc/webrtc.gni:237 Includes the dav1d decoder in the internal decoder factory when set to true. rtc_include_ilbc - Current value = true - From //out/thorium/args.gn:48 + Current value = false + From //.gn:51 Overridden from the default = true - From //third_party/webrtc/webrtc.gni:91 + From //third_party/webrtc/webrtc.gni:103 Include the iLBC audio codec? rtc_include_internal_audio_device Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:269 + From //third_party/webrtc/webrtc.gni:302 Chromium uses its own IO handling, so the internal ADM is only built for standalone WebRTC. rtc_include_opus Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:94 + From //third_party/webrtc/webrtc.gni:106 Disable this to avoid building the Opus audio codec. rtc_include_pulse_audio Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:265 + From //third_party/webrtc/webrtc.gni:298 Excluded in Chromium since its prerequisites don't require Pulse Audio. rtc_include_tests Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:281 + From //third_party/webrtc/webrtc.gni:314 Set this to true to build the unit tests. Disabled when building with Chromium or Mozilla. -rtc_ios_macos_use_opengl_rendering - Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:201 +rtc_ios_use_opengl_rendering + Current value (from the default) = false + From //third_party/webrtc/webrtc.gni:215 + + Determines whether OpenGL is available on iOS. + +rtc_jni_generator_legacy_symbols + Current value (from the default) = false + From //third_party/webrtc/webrtc.gni:54 + + If set to true, C++ code will refer to the new JNI Generator symbols. + If set to false the old ones will be used (to provide a nice update path). rtc_jsoncpp_root Current value (from the default) = "//third_party/jsoncpp/source/include" - From //third_party/webrtc/webrtc.gni:105 + From //third_party/webrtc/webrtc.gni:117 Used to specify an external Jsoncpp include path when not compiling the library that comes with WebRTC (i.e. rtc_build_json == 0). rtc_libvpx_build_vp9 Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:250 + From //third_party/webrtc/webrtc.gni:283 rtc_link_pipewire Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:141 + From //third_party/webrtc/webrtc.gni:153 Set this to link PipeWire and required libraries directly instead of using the dlopen. +rtc_objc_prefix + Current value (from the default) = "" + From //third_party/webrtc/webrtc.gni:253 + + If different from "", symbols exported with RTC_OBJC_EXPORT will be prefixed + with this string. + See the definition of RTC_OBJC_TYPE_PREFIX in the code. + rtc_opus_support_120ms_ptime Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:98 + From //third_party/webrtc/webrtc.gni:110 Enable this if the Opus version upon which WebRTC is built supports direct encoding of 120 ms packets. rtc_opus_variable_complexity Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:101 + From //third_party/webrtc/webrtc.gni:113 Enable this to let the Opus audio codec change complexity on the fly. rtc_prefer_fixed_point Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:158 + From //third_party/webrtc/webrtc.gni:170 Selects fixed-point code where possible. rtc_sanitize_coverage Current value (from the default) = "" - From //third_party/webrtc/webrtc.gni:155 + From //third_party/webrtc/webrtc.gni:167 Set to "func", "block", "edge" for coverage generation. At unit test runtime set UBSAN_OPTIONS="coverage=1". @@ -3839,33 +4410,51 @@ rtc_sanitize_coverage rtc_ssl_root Current value (from the default) = "" - From //third_party/webrtc/webrtc.gni:109 + From //third_party/webrtc/webrtc.gni:121 Used to specify an external OpenSSL include path when not compiling the library that comes with WebRTC (i.e. rtc_build_ssl == 0). +rtc_strict_field_trials + Current value (from the default) = "" + From //third_party/webrtc/webrtc.gni:248 + + When enabled, a run-time check will make sure that all field trial keys have + been registered in accordance with the field trial policy, see + g3doc/field-trials.md. The value can be set to the following: + + "dcheck": RTC_DCHECKs that the field trial has been registered. RTC_DCHECK + must be enabled separately. + + "warn": RTC_LOGs a message with LS_WARNING severity if the field trial + hasn't been registered. + rtc_use_absl_mutex Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:181 + From //third_party/webrtc/webrtc.gni:196 Enable this flag to make webrtc::Mutex be implemented by absl::Mutex. rtc_use_dummy_audio_file_devices Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:185 + From //third_party/webrtc/webrtc.gni:200 By default, use normal platform audio support or dummy audio, but don't use file-based audio playout and record. rtc_use_h264 - Current value = true - From //out/thorium/args.gn:47 - Overridden from the default = true - From //third_party/webrtc/webrtc.gni:178 + Current value (from the default) = false + From //third_party/webrtc/webrtc.gni:190 + +rtc_use_h265 + Current value (from the default) = false + From //third_party/webrtc/webrtc.gni:193 + + Enable to use H265 rtc_use_pipewire - Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:138 + Current value (from the default) = false + From //third_party/webrtc/webrtc.gni:150 Set this to use PipeWire on the Wayland display server. By default it's only enabled on desktop Linux (excludes ChromeOS) and @@ -3873,21 +4462,21 @@ rtc_use_pipewire supported Ubuntu and Debian distributions. rtc_use_x11 - Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:132 + Current value (from the default) = false + From //third_party/webrtc/webrtc.gni:144 Set this to false to skip building code that requires X11. rtc_use_x11_extensions - Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:285 + Current value (from the default) = false + From //third_party/webrtc/webrtc.gni:318 Set this to false to skip building code that also requires X11 extensions such as Xdamage, Xfixes. rtc_win_undef_unicode Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:221 + From //third_party/webrtc/webrtc.gni:229 When set to true and in a standalone build, it will undefine UNICODE and _UNICODE (which are always defined globally by the Chromium Windows @@ -3898,40 +4487,33 @@ rtc_win_undef_unicode runtime_call_stats_count_everything Current value (from the default) = false - From //third_party/blink/renderer/platform/BUILD.gn:189 + From //third_party/blink/renderer/platform/BUILD.gn:225 rust_sysroot_absolute Current value (from the default) = "" - From //build/config/rust.gni:40 + From //build/config/rust.gni:57 - Chromium currently has a Rust toolchain for Android and Linux, but - if you wish to experiment on more platforms you can use this - argument to specify an alternative toolchain. - This should be an absolute path to a directory - containing a 'bin' directory and others. Commonly + Chromium provides a Rust toolchain in //third_party/rust-toolchain. + + To use a custom toolchain instead, specify an absolute path to the root of + a Rust sysroot, which will have a 'bin' directory and others. Commonly /.rustup/toolchains/nightly-- -rustc_can_link - Current value (from the default) = true - From //build/config/rust.gni:73 +rust_toolchain_supports_nacl + Current value (from the default) = false + From //build/config/rust.gni:67 - Rust code may end up being linked into a final executable by: - * rustc (which calls lld) - * our pre-existing C++ linker invocations - At the moment, this first pipeline is incompatible with the ldflags we use - for thin LTO, due to some problem in escaping gn rules. There's a further - problem with -lunwind on Android. - However, Rust code is still useful if it's contributing to our existing - C++ linker invocations, so this doesn't disable Rust entirely. It does - disable Rust unit test executables, so we do need to fix this. - https://crbug.com/1229423 - NB this may be overridden by individual toolchains + If you're using a Rust toolchain as specified by rust_sysroot_absolute, + you can specify whether it supports nacl here. rustc_version Current value (from the default) = "" - From //build/config/rust.gni:32 + From //build/config/rust.gni:63 - The version string returned by rustc -V, if using an alternative toolchain. + If you're using a Rust toolchain as specified by rust_sysroot_absolute, + set this to the output of `rustc -V`. Changing this string will cause all + Rust targets to be rebuilt, which allows you to update your toolchain and + not break incremental builds. safe_browsing_mode Current value (from the default) = 1 @@ -3939,7 +4521,7 @@ safe_browsing_mode sample_profile_is_accurate Current value (from the default) = false - From //build/config/compiler/compiler.gni:147 + From //build/config/compiler/compiler.gni:150 Whether we should consider the profile we're using to be accurate. Accurate profiles have the benefit of (potentially substantial) binary size @@ -3948,7 +4530,7 @@ sample_profile_is_accurate sanitizer_coverage_flags Current value (from the default) = "" - From //build/config/sanitizers/sanitizers.gni:100 + From //build/config/sanitizers/sanitizers.gni:97 Value for -fsanitize-coverage flag. Setting this causes use_sanitizer_coverage to be enabled. @@ -3959,17 +4541,39 @@ sanitizer_coverage_flags Default value when unset and use_sanitizer_coverage=true: trace-pc-guard,indirect-calls +save_reproducers_on_lld_crash + Current value (from the default) = false + From //build/config/compiler/BUILD.gn:188 + + If true, linker crashes will be rerun with `--reproduce` which causes + a reproducer file to be saved. + seed_corpus_dir - Current value (from the default) = "//out/thorium/gen/components/viz/service/compositor_frame_fuzzer/binary_seed_corpus" + Current value (from the default) = "//out/test/gen/components/viz/service/compositor_frame_fuzzer/binary_seed_corpus" From //components/viz/service/compositor_frame_fuzzer/BUILD.gn:9 show_includes Current value (from the default) = false - From //build/config/compiler/BUILD.gn:177 + From //build/config/compiler/BUILD.gn:179 Enable -H, which prints the include tree during compilation. For use by tools/clang/scripts/analyze_includes.py +simple_template_names + Current value (from the default) = false + From //build/config/compiler/BUILD.gn:207 + + Use DWARF simple template names, with the following exceptions: + + * Windows is not supported as it doesn't use DWARF. + * Apple platforms (e.g. MacOS, iPhone, iPad) aren't supported because xcode + lldb doesn't have the needed changes yet. + TODO(crbug.com/1379070): Remove if the upstream default ever changes. + + This greatly reduces the size of debug builds, at the cost of + debugging information which is required by some specialized + debugging tools. + single_module_mode_handle_verifier Current value (from the default) = false From //base/win/BUILD.gn:11 @@ -3979,30 +4583,30 @@ single_module_mode_handle_verifier skia_enable_skshaper Current value (from the default) = true - From //third_party/skia/modules/skshaper/skshaper.gni:20 + From //third_party/skia/modules/skshaper/skshaper.gni:38 + +skia_enable_skshaper_tests + Current value (from the default) = true + From //third_party/skia/modules/skshaper/skshaper.gni:41 skia_use_dawn - Current value (from the default) = false - From //skia/features.gni:7 - - Enable experimental SkiaRenderer Dawn backend. - -skia_use_gl Current value (from the default) = true - From //skia/features.gni:8 + From //skia/features.gni:12 -skip_archive_compression + Enable experimental Skia Graphite Dawn backend. Enabled on platforms where + the team has verified that at least basic rendering to the screen is + working. + +skia_use_metal Current value (from the default) = false - From //chrome/installer/mini_installer/BUILD.gn:22 + From //skia/features.gni:18 - The Chrome archive is compressed in official builds to reduce the size of - the installer. By default: non-official or component builds, a build mode - targeting developers, do not compress so as to provide quicker build-test - cycles. + Enable experimental Skia Graphite Metal backend. Intended only for debugging + on non-official developer builds. skip_buildtools_check Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:312 + From //third_party/perfetto/gn/perfetto.gni:342 Skip buildtools dependency checks (needed for ChromeOS). @@ -4016,12 +4620,24 @@ strip_debug_info subpixel_font_rendering_disabled Current value (from the default) = false - From //gpu/ipc/service/BUILD.gn:13 + From //gpu/ipc/service/BUILD.gn:14 + +support_external_google_api_key + Current value (from the default) = false + From //google_apis/BUILD.gn:80 supports_llvm Current value (from the default) = true From //third_party/swiftshader/src/Reactor/reactor.gni:17 +supports_os_accessibility_service + Current value (from the default) = false + From //services/accessibility/buildflags.gni:26 + + Used to determine if the Accessibility Service should run + assistive technology features, or if the service is running + in a browser embedded in an OS that already has those features. + supports_subzero Current value (from the default) = true From //third_party/swiftshader/src/Reactor/reactor.gni:13 @@ -4043,9 +4659,7 @@ swiftshader_startup_dialog SwiftShader DLL gets loaded, to facilitate attaching a debugger. symbol_level - Current value = 0 - From //out/thorium/args.gn:19 - Overridden from the default = -1 + Current value (from the default) = -1 From //build/config/compiler/compiler.gni:60 How many symbols to include in the build. This affects the performance of @@ -4065,17 +4679,20 @@ sync_user_agent_product sysroot Current value (from the default) = "" - From //build/config/sysroot.gni:20 + From //build/config/sysroot.gni:18 The path of the sysroot for the current toolchain. If empty, default sysroot is used. system_headers_in_deps Current value (from the default) = false - From //build/toolchain/gcc_toolchain.gni:34 + From //build/toolchain/gcc_toolchain.gni:38 Use -MD instead of -MMD for compiler commands. This is useful for tracking - the comprehensive set of dependencies. + the comprehensive set of dependencies. It's also required when building + without the sysroot so that updates to system header files trigger a + rebuild (when using the sysroot, the CR_SYSROOT_KEY define takes care of + this already). system_libdir Current value (from the default) = "lib" @@ -4091,14 +4708,8 @@ system_libdir in similar fashion by setting the `system_libdir` variable in the build's args.gn file to 'lib' or 'lib64' as appropriate for the target architecture. -system_wayland_scanner_path - Current value (from the default) = "/usr/bin/wayland-scanner" - From //third_party/wayland/features.gni:17 - target_cpu - Current value = "x64" - From //out/thorium/args.gn:7 - Overridden from the default = "" + Current value (from the default) = "" (Internally set; try `gn help target_cpu`.) target_environment @@ -4111,35 +4722,43 @@ target_environment default is only there for compatibility reasons and will be removed (see crbug.com/1138425 for more details). +target_is_ios_device + Current value (from the default) = false + From //v8/gni/v8.gni:147 + + iOS device does not support executable code pages. Not we + use target_os == "ios" here because it isn't equivalent + to is_ios (is_ios is based on host_os). + target_os Current value = "win" - From //out/thorium/args.gn:6 + From //out/test/args.gn:3 Overridden from the default = "" (Internally set; try `gn help target_os`.) target_rpath Current value (from the default) = "" - From //build/config/chromecast_build.gni:30 + From //build/config/cast.gni:16 If non empty, rpath of executables is set to this. If empty, default value is used. target_sysroot Current value (from the default) = "" - From //build/config/sysroot.gni:13 + From //build/config/sysroot.gni:11 The path of the sysroot that is applied when compiling using the target toolchain. target_sysroot_dir Current value (from the default) = "//build/linux" - From //build/config/sysroot.gni:16 + From //build/config/sysroot.gni:14 The path to directory containing linux sysroot images. target_winuwp_family Current value (from the default) = "app" - From //build/config/win/BUILD.gn:34 + From //build/config/win/BUILD.gn:36 possible values: "app" - Windows Store Applications @@ -4150,7 +4769,7 @@ target_winuwp_family target_winuwp_version Current value (from the default) = "10" - From //build/config/win/BUILD.gn:26 + From //build/config/win/BUILD.gn:28 possible values for target_winuwp_version: "10" - Windows UWP 10 @@ -4159,30 +4778,90 @@ target_winuwp_version tests_have_location_tags Current value (from the default) = true - From //testing/test.gni:23 + From //testing/test.gni:21 Some component repos (e.g. ANGLE) import //testing but do not have "location_tags.json", and so we don't want to try and upload the tags for their tests. And, some build configs may simply turn off generation altogether. +thin_lto_enable_cache + Current value (from the default) = true + From //build/config/compiler/BUILD.gn:139 + + Whether to enable thin lto incremental builds. + See: https://clang.llvm.org/docs/ThinLTO.html#incremental + The cache can lead to non-determinism: https://crbug.com/1486045 + thin_lto_enable_optimizations - Current value = true - From //out/thorium/args.gn:59 - Overridden from the default = true - From //build/config/compiler/BUILD.gn:129 + Current value (from the default) = false + From //build/config/compiler/BUILD.gn:133 + +tint_build_benchmarks + Current value (from the default) = true + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:134 + +tint_build_cmds + Current value (from the default) = false + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:74 + +tint_build_glsl_validator + Current value (from the default) = true + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:114 tint_build_glsl_writer Current value (from the default) = true - From //third_party/dawn/tint_overrides_with_defaults.gni:72 + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:109 tint_build_hlsl_writer Current value (from the default) = true - From //third_party/dawn/tint_overrides_with_defaults.gni:67 + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:104 + +tint_build_ir_binary + Current value (from the default) = true + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:124 tint_build_msl_writer Current value (from the default) = true - From //third_party/dawn/tint_overrides_with_defaults.gni:62 + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:99 + +tint_build_syntax_tree_writer + Current value (from the default) = false + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:119 + +tint_build_unittests + Current value (from the default) = true + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:129 + +tint_glslang_dir + Current value (from the default) = "//third_party/vulkan-deps/glslang/src" + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:60 + +tint_src_dir + Current value (from the default) = "//third_party/dawn/src/tint" + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:141 + +toolchain_for_rust_host_build_tools + Current value (from the default) = false + From //build/toolchain/toolchain.gni:32 + + Whether this toolchain is to be used for building host tools that are + consumed during the build process. That includes proc macros and Cargo build + scripts. + +toolchain_supports_rust_thin_lto + Current value (from the default) = true + From //build/config/rust.gni:78 + + Whether artifacts produced by the Rust compiler can participate in ThinLTO. + + One important consideration is whether the linker uses the same LLVM + version as `rustc` (i.e. if it can understand the LLVM-IR from the + compilation artifacts produced by `rustc`). In LaCrOS and ash builds this + may not be true - see b/299483903. + + TODO(https://crbug.com/1482525): Re-enable ThinLTO for Rust on LaCrOS + TODO(b/300937673): Re-enable ThinLTO for Rust on ash-chrome toolkit_views Current value (from the default) = true @@ -4199,63 +4878,48 @@ treat_warnings_as_errors builds on Linux that could use a different version of the compiler. With GCC, warnings in no-Chromium code are always not treated as errors. -trial_comparison_cert_verifier_supported - Current value (from the default) = false - From //net/features.gni:40 - - Platforms where the cert verifier comparison trial is supported. - See https://crbug.com/649026. - use_afl Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:75 + From //build/config/sanitizers/sanitizers.gni:76 Compile for fuzzing with AFL. -use_allocator - Current value (from the default) = "partition" - From //base/allocator/allocator.gni:48 - - Memory allocator to use. Set to "none" to use default allocator. - use_allocator_shim - Current value (from the default) = true - From //base/allocator/allocator.gni:51 + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:39 - Causes all the allocations to be routed via allocator_shim.cc. + Causes all the allocations to be routed via allocator_shim.cc. Usually, + the allocator shim will, in turn, route them to Partition Alloc, but + other allocators are also supported by the allocator shim. use_alsa - Current value (from the default) = true - From //media/media_options.gni:129 - -use_amdgpu_minigbm Current value (from the default) = false - From //third_party/minigbm/BUILD.gn:17 + From //media/media_options.gni:191 + + Enables runtime selection of ALSA library for audio. use_android_unwinder_v2 - Current value (from the default) = false - From //build/config/compiler/compiler.gni:33 + Current value (from the default) = true + From //build/config/compiler/compiler.gni:144 Set to true to use the android unwinder V2 implementation. -use_android_user_agent - Current value (from the default) = false - From //chromecast/chromecast.gni:91 - - Include 'Android' in user agent string to avoid being served desktop - versions of websites. - TODO(halliwell): consider making this default for all Cast hardware. - use_arc_protected_media Current value (from the default) = false - From //media/gpu/args.gni:44 + From //media/gpu/args.gni:34 Indicates if the ChromeOS protected media functionality should also be utilized by HW video decoding for ARC. use_asan_backup_ref_ptr Current value (from the default) = false - From //base/allocator/allocator.gni:115 + From //base/allocator/partition_allocator/partition_alloc.gni:163 + +use_asan_unowned_ptr + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:167 + + Use probe-on-destruct unowned ptr detection with ASAN. use_aura Current value (from the default) = true @@ -4264,36 +4928,40 @@ use_aura Indicates if Aura is enabled. Aura is a low-level windowing library, sort of a replacement for GDI or GTK. -use_backup_ref_ptr - Current value (from the default) = false - From //base/allocator/allocator.gni:89 +use_av1_hw_decoder + Current value (from the default) = true + From //media/gpu/args.gni:42 - Set use_backup_ref_ptr true to use BackupRefPtr (BRP) as the implementation - of raw_ptr, and enable PartitionAlloc support for it. + A platform that is capable of hardware av1 decoding. + +use_blink + Current value (from the default) = true + From //build/config/features.gni:41 use_blink_extensions_chromeos Current value (from the default) = false - From //third_party/blink/renderer/config.gni:49 + From //third_party/blink/renderer/config.gni:46 If true, the experimental renderer extensions library will be used. use_bluez - Current value (from the default) = true + Current value (from the default) = false From //device/bluetooth/cast_bluetooth.gni:5 use_bundled_fontconfig Current value (from the default) = true From //third_party/fontconfig/fontconfig.gni:11 -use_bundled_weston +use_centipede Current value (from the default) = false - From //ui/ozone/platform/wayland/wayland.gni:14 + From //build/config/sanitizers/sanitizers.gni:73 - Checks if Weston must be compiled + Compile for fuzzing with centipede. + See https://github.com/google/centipede use_cfi_cast Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:115 + From //build/config/sanitizers/sanitizers.gni:122 Enable checks for bad casts: derived cast and unrelated cast. TODO(krasin): remove this, when we're ready to add these checks by default. @@ -4301,28 +4969,24 @@ use_cfi_cast use_cfi_diag Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:64 + From //build/config/sanitizers/sanitizers.gni:61 Print detailed diagnostics when Control Flow Integrity detects a violation. use_cfi_icall Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:61 + From //build/config/sanitizers/sanitizers.gni:58 use_cfi_recover Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:68 + From //build/config/sanitizers/sanitizers.gni:65 Let Control Flow Integrity continue execution instead of crashing when printing diagnostics (use_cfi_diag = true). -use_chromecast_cdms - Current value (from the default) = true - From //chromecast/chromecast.gni:197 - use_chromeos_protected_av1 Current value (from the default) = false - From //media/gpu/args.gni:49 + From //media/gpu/args.gni:39 Indicates if ChromeOS protected media supports the AV1 codec. By default H.264, VP9 and HEVC are enabled if protected media is enabled; AV1 is @@ -4330,28 +4994,12 @@ use_chromeos_protected_av1 use_chromeos_protected_media Current value (from the default) = false - From //media/gpu/args.gni:40 + From //media/gpu/args.gni:30 Indicates if ChromeOS protected media support exists. This is used to enable the CDM daemon in Chrome OS as well as support for - encrypted content with HW video decoders. - TODO(jkardatzke): Enable this for Lacros always, it is determined at runtime - in that configuration. - -use_chromium_rust_toolchain - Current value (from the default) = false - From //build/config/rust.gni:29 - - Use experimental Rust toolchain built in-tree. See //tools/rust. For now, - only use it for linux targets. The package only has prebuilt libs for linux. - More targets will be added later. - - Ideally this should check `current_os` so that e.g. Android builds will use - the Android toolchain for target artifacts and the Chromium Rust toolchain - for host artifacts. Currently there is an std mixup in //build/rust/std that - prevents this. - - TODO(https://crbug.com/1245714): fix std handling and check `current_os`. + encrypted content with HW video decoders. This is always enabled for Lacros + because it detects support at runtime. use_clang_coverage Current value (from the default) = false @@ -4359,7 +5007,7 @@ use_clang_coverage use_clang_diagnostics_format Current value (from the default) = false - From //build/config/win/BUILD.gn:43 + From //build/config/win/BUILD.gn:45 Set this to use clang-style diagnostics format instead of MSVC-style, which is useful in e.g. Emacs compilation mode. @@ -4375,31 +5023,31 @@ use_clang_profiling use_clang_profiling_inside_sandbox Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:180 + From //build/config/sanitizers/sanitizers.gni:229 use_command_buffer - Current value (from the default) = false - From //device/vr/buildflags/buildflags.gni:14 + Current value (from the default) = true + From //device/vr/buildflags/buildflags.gni:23 use_cras Current value (from the default) = false - From //media/media_options.gni:44 + From //media/media_options.gni:67 Override to dynamically link the cras (ChromeOS audio) library. use_crash_key_stubs Current value (from the default) = false - From //components/crash/core/common/BUILD.gn:11 + From //components/crash/core/common/BUILD.gn:12 If set to true, this will stub out and disable the entire crash key system. use_cups - Current value (from the default) = true - From //printing/buildflags/buildflags.gni:27 + Current value (from the default) = false + From //printing/buildflags/buildflags.gni:40 use_cups_ipp Current value (from the default) = false - From //printing/buildflags/buildflags.gni:51 + From //printing/buildflags/buildflags.gni:74 Enables the CUPS IPP printing backend. TODO(crbug.com/226176): Remove this after CUPS PPD API calls are removed. @@ -4408,9 +5056,15 @@ use_custom_libcxx Current value (from the default) = true From //build/config/c++/c++.gni:15 + Use in-tree libc++ (buildtools/third_party/libc++ and + buildtools/third_party/libc++abi) instead of the system C++ library for C++ + standard library support. + Don't check in changes that set this to false for more platforms; doing so + is not supported. + use_custom_libcxx_for_host Current value (from the default) = false - From //build/config/c++/c++.gni:25 + From //build/config/c++/c++.gni:24 Use libc++ instead of stdlibc++ when using the host_cpu toolchain, even if use_custom_libcxx is false. This is useful for cross-compiles where a custom @@ -4419,22 +5073,30 @@ use_custom_libcxx_for_host expected usage is to set use_custom_libcxx=false and use_custom_libcxx_for_host=true in the passed in buildargs. -use_cxx11 +use_custom_libunwind Current value (from the default) = false - From //build/config/compiler/BUILD.gn:89 + From //build/config/unwind.gni:6 - Allow projects that wish to stay on C++11 to override Chromium's default. + Use in-tree libunwind (buildtools/third_party/libunwind) instead of whatever + system library provides unwind symbols (e.g. libgcc). + +use_cxx17 + Current value (from the default) = false + From //build_overrides/build.gni:58 + + Allow projects that wish to stay on C++17 to override Chromium's default. + TODO(crbug.com/1402249): evaluate removing this end of 2023 use_dawn Current value (from the default) = true From //ui/gl/features.gni:21 Should Dawn support be compiled to back the WebGPU implementation? - Also controls linking Dawn depedencies in such as SPIRV-Tools/SPIRV-Cross. + Also controls linking Dawn dependencies in such as SPIRV-Tools/SPIRV-Cross. use_dbus - Current value (from the default) = true - From //build/config/features.gni:31 + Current value (from the default) = false + From //build/config/features.gni:37 use_debug_fission Current value (from the default) = "default" @@ -4452,12 +5114,12 @@ use_debug_fission been set, e.g. by a toolchain_args() block. use_dummy_lastchange - Current value (from the default) = false + Current value (from the default) = true From //build/util/lastchange.gni:9 use_dwarf5 Current value (from the default) = false - From //build/config/compiler/BUILD.gn:165 + From //build/config/compiler/BUILD.gn:167 Enable DWARF v5. @@ -4467,31 +5129,23 @@ use_egl use_external_fuzzing_engine Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:78 + From //build/config/sanitizers/sanitizers.gni:79 Compile for fuzzing with an external engine (e.g., Grammarinator). use_external_popup_menu Current value (from the default) = false - From //content/common/features.gni:9 + From //content/common/features.gni:11 Whether or not to use external popup menu. -use_exynos_minigbm +use_freeslot_bitmap Current value (from the default) = false - From //third_party/minigbm/BUILD.gn:18 - -use_fake_binary_experiment - Current value (from the default) = false - From //base/allocator/allocator.gni:113 - - Registers the binary for a fake binary A/B experiment. The binaries built - with this flag have no behavior difference, except for setting a synthetic - Finch. + From //base/allocator/partition_allocator/partition_alloc.gni:103 use_full_pdb_paths Current value (from the default) = false - From //build/config/compiler/BUILD.gn:173 + From //build/config/compiler/BUILD.gn:175 Override this to put full paths to PDBs in Windows PE files. This helps windbg and Windows Performance Analyzer with finding the PDBs in some local- @@ -4509,41 +5163,34 @@ use_gcm_from_platform use_ghash Current value (from the default) = true - From //build/config/compiler/BUILD.gn:119 + From //build/config/compiler/BUILD.gn:123 Turn this on to use ghash feature of lld for faster debug link on Windows. http://blog.llvm.org/2018/01/improving-link-time-on-windows-with.html use_gio - Current value (from the default) = true - From //build/config/features.gni:33 + Current value (from the default) = false + From //build/config/features.gni:39 use_glib - Current value (from the default) = true - From //build/config/ui.gni:36 - -use_gnome_keyring Current value (from the default) = false - From //components/os_crypt/features.gni:11 - - Whether to use libgnome-keyring (deprecated by libsecret). - See http://crbug.com/466975 and http://crbug.com/355223. + From //build/config/ui.gni:36 use_gold Current value (from the default) = false - From //build/config/compiler/compiler.gni:221 + From //build/config/compiler/compiler.gni:245 Whether to use the gold linker from binutils instead of lld or bfd. use_goma Current value (from the default) = false - From //build/toolchain/goma.gni:9 + From //build/toolchain/goma.gni:11 Set to true to enable distributed compilation using Goma. use_goma_rust Current value (from the default) = false - From //build/config/rust.gni:60 + From //build/config/rust.gni:95 Use goma for Rust builds. Experimental. The only known problem is b/193072381, but then again, we don't expect a build speedup before much @@ -4551,19 +5198,25 @@ use_goma_rust use_goma_thin_lto Current value (from the default) = false - From //build/config/compiler/compiler.gni:95 + From //build/config/compiler/compiler.gni:99 If true, use Goma for ThinLTO code generation where applicable. use_gtk - Current value (from the default) = true + Current value (from the default) = false From //build/config/linux/gtk/gtk.gni:9 Whether or not we should use libgtk. +use_hashed_jni_names + Current value (from the default) = false + From //third_party/jni_zero/jni_zero.gni:15 + + Use hashed symbol names to reduce JNI symbol overhead. + use_icf - Current value (from the default) = true - From //build/config/compiler/BUILD.gn:190 + Current value (from the default) = false + From //build/config/compiler/BUILD.gn:220 Set to true to use icf, Identical Code Folding. @@ -4575,13 +5228,9 @@ use_icf lld doesn't have the bug. -use_intel_minigbm - Current value (from the default) = false - From //third_party/minigbm/BUILD.gn:19 - use_internal_autofill_patterns Current value (from the default) = false - From //components/autofill/core/browser/BUILD.gn:30 + From //components/autofill/core/browser/BUILD.gn:32 Normally, only branded builds use Google-internal sets of parsing patterns. @@ -4590,10 +5239,10 @@ use_internal_autofill_patterns use_internal_isolated_origins Current value (from the default) = false - From //components/site_isolation/BUILD.gn:18 + From //components/site_isolation/BUILD.gn:21 - Normally, only Google Chrome Android and Fuchsia WebEngine builds will use - a Google-internal list of isolated origins defined below. + Normally, only Google Chrome Android and some Fuchsia WebEngine builds will + use a Google-internal list of isolated origins defined below. If other Fuchsia embedders are added, the associated logic may need to be updated. See crbug.com/1179087. @@ -4608,46 +5257,42 @@ use_jacoco_coverage Enables JaCoCo Java code coverage. -use_java_goma +use_jank_tracker_for_experiments Current value (from the default) = false - From //build/toolchain/goma.gni:26 + From //ui/latency/BUILD.gn:9 - TODO(crbug.com/726475): true if use_goma = true in the future. +use_javascript_coverage + Current value (from the default) = false + From //build/config/coverage/coverage.gni:39 + + Enables TypeScript/JavaScript code coverage. use_kerberos Current value (from the default) = true - From //net/features.gni:19 + From //net/features.gni:21 Enable Kerberos authentication. It is disabled by default on iOS, Fuchsia and Chromecast, at least for now. This feature needs configuration (krb5.conf and so on). TODO(fuchsia): Enable kerberos on Fuchsia when it's implemented there. -use_large_pdbs - Current value (from the default) = false - From //build/config/win/BUILD.gn:48 - - Indicates whether to use /pdbpagesize:8192 to allow PDBs larger than 4 GiB. - This requires updated debugging and profiling tools which are not widely - distributed yet which is why it is currently opt-in. - use_layout_plugin Current value (from the default) = true - From //third_party/blink/renderer/core/BUILD.gn:86 + From //third_party/blink/renderer/core/BUILD.gn:100 Set to true to enable the clang layout plugin that help you to follow the layout-related restrictions during compilation. use_libfuzzer Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:72 + From //build/config/sanitizers/sanitizers.gni:69 Compile for fuzzing with LLVM LibFuzzer. See http://www.chromium.org/developers/testing/libfuzzer use_libgav1_parser Current value (from the default) = true - From //third_party/libgav1/options.gni:14 + From //third_party/libgav1/options.gni:9 use_libinput Current value (from the default) = false @@ -4663,26 +5308,23 @@ use_libjpeg_turbo use_system_libjpeg is set. use_libpci - Current value (from the default) = true - From //third_party/angle/BUILD.gn:28 + Current value (from the default) = false + From //third_party/angle/BUILD.gn:31 Use the PCI lib to collect GPU information on Linux. use_lld - Current value = true - From //out/thorium/args.gn:22 - Overridden from the default = true - From //build/config/compiler/compiler.gni:42 + Current value (from the default) = true + From //build/config/compiler/compiler.gni:38 Set to true to use lld, the LLVM linker. In late bring-up on macOS (see docs/mac_lld.md). - Tentatively used on iOS, except in cronet builds (cronet still supports - 32-bit builds, which lld doesn't support). + Tentatively used on iOS. The default linker everywhere else. use_locally_built_instrumented_libraries Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:47 + From //build/config/sanitizers/sanitizers.gni:44 Use dynamic libraries instrumented by one of the sanitizers instead of the standard system libraries. Set this flag to build the libraries from source. @@ -4693,59 +5335,30 @@ use_low_quality_image_interpolation If true, defaults image interpolation to low quality. -use_lto_in_rustc_linking +use_ml_inliner Current value (from the default) = false - From //build/config/rust.gni:55 + From //build/config/compiler/compiler.gni:140 - Use LTO when using rustc to link binaries. Experimental. Currently incompatible - with the options we use in our C++ toolchain to split LTO units. - This has no effect on the production of normal Chrome binaries, which are - linked by clang/lld rather than rustc. - https://crbug.com/1229419 - -use_marvell_minigbm - Current value (from the default) = false - From //third_party/minigbm/BUILD.gn:20 - -use_mediatek_minigbm - Current value (from the default) = false - From //third_party/minigbm/BUILD.gn:21 - -use_meson_minigbm - Current value (from the default) = false - From //third_party/minigbm/BUILD.gn:22 - -use_mini_bho - Current value (from the default) = false - From //chrome/browser/browser_switcher/bho/BUILD.gn:15 - - If true, compile a BHO that doesn't depend on the CRT to significantly - minimize binary size. + Set to true to enable using the ML inliner in LLVM. This currently only + enables the ML inliner when targeting Android. + Currently the ML inliner is only supported on linux hosts use_mpris - Current value (from the default) = true + Current value (from the default) = false From //components/system_media_controls/linux/buildflags/buildflags.gni:11 Enables Chromium implementation of the MPRIS D-Bus interface for controlling media playback. See ../README.md for details. -use_msm_minigbm - Current value (from the default) = false - From //third_party/minigbm/BUILD.gn:23 - -use_mte_checked_ptr - Current value (from the default) = false - From //base/allocator/allocator.gni:91 - use_nss_certs - Current value (from the default) = true + Current value (from the default) = false From //crypto/features.gni:9 True if NSS is used for certificate handling. use_official_enterprise_connectors_api_keys Current value (from the default) = false - From //chrome/browser/BUILD.gn:66 + From //chrome/browser/BUILD.gn:71 You can set the variable 'use_official_enterprise_connectors_api_keys' to true to use the Google-internal file containing official API keys @@ -4759,59 +5372,74 @@ use_official_enterprise_connectors_api_keys use_official_google_api_keys Current value (from the default) = "" - From //google_apis/BUILD.gn:33 + From //google_apis/BUILD.gn:29 - You can set the variable 'use_official_google_api_keys' to true + Set the variable 'use_official_google_api_keys' to true to use the Google-internal file containing official API keys - for Google Chrome even in a developer build. Setting this - variable explicitly to true will cause your build to fail if the - internal file is missing. + even in a developer build. Setting this variable explicitly to + true will cause the build to fail if the internal file is missing. - The variable is documented here, but not handled in this file; - see //google_apis/determine_use_official_keys.gypi for the - implementation. + Set the variable to false to not use the internal file, even for + Chrome-branded builds or when it exists in your checkout. - Set the variable to false to not use the internal file, even when - it exists in your checkout. - - Leave it unset or set to "" to have the variable - implicitly set to true if you have - src/google_apis/internal/google_chrome_api_keys.h in your - checkout, and implicitly set to false if not. - - Note that official builds always behave as if the variable - was explicitly set to true, i.e. they always use official keys, - and will fail to build if the internal file is missing. + Leave it set to "" to have the variable implicitly set to true for + Chrome-branded builds or if + //src/google_apis/internal/google_chrome_api_keys.h is present and false + otherwise. + This does not apply to iOS builds, which use different mechanisms and always + evaluate to use_official_google_api_keys=false. + See https://crbug.com/1183709. use_ozone - Current value (from the default) = true - From //build/config/ozone.gni:13 + Current value (from the default) = false + From //build/config/ozone.gni:12 + + Indicates if Ozone is enabled. Ozone is a low-level library layer for Linux + that does not require X11. use_pangocairo - Current value (from the default) = true + Current value (from the default) = false From //build/config/linux/pangocairo/pangocairo.gni:9 use_partition_alloc Current value (from the default) = true - From //base/allocator/allocator.gni:61 + From //base/allocator/partition_allocator/partition_alloc.gni:58 Whether PartitionAlloc should be available for use or not. true makes PartitionAlloc linked to the executable or shared library and makes it available for use. It doesn't mean that the default allocator - is PartitionAlloc, which is governed by |use_allocator|. + is PartitionAlloc, which is governed by |use_partition_alloc_as_malloc|. - This flag is currently set to false only on Cronet bots, because Cronet - doesn't use PartitionAlloc at all, and doesn't wish to incur the library - size increase (crbug.com/674570). + N.B. generally, embedders should look at this GN arg and at the + corresponding buildflag to determine whether to interact with PA + source at all (pulling the component in via GN, including headers, + etc.). There is nothing stopping a lazy embedder from ignoring this + and unconditionally using PA, but such a setup is inadvisable. + + In Chromium, this is set true, except: + + 1. On Cronet bots, because Cronet doesn't use PartitionAlloc at all, + and doesn't wish to incur the library size increase (crbug.com/674570). + 2. On NaCl (through this declaration), where PartitionAlloc doesn't + build at all. + +use_partition_alloc_as_malloc + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:85 + + PartitionAlloc-Everywhere (PA-E). Causes allocator_shim.cc to route + calls to PartitionAlloc, rather than some other platform allocator. use_perfetto_client_library - Current value (from the default) = false - From //build_overrides/build.gni:28 + Current value (from the default) = true + From //build_overrides/build.gni:42 - Switches the TRACE_EVENT instrumentation from base's TraceLog implementation - to //third_party/perfetto's client library. Not implemented yet, currently a - no-op to set up trybot infrastructure. - TODO(crbug/1006769): Switch to perfetto's client library. +use_perfetto_trace_processor + Current value (from the default) = true + From //build_overrides/build.gni:65 + + Use Perfetto's trace processor for converting protobuf-encoded traces to + the legacy JSON format in base::TraceLog. use_platform_icu_alternatives Current value (from the default) = false @@ -4820,25 +5448,30 @@ use_platform_icu_alternatives Enables the use of ICU alternatives in lieu of ICU for the target toolchain. The flag is used for Cronet to reduce the size of the Cronet binary. +use_profi + Current value (from the default) = false + From //build/config/compiler/BUILD.gn:184 + + Enable Profi algorithm. Profi can infer block and edge counts. + https://clang.llvm.org/docs/UsersManual.html#using-sampling-profilers + TODO(crbug.com/1375958i:) Possibly enable this for Android too. + use_pulseaudio - Current value (from the default) = true - From //media/media_options.gni:140 + Current value (from the default) = false + From //media/media_options.gni:188 + + Enables runtime selection of PulseAudio library. use_qt Current value (from the default) = false - From //ui/qt/qt.gni:7 + From //ui/qt/qt.gni:12 - https://crbug.com/1317782 enable QT UI by default on Linux. + TODO(https://crbug.com/1424435): Allow QT in MSAN builds once QT is + added to the instrumented libraries. -use_radeon_minigbm +use_qt6 Current value (from the default) = false - From //third_party/minigbm/BUILD.gn:24 - -use_rbe - Current value (from the default) = false - From //build/toolchain/rbe.gni:17 - - Set to true to enable remote compilation using reclient (deprecated). + From //ui/qt/qt.gni:22 use_real_dbus_clients Current value (from the default) = false @@ -4846,55 +5479,37 @@ use_real_dbus_clients Instantiate real D-Bus clients instead of fakes. +use_relative_vtables_abi + Current value (from the default) = false + From //build/config/compiler/compiler.gni:155 + + Use offsets rather than pointers in vtables in order to reduce the number of + relocations. This is safe to enable only when all C++ code is built with the + flag set to the same value. + use_remoteexec Current value (from the default) = false From //build/toolchain/rbe.gni:14 Set to true to enable remote compilation using reclient. -use_rockchip_minigbm +use_remoteexec_links Current value (from the default) = false - From //third_party/minigbm/BUILD.gn:25 + From //build/toolchain/rbe.gni:17 -use_rts - Current value (from the default) = false - From //build/config/rts.gni:4 - - For more info about RTS, please see - //docs/testing/regression-test-selection.md + Set to true to enable remote linking using reclient. use_rtti Current value (from the default) = false - From //build/config/compiler/BUILD.gn:80 + From //build/config/compiler/BUILD.gn:82 Build with C++ RTTI enabled. Chromium builds without RTTI by default, but some sanitizers are known to require it, like CFI diagnostics and UBsan variants. -use_runtime_vlog - Current value (from the default) = true - From //build/config/logging.gni:31 - - Use runtime vlog everywhere except for ash-chrome. - When `use_runtime_vlog` is true, - command line switch `--vmodule=xxx` or `--v=x` could be used to - control vlog level at runtime. - when `use_runtime_volog` is false, - verbose log level is controlled by `ENABLE_VLOG_LEVEL` macro. VLOG(n) - is kept and generate output if `n` is less than or equal to the vlog - level defined by the macro. - Command line switch `--vmodule=xxx`, or `--v=x` would have no effect. - - Runtime vlog is used everywhere except on ash-chrome. - Ash-chrome has a few vmodule patterns that need to be used indefinitely - to investigate problems from logs in feedback reports. These vmodule - patterns are using too much cpu cycles (see http://crbug/489441). Turning - off runtime vlog and using build time vlog would avoid paying that cpu tax - and have a nice side effect of a smaller production binary. - use_sanitizer_configs_without_instrumentation Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:105 + From //build/config/sanitizers/sanitizers.gni:102 When enabled, only relevant sanitizer defines are set, but compilation happens with no extra flags. This is useful when in component build @@ -4902,7 +5517,14 @@ use_sanitizer_configs_without_instrumentation use_sanitizer_coverage Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:169 + From //build/config/sanitizers/sanitizers.gni:218 + +use_siso + Current value (from the default) = false + From //build/toolchain/siso.gni:6 + + Placeholder to allow having use_siso in args.gn files and to disable + precompiled headers in siso builds. use_static_angle Current value (from the default) = false @@ -4917,23 +5539,9 @@ use_swiftshader_with_subzero Subzero produces much smaller binaries, so always use it when available, except for MSan builds which only get Reactor code instrumented with LLVM. -use_synaptics_minigbm - Current value (from the default) = false - From //third_party/minigbm/BUILD.gn:26 - use_sysroot Current value (from the default) = true - From //build/config/sysroot.gni:24 - - Controls default is_linux sysroot. If set to true, and sysroot - is empty, default sysroot is calculated. - -use_system_crash_handler - Current value (from the default) = false - From //chromecast/chromecast.gni:138 - - Set to true to forward crashes to the system's crash handler instead of - handling them internally. This disables the built-in crash handler. + From //build/config/sysroot.gni:23 use_system_freetype Current value (from the default) = false @@ -4959,18 +5567,10 @@ use_system_harfbuzz use_system_lcms2 Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:60 + From //third_party/pdfium/pdfium.gni:69 Don't build against bundled lcms2. -use_system_libdrm - Current value (from the default) = true - From //build/config/linux/libdrm/BUILD.gn:14 - - Controls whether the build should use the version of libdrm library shipped - with the system. In release builds of desktop Linux and Chrome OS we use the - system version. Some Chromecast devices use this as well. - use_system_libjpeg Current value (from the default) = false From //third_party/libjpeg.gni:7 @@ -4979,175 +5579,101 @@ use_system_libjpeg use_system_libopenjpeg2 Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:63 + From //third_party/pdfium/pdfium.gni:72 Don't build against bundled libopenjpeg2. use_system_libpng Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:66 + From //third_party/pdfium/pdfium.gni:75 Don't build against bundled libpng. -use_system_libsync +use_system_libtiff Current value (from the default) = false - From //third_party/libsync/BUILD.gn:13 + From //third_party/pdfium/pdfium.gni:78 - Controls whether the build should use the version of libsync - library shipped with the system. In release builds of Chrome OS we - use the system version, but when building on dev workstations we - bundle it because Ubuntu doesn't ship a usable version. - -use_system_libwayland - Current value (from the default) = true - From //third_party/wayland/features.gni:12 - - Controls whether the build should use the version of Wayland - library shipped with the system or Chromium third_party. - -use_system_minigbm - Current value (from the default) = true - From //third_party/minigbm/BUILD.gn:15 - - Controls whether the build should use the version of minigbm library shipped - with the system. In release builds of desktop Linux and Chrome OS we use the - system version. - -use_system_wayland_scanner - Current value (from the default) = false - From //third_party/wayland/features.gni:21 - - This may be set by Chromium packagers who do not wish to use the bundled - wayland scanner. + Don't build against bundled libtiff. use_system_zlib Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:57 + From //third_party/pdfium/pdfium.gni:81 Don't build against bundled zlib. -use_tegra_minigbm - Current value (from the default) = false - From //third_party/minigbm/BUILD.gn:27 - use_text_section_splitting Current value (from the default) = false - From //build/config/compiler/BUILD.gn:149 + From //build/config/compiler/BUILD.gn:164 This argument is to control whether enabling text section splitting in the final binary. When enabled, the separated text sections with prefix '.text.hot', '.text.unlikely', '.text.startup' and '.text.exit' will not be merged to '.text' section. This allows us to identify the hot code section - ('.text.hot') in the binary which may be mlocked or mapped to huge page to - reduce TLB misses which gives performance improvement on cpu usage. - The gold linker by default has text section splitting enabled. + ('.text.hot') in the binary, which allows our data collection pipelines to + more easily identify code that we assume to be hot/cold that doesn't turn + out to be such in the field. use_thin_lto - Current value = true - From //out/thorium/args.gn:58 - Overridden from the default = true - From //build/config/compiler/compiler.gni:89 + Current value (from the default) = false + From //build/config/compiler/compiler.gni:92 + +use_typeface_fontations + Current value (from the default) = true + From //build/config/rust.gni:127 + + Enable experimental Fontations Rust font stack. use_udev - Current value (from the default) = true - From //build/config/features.gni:29 + Current value (from the default) = false + From //build/config/features.gni:35 libudev usage. This currently only affects the content layer. -use_unix_sockets - Current value (from the default) = false - From //chromecast/chromecast.gni:125 - - Whether use unix sockets in Cast input/output stream. - use_unofficial_version_number Current value (from the default) = true - From //components/version_info/BUILD.gn:10 + From //base/version_info/use_unofficial_version_number.gni:8 use_v4l2_codec Current value (from the default) = false - From //media/gpu/args.gni:22 - - Indicates if Video4Linux2 codec is used. This is used for all CrOS - platforms which have v4l2 hardware encoder / decoder. - -use_v4l2_codec_aml - Current value (from the default) = false - From //media/gpu/args.gni:26 - - Indicates if Video4Linux2 AML encoder is used. This is used for AML - platforms which have v4l2 hardware encoder + From //media/gpu/args.gni:15 use_v4lplugin Current value (from the default) = false - From //media/gpu/args.gni:18 + From //media/gpu/args.gni:10 Indicates if V4L plugin is used. use_v8_context_snapshot - Current value = true - From //out/thorium/args.gn:24 - Overridden from the default = true + Current value (from the default) = false From //tools/v8_context_snapshot/v8_context_snapshot.gni:19 use_vaapi - Current value (from the default) = true - From //media/gpu/args.gni:32 + Current value (from the default) = false + From //media/gpu/args.gni:21 Indicates if VA-API-based hardware acceleration is to be used. This is typically the case on x86-based ChromeOS devices. - VA-API should also be compiled by default on x11-using linux devices + VA-API should also be compiled by default on x11/wayland linux devices using x86/x64. use_vaapi_image_codecs Current value (from the default) = false - From //media/gpu/args.gni:69 + From //media/gpu/args.gni:62 VA-API also allows decoding of images, but we don't want to use this outside of chromeos, even if video decoding is enabled. -use_vaapi_x11 - Current value (from the default) = true - From //media/gpu/args.gni:12 - -use_vc4_minigbm - Current value (from the default) = false - From //third_party/minigbm/BUILD.gn:28 - use_viz_debugger - Current value (from the default) = false - From //components/viz/common/debugger/viz_debugger.gni:8 + Current value (from the default) = true + From //components/viz/common/debugger/viz_debugger.gni:10 Indicates if the Viz Debugger is enabled. This is disabled by default on - official builds due to security and performance reasons. - -use_vr_assets_component - Current value = true - From //out/thorium/args.gn:41 - Overridden from the default = false - From //chrome/browser/vr/features.gni:12 - - Whether to register, download, etc. the VR assets component. - -use_wayland_gbm - Current value (from the default) = true - From //ui/ozone/platform/wayland/wayland.gni:11 - - Checks if Wayland must be compiled with dmabuf/gbm feature, which allows a - multi-process hardware accelerated mode. - -use_webaudio_ffmpeg - Current value = false - From //out/thorium/args.gn:39 - Overridden from the default = false - From //third_party/blink/renderer/config.gni:46 - - If true, ffmpeg will be used for computing FFTs for WebAudio + official builds due to security and performance reasons. test + crbug/1466891 Fuchia threading model does not play well with the + visual debugger multithreaded submission mechanism. use_webaudio_pffft - Current value = true - From //out/thorium/args.gn:40 - Overridden from the default = true + Current value (from the default) = true From //third_party/blink/renderer/config.gni:20 If true, use PFFFT for WebAudio FFT support. Do not use for Mac because the @@ -5158,7 +5684,7 @@ use_wuffs_gif_parser From //third_party/wuffs/config.gni:6 use_xkbcommon - Current value (from the default) = true + Current value (from the default) = false From //ui/base/ui_features.gni:10 use_zucchini @@ -5170,7 +5696,7 @@ use_zucchini using_mismatched_sample_profile Current value (from the default) = false - From //build/config/compiler/compiler.gni:102 + From //build/config/compiler/compiler.gni:106 Whether we're using a sample profile collected on an architecture different than the one we're compiling for. @@ -5180,60 +5706,60 @@ using_mismatched_sample_profile v8_advanced_bigint_algorithms Current value (from the default) = true - From //v8/gni/v8.gni:96 + From //v8/gni/v8.gni:139 Enable advanced BigInt algorithms, costing about 10-30 KB binary size depending on platform. Disabled on Android to save binary size. v8_allocation_site_tracking Current value (from the default) = true - From //v8/BUILD.gn:355 + From //v8/BUILD.gn:382 Enable global allocation site tracking. v8_android_log_stdout Current value (from the default) = false - From //v8/BUILD.gn:31 + From //v8/BUILD.gn:29 Print to stdout on Android. v8_annotate_torque_ir Current value (from the default) = false - From //v8/BUILD.gn:277 + From //v8/BUILD.gn:307 Generate comments describing the Torque intermediate representation. v8_builtins_profiling_log_file - Current value (from the default) = "" - From //v8/BUILD.gn:190 + Current value (from the default) = "default" + From //v8/BUILD.gn:218 Provides the given V8 log file as an input to mksnapshot, where it can be used for profile-guided optimization of builtins. To do profile-guided optimizations of builtins: 1. Build with v8_enable_builtins_profiling = true - 2. Run your chosen workload with the --turbo-profiling-log-builtins flag. + 2. Run your chosen workload with the --turbo-profiling-output flag. For Chrome, the invocation might look like this: chrome --no-sandbox --disable-extensions - --js-flags="--turbo-profiling-log-builtins --logfile=path/to/v8.log" + --js-flags="--turbo-profiling-output=v8.builtins.pgo" "http://localhost/test-suite" - 3. Run tools/get_hints.py to produce the branch hints, selecting min_count - and threshold_ratio as you wish. + 3. Run tools/builtins-pgo/get_hints.py to produce the branch hints, + selecting min_count and threshold_ratio as you wish. 4. Optionally repeat steps 2-3 for additional workloads, and use - tools/combine_hints.py to combine the hints produced in step 3 into a - single file. + tools/builtins-pgo/combine_hints.py to combine the hints produced in + step 3 into a single file. 5. Build again with v8_builtins_profiling_log_file set to the file created in step 3 or 4. v8_can_use_fpu_instructions Current value (from the default) = true - From //v8/BUILD.gn:223 + From //v8/BUILD.gn:247 Similar to vfp but on MIPS. v8_check_header_includes Current value (from the default) = false - From //v8/BUILD.gn:238 + From //v8/BUILD.gn:262 Check that each header can be included in isolation (requires also setting the "check_v8_header_includes" gclient variable to run a @@ -5241,58 +5767,48 @@ v8_check_header_includes v8_code_comments Current value (from the default) = "" - From //v8/BUILD.gn:107 + From //v8/BUILD.gn:119 Allow runtime-enabled code comments (with --code-comments). Enabled by default in debug builds. Sets -dV8_CODE_COMMENTS -v8_code_coverage - Current value (from the default) = false - From //v8/gni/v8.gni:14 - - Set flags for tracking code coverage. Uses gcov with gcc and sanitizer - coverage with clang. - v8_context_snapshot_filename Current value (from the default) = "v8_context_snapshot.bin" - From //tools/v8_context_snapshot/v8_context_snapshot.gni:44 + From //tools/v8_context_snapshot/v8_context_snapshot.gni:43 v8_control_flow_integrity Current value (from the default) = false - From //v8/BUILD.gn:286 - - Enable control-flow integrity features, such as pointer authentication for - ARM64. + From //v8/BUILD.gn:318 v8_correctness_fuzzer Current value (from the default) = false - From //v8/gni/v8.gni:17 + From //v8/gni/v8.gni:16 Includes files needed for correctness fuzzing. v8_current_cpu Current value (from the default) = "x64" - From //build/config/v8_target_cpu.gni:60 + From //build/config/v8_target_cpu.gni:63 This argument is declared here so that it can be overridden in toolchains. It should never be explicitly set by the user. v8_custom_deps Current value (from the default) = "" - From //v8/BUILD.gn:34 + From //v8/BUILD.gn:32 Dynamically set an additional dependency from v8/custom_deps. v8_deprecation_warnings Current value (from the default) = true - From //v8/BUILD.gn:56 + From //v8/BUILD.gn:57 Enable compiler warnings when using V8_DEPRECATED apis. v8_dict_property_const_tracking Current value (from the default) = false - From //v8/BUILD.gn:339 + From //v8/BUILD.gn:361 Experimental feature for tracking constness of properties in non-global dictionaries. Enabling this also always keeps prototypes in dict mode, @@ -5301,50 +5817,62 @@ v8_dict_property_const_tracking v8_disable_write_barriers Current value (from the default) = false - From //v8/BUILD.gn:258 + From //v8/BUILD.gn:282 Disable write barriers when GCs are non-incremental and heap has single generation. v8_embed_script Current value (from the default) = "" - From //v8/BUILD.gn:62 + From //v8/BUILD.gn:63 Embeds the given script into the snapshot. v8_embedder_string Current value (from the default) = "" - From //v8/BUILD.gn:65 + From //v8/BUILD.gn:66 Allows the embedder to add a custom suffix to the version string. v8_enable_31bit_smis_on_64bit_arch Current value (from the default) = false - From //v8/BUILD.gn:126 + From //v8/BUILD.gn:145 v8_enable_allocation_folding Current value (from the default) = true - From //v8/BUILD.gn:349 + From //v8/BUILD.gn:376 Enable allocation folding globally (sets -dV8_ALLOCATION_FOLDING). When it's disabled, the --turbo-allocation-folding runtime flag will be ignored. v8_enable_atomic_object_field_writes Current value (from the default) = "" - From //v8/BUILD.gn:147 + From //v8/BUILD.gn:166 Sets -dV8_ATOMIC_OBJECT_FIELD_WRITES and turns all field write operations into relaxed atomic operations. v8_enable_backtrace Current value (from the default) = "" - From //v8/gni/v8.gni:33 + From //v8/gni/v8.gni:32 Support for backtrace_symbols on linux. +v8_enable_builtin_jump_table_switch + Current value (from the default) = true + From //v8/BUILD.gn:422 + + Enable jump table switch for built-in. + +v8_enable_builtins_optimization + Current value (from the default) = "" + From //v8/gni/v8.gni:39 + + Includes profiles to optimize builtins. + v8_enable_builtins_profiling Current value (from the default) = false - From //v8/BUILD.gn:165 + From //v8/BUILD.gn:184 Runs mksnapshot with --turbo-profiling. After building in this configuration, any subsequent run of d8 will output information about usage @@ -5352,57 +5880,103 @@ v8_enable_builtins_profiling v8_enable_builtins_profiling_verbose Current value (from the default) = false - From //v8/BUILD.gn:171 + From //v8/BUILD.gn:190 Runs mksnapshot with --turbo-profiling-verbose. After building in this configuration, any subsequent run of d8 will output information about usage of basic blocks in builtins, including the schedule and disassembly of all used builtins. +v8_enable_builtins_reordering + Current value (from the default) = true + From //v8/BUILD.gn:199 + + This build flag is used to control whether reorder builtins acoording to + the call graph with C3 algorithm based builtin PGO profiling. + +v8_enable_cet_ibt + Current value (from the default) = false + From //v8/gni/v8.gni:160 + + Emit CET IBT landing pad instructions in JIT generated code (experimental). + v8_enable_cet_shadow_stack Current value (from the default) = false - From //v8/BUILD.gn:365 + From //v8/gni/v8.gni:157 Change code emission and runtime features to be CET shadow-stack compliant (incomplete and experimental). v8_enable_concurrent_marking Current value (from the default) = true - From //v8/BUILD.gn:151 + From //v8/BUILD.gn:170 Controls the default value of v8_enable_concurrent_marking_state. See the default setting code below. v8_enable_conservative_stack_scanning Current value (from the default) = false - From //v8/gni/v8.gni:79 + From //v8/gni/v8.gni:100 Scan the call stack conservatively during garbage collection. +v8_enable_continuation_preserved_embedder_data + Current value (from the default) = true + From //v8/BUILD.gn:372 + + Allow embedder data to be saved on continuations. Used to support + TaskAttribution and `scheduler.yield()`. + The flag enables disabling the feature, to test this data's overhead. + v8_enable_debug_code Current value (from the default) = "" - From //v8/BUILD.gn:112 + From //v8/BUILD.gn:124 Allow runtime-enabled debug code (with --debug-code). Enabled by default in debug builds. Sets -dV8_ENABLE_DEBUG_CODE v8_enable_debugging_features - Current value (from the default) = false - From //v8/BUILD.gn:38 + Current value (from the default) = true + From //v8/BUILD.gn:36 Turns on all V8 debug features. Enables running V8 in a pseudo debug mode within a release Chrome. +v8_enable_direct_handle + Current value (from the default) = "" + From //v8/gni/v8.gni:103 + + Use direct pointers in internal (direct) handles. + +v8_enable_direct_local + Current value (from the default) = false + From //v8/gni/v8.gni:106 + + Use direct pointers in local handles. + v8_enable_disassembler Current value (from the default) = "" - From //v8/BUILD.gn:68 + From //v8/BUILD.gn:69 Sets -dENABLE_DISASSEMBLER. +v8_enable_etw_stack_walking + Current value (from the default) = true + From //v8/BUILD.gn:45 + + Sets -DV8_ENABLE_ETW_STACK_WALKING. Enables ETW Stack Walking + +v8_enable_extensible_ro_snapshot + Current value (from the default) = true + From //v8/BUILD.gn:428 + + Whether custom embedder snapshots may extend (= allocate new objects in) + ReadOnlySpace. + v8_enable_external_code_space Current value (from the default) = "" - From //v8/BUILD.gn:202 + From //v8/BUILD.gn:230 Enable support for external code range relative to the pointer compression cage. @@ -5410,60 +5984,60 @@ v8_enable_external_code_space v8_enable_fast_mksnapshot Current value (from the default) = false - From //v8/BUILD.gn:92 + From //v8/BUILD.gn:104 Enable fast mksnapshot runs. v8_enable_fast_torque Current value (from the default) = "" - From //v8/BUILD.gn:95 + From //v8/BUILD.gn:107 Optimize code for Torque executable, even during a debug build. v8_enable_future Current value (from the default) = false - From //v8/BUILD.gn:41 + From //v8/BUILD.gn:39 Sets -DV8_ENABLE_FUTURE. v8_enable_gdbjit Current value = false From //.gn:36 - Overridden from the default = true - From //v8/BUILD.gn:231 + Overridden from the default = false + From //v8/BUILD.gn:255 v8_enable_google_benchmark Current value (from the default) = false - From //v8/gni/v8.gni:81 + From //v8/gni/v8.gni:111 v8_enable_handle_zapping Current value (from the default) = true - From //v8/BUILD.gn:86 + From //v8/BUILD.gn:98 Sets -dENABLE_HANDLE_ZAPPING. v8_enable_heap_snapshot_verify Current value (from the default) = "" - From //v8/BUILD.gn:352 + From //v8/BUILD.gn:379 Enable runtime verification of heap snapshots produced for devtools. v8_enable_hugepage Current value (from the default) = false - From //v8/BUILD.gn:83 + From //v8/BUILD.gn:84 Sets -dENABLE_HUGEPAGE v8_enable_i18n_support Current value (from the default) = true - From //v8/gni/v8.gni:41 + From //v8/gni/v8.gni:43 Enable ECMAScript Internationalization API. Enabling this feature will add a dependency on the ICU library. v8_enable_ignition_dispatch_counting Current value (from the default) = false - From //v8/BUILD.gn:160 + From //v8/BUILD.gn:179 Sets -dV8_IGNITION_DISPATCH_COUNTING. Enables counting frequencies of bytecode dispatches. After building in this @@ -5475,360 +6049,439 @@ v8_enable_ignition_dispatch_counting v8_enable_javascript_promise_hooks Current value (from the default) = false - From //v8/BUILD.gn:345 + From //v8/BUILD.gn:367 Allow for JS promise hooks (instead of just C++). v8_enable_lazy_source_positions Current value (from the default) = true - From //v8/BUILD.gn:245 + From //v8/BUILD.gn:269 Enable lazy source positions by default. v8_enable_lite_mode Current value (from the default) = false - From //v8/gni/v8.gni:64 + From //v8/gni/v8.gni:70 Lite mode disables a number of performance optimizations to reduce memory at the cost of performance. Sets -DV8_LITE_MODE. +v8_enable_local_off_stack_check + Current value (from the default) = false + From //v8/gni/v8.gni:109 + + Check for off-stack allocated local handles. + v8_enable_maglev Current value (from the default) = "" - From //v8/BUILD.gn:206 + From //v8/gni/v8.gni:78 Enable the Maglev compiler. Sets -dV8_ENABLE_MAGLEV +v8_enable_maglev_graph_printer + Current value (from the default) = false + From //v8/BUILD.gn:415 + + Enable Maglev's graph printer. + Sets -DV8_ENABLE_MAGLEV_GRAPH_PRINTER. + v8_enable_map_packing Current value (from the default) = false - From //v8/BUILD.gn:342 + From //v8/BUILD.gn:364 Enable map packing & unpacking (sets -dV8_MAP_PACKING). v8_enable_object_print Current value (from the default) = "" - From //v8/BUILD.gn:129 + From //v8/BUILD.gn:148 Sets -dOBJECT_PRINT. v8_enable_pointer_compression Current value (from the default) = "" - From //v8/BUILD.gn:124 + From //v8/BUILD.gn:143 Enable pointer compression (sets -dV8_COMPRESS_POINTERS). +v8_enable_pointer_compression_8gb + Current value (from the default) = "" + From //v8/BUILD.gn:392 + + Enables pointer compression for 8GB heaps. + Sets -DV8_COMPRESS_POINTERS_8GB. + v8_enable_pointer_compression_shared_cage Current value (from the default) = "" - From //v8/BUILD.gn:125 + From //v8/BUILD.gn:144 v8_enable_precise_zone_stats Current value (from the default) = false - From //v8/BUILD.gn:325 + From //v8/BUILD.gn:347 Experimental feature for collecting per-class zone memory stats. Requires use_rtti = true +v8_enable_private_mapping_fork_optimization + Current value (from the default) = false + From //v8/BUILD.gn:95 + + Sets -dV8_ENABLE_PRIVATE_MAPPING_FORK_OPTIMIZATION. + + This flag speeds up the performance of fork/execve on Linux systems for + embedders which use it (like Node.js). It works by marking the pages that + V8 allocates as MADV_DONTFORK. Without MADV_DONTFORK, the Linux kernel + spends a long time manipulating page mappings on fork and exec which the + child process doesn't generally need to access. + + See v8:7381 for more details. + v8_enable_regexp_interpreter_threaded_dispatch Current value (from the default) = true - From //v8/BUILD.gn:270 + From //v8/BUILD.gn:294 Use token threaded dispatch for the regular expression interpreter. Use switch-based dispatch if this is false v8_enable_runtime_call_stats Current value (from the default) = true - From //v8/gni/v8.gni:73 - - Enable runtime call stats. + From //v8/gni/v8.gni:94 v8_enable_sandbox Current value (from the default) = "" - From //v8/BUILD.gn:305 + From //v8/BUILD.gn:338 Enable the experimental V8 sandbox. Sets -DV8_ENABLE_SANDBOX. -v8_enable_sandbox_future - Current value (from the default) = false - From //v8/BUILD.gn:316 - - Enable all available sandbox features. Implies v8_enable_sandbox. - -v8_enable_sandboxed_external_pointers - Current value (from the default) = false - From //v8/BUILD.gn:309 - - Enable external pointer sandboxing. Requires v8_enable_sandbox. - Sets -DV8_SANDBOXED_EXTERNAL_POINTERS. - -v8_enable_sandboxed_pointers - Current value (from the default) = false - From //v8/BUILD.gn:313 - - Enable sandboxed pointers. Requires v8_enable_sandbox. - Sets -DV8_SANDBOXED_POINTERS. - v8_enable_shared_ro_heap Current value (from the default) = "" - From //v8/BUILD.gn:242 + From //v8/BUILD.gn:266 Enable sharing read-only space across isolates. Sets -DV8_SHARED_RO_HEAP. v8_enable_short_builtin_calls Current value (from the default) = "" - From //v8/BUILD.gn:197 + From //v8/BUILD.gn:225 Enable short builtins call instruction sequences by un-embedding builtins. Sets -dV8_SHORT_BUILTIN_CALLS v8_enable_single_generation Current value (from the default) = "" - From //v8/BUILD.gn:266 + From //v8/BUILD.gn:290 Redirect allocation in young generation so that there will be only one single generation. v8_enable_slow_dchecks Current value (from the default) = false - From //v8/BUILD.gn:89 + From //v8/BUILD.gn:101 Enable slow dchecks. +v8_enable_slow_tracing + Current value (from the default) = true + From //v8/BUILD.gn:419 + + Enable slow tracing, e.g., tracing on every instruction or Turbofan node. + Sets -DV8_ENABLE_SLOW_TRACING. + v8_enable_snapshot_code_comments Current value (from the default) = false - From //v8/BUILD.gn:102 + From //v8/BUILD.gn:114 Enable code comments for builtins in the snapshot (impacts performance). This also enables v8_code_comments. v8_enable_snapshot_compression Current value (from the default) = false - From //v8/BUILD.gn:281 + From //v8/BUILD.gn:311 v8_enable_snapshot_native_code_counters Current value (from the default) = "" - From //v8/BUILD.gn:118 + From //v8/BUILD.gn:130 Enable native counters from the snapshot (impacts performance, sets -dV8_SNAPSHOT_NATIVE_CODE_COUNTERS). This option will generate extra code in the snapshot to increment counters, as per the --native-code-counters flag. +v8_enable_sparkplug + Current value (from the default) = "" + From //v8/BUILD.gn:411 + + Enable Sparkplug + Sets -DV8_ENABLE_SPARKPLUG. + +v8_enable_static_roots + Current value (from the default) = "" + From //v8/BUILD.gn:133 + + Use pre-generated static root pointer values from static-roots.h. + +v8_enable_static_roots_generation + Current value (from the default) = false + From //v8/BUILD.gn:137 + + Mode used by gen-static-roots.py to have a heap layout which is identical + to when v8_enable_static_roots is enabled. + v8_enable_swiss_name_dictionary Current value (from the default) = false - From //v8/BUILD.gn:329 + From //v8/BUILD.gn:351 Experimental feature that uses SwissNameDictionary instead of NameDictionary as the backing store for all dictionary mode objects. v8_enable_system_instrumentation Current value (from the default) = false - From //v8/BUILD.gn:44 + From //v8/BUILD.gn:42 - Sets -DSYSTEM_INSTRUMENTATION. Enables OS-dependent event tracing + Sets -DENABLE_SYSTEM_INSTRUMENTATION. Enables OS-dependent event tracing v8_enable_test_features Current value (from the default) = "" - From //v8/BUILD.gn:193 + From //v8/BUILD.gn:221 Enables various testing features. v8_enable_third_party_heap Current value (from the default) = false - From //v8/BUILD.gn:248 + From //v8/BUILD.gn:272 Enable third party HEAP library v8_enable_trace_baseline_exec Current value (from the default) = false - From //v8/BUILD.gn:140 + From //v8/BUILD.gn:159 v8_enable_trace_feedback_updates Current value (from the default) = false - From //v8/BUILD.gn:143 + From //v8/BUILD.gn:162 Sets -dV8_TRACE_FEEDBACK_UPDATES. v8_enable_trace_ignition Current value (from the default) = false - From //v8/BUILD.gn:139 + From //v8/BUILD.gn:158 v8_enable_trace_maps Current value (from the default) = "" - From //v8/BUILD.gn:132 + From //v8/BUILD.gn:151 Sets -dV8_TRACE_MAPS. v8_enable_trace_unoptimized Current value (from the default) = "" - From //v8/BUILD.gn:138 + From //v8/BUILD.gn:157 Sets -dV8_TRACE_UNOPTIMIZED. +v8_enable_turbofan + Current value (from the default) = "" + From //v8/gni/v8.gni:74 + + Enable the Turbofan compiler. + Sets -dV8_ENABLE_TURBOFAN. + v8_enable_unconditional_write_barriers Current value (from the default) = false - From //v8/BUILD.gn:262 + From //v8/BUILD.gn:286 Ensure that write barriers are always used. Useful for debugging purposes. v8_enable_v8_checks Current value (from the default) = "" - From //v8/BUILD.gn:135 + From //v8/BUILD.gn:154 Sets -dV8_ENABLE_CHECKS. v8_enable_verify_csa Current value (from the default) = false - From //v8/BUILD.gn:121 + From //v8/BUILD.gn:140 Enable code-generation-time checking of types in the CodeStubAssembler. v8_enable_verify_heap Current value (from the default) = "" - From //v8/BUILD.gn:50 + From //v8/BUILD.gn:51 Sets -DVERIFY_HEAP. v8_enable_verify_predictable Current value (from the default) = false - From //v8/BUILD.gn:53 + From //v8/BUILD.gn:54 Sets -DVERIFY_PREDICTABLE v8_enable_vtunejit Current value (from the default) = false - From //v8/BUILD.gn:77 + From //v8/BUILD.gn:78 Sets -dENABLE_VTUNE_JIT_INTERFACE. v8_enable_vtunetracemark Current value (from the default) = false - From //v8/BUILD.gn:80 + From //v8/BUILD.gn:81 Sets -dENABLE_VTUNE_TRACEMARK. v8_enable_wasm_gdb_remote_debugging Current value (from the default) = false - From //v8/gni/v8.gni:59 + From //v8/gni/v8.gni:65 Enable WebAssembly debugging via GDB-remote protocol. +v8_enable_wasm_simd256_revec + Current value (from the default) = false + From //v8/gni/v8.gni:88 + + Enable 256-bit long vector re-vectorization pass in WASM compilation pipeline. + v8_enable_webassembly Current value (from the default) = "" - From //v8/gni/v8.gni:70 + From //v8/gni/v8.gni:85 Include support for WebAssembly. If disabled, the 'WebAssembly' global will not be available, and embedder APIs to generate WebAssembly modules will fail. Also, asm.js will not be translated to WebAssembly and will be executed as standard JavaScript instead. + Sets -dV8_ENABLE_WEBASSEMBLY. v8_enable_zone_compression Current value (from the default) = "" - From //v8/BUILD.gn:301 + From //v8/BUILD.gn:334 Enable V8 zone compression experimental feature. Sets -DV8_COMPRESS_ZONES. v8_etw_guid Current value (from the default) = "" - From //v8/BUILD.gn:47 + From //v8/BUILD.gn:48 Sets the GUID for the ETW provider v8_expose_memory_corruption_api Current value (from the default) = false - From //v8/BUILD.gn:321 + From //v8/BUILD.gn:343 Expose the memory corruption API to JavaScript. Useful for testing the sandbox. WARNING This will expose builtins that (by design) cause memory corruption. Sets -DV8_EXPOSE_MEMORY_CORRUPTION_API +v8_expose_public_symbols + Current value (from the default) = "" + From //v8/gni/v8.gni:53 + + Expose public symbols for native modules of Node.js and Electron. Default + is false. + v8_expose_symbols Current value (from the default) = false - From //v8/gni/v8.gni:50 + From //v8/gni/v8.gni:56 - Expose symbols for dynamic linking. - -v8_fuchsia_use_vmex_resource - Current value (from the default) = false - From //v8/BUILD.gn:372 - - Get VMEX priviledge at startup. - It allows to run V8 without "deprecated-ambient-replace-as-executable". - Sets -DV8_USE_VMEX_RESOURCE. - TODO(victorgomes): Remove this flag once Chormium no longer needs - the deprecated feature. + Deprecated for v8_expose_public_symbols. v8_fuzzilli Current value (from the default) = false - From //v8/gni/v8.gni:76 + From //v8/gni/v8.gni:97 Add fuzzilli fuzzer support. v8_gcmole Current value (from the default) = false - From //v8/gni/v8.gni:27 + From //v8/gni/v8.gni:26 Indicate if gcmole was fetched as a hook to make it available on swarming. v8_generate_external_defines_header Current value (from the default) = false - From //v8/BUILD.gn:333 + From //v8/BUILD.gn:355 If enabled then macro definitions that are used in externally visible header files are placed in a separate header file v8-gn.h. v8_has_valgrind Current value (from the default) = false - From //v8/gni/v8.gni:24 + From //v8/gni/v8.gni:23 Indicate if valgrind was fetched as a custom deps to make it available on swarming. +v8_icu_path + Current value (from the default) = "//third_party/icu" + From //v8/gni/v8.gni:150 + + Location of icu. + v8_imminent_deprecation_warnings Current value = false From //.gn:37 Overridden from the default = true - From //v8/BUILD.gn:59 + From //v8/BUILD.gn:60 Enable compiler warnings when using V8_DEPRECATE_SOON apis. +v8_is_on_release_branch + Current value (from the default) = false + From //v8/gni/release_branch_toggle.gni:9 + +v8_jitless + Current value (from the default) = false + From //v8/BUILD.gn:407 + + Enable jitless mode, including compile-time optimizations. Note that even + when this is set to 'false', one can run V8 in jitless mode at runtime by + passing the `--jitless` flag; but then you miss out on compile-time + optimizations. + iOS (non-simulator) does not have executable pages for 3rd party + applications yet so disable jit. + +v8_log_builtins_block_count_input + Current value (from the default) = "" + From //v8/BUILD.gn:195 + + This build flag is used to input a builtin pgo file containing raw + execution counts (as opposed to branch hints), which are embedded into + the `--trace-turbo` .json file from `mksnapshot`. + v8_monolithic Current value (from the default) = false - From //v8/gni/v8.gni:47 + From //v8/gni/v8.gni:49 Enable monolithic static library for embedders. v8_multi_arch_build Current value (from the default) = false - From //v8/gni/v8.gni:20 + From //v8/gni/v8.gni:19 Adds additional compile target for building multiple architectures at once. v8_no_inline Current value (from the default) = false - From //v8/BUILD.gn:217 + From //v8/BUILD.gn:241 Switches off inlining in V8. v8_optimized_debug Current value (from the default) = true - From //v8/gni/v8.gni:30 + From //v8/gni/v8.gni:29 Turns on compiler optimizations in V8 in Debug build. v8_os_page_size Current value (from the default) = "0" - From //v8/BUILD.gn:220 + From //v8/BUILD.gn:244 Override OS page size when generating snapshot v8_postmortem_support Current value (from the default) = false - From //v8/BUILD.gn:211 + From //v8/BUILD.gn:235 With post mortem support enabled, metadata is embedded into libv8 that describes various parameters of the VM for use by debuggers. See @@ -5836,19 +6489,23 @@ v8_postmortem_support v8_promise_internal_field_count Current value (from the default) = 0 - From //v8/BUILD.gn:71 + From //v8/BUILD.gn:72 Sets the number of internal fields on promise objects. v8_scriptormodule_legacy_lifetime Current value (from the default) = false - From //v8/BUILD.gn:361 + From //v8/BUILD.gn:388 TODO(cbruni, v8:12302): Remove once API is migrated Enable legacy mode for ScriptOrModule's lifetime. By default it's a temporary object, if enabled it will be kept alive by the parent Script. This is only used by nodejs. +v8_shortcut_strings_in_minor_ms + Current value (from the default) = false + From //v8/BUILD.gn:424 + v8_snapshot_toolchain Current value (from the default) = "" From //v8/gni/snapshot_toolchain.gni:34 @@ -5859,15 +6516,13 @@ v8_snapshot_toolchain v8_static_library Current value (from the default) = false - From //v8/gni/v8.gni:44 + From //v8/gni/v8.gni:46 Use static libraries instead of source_sets. v8_symbol_level - Current value = 0 - From //out/thorium/args.gn:23 - Overridden from the default = 0 - From //v8/gni/v8.gni:56 + Current value (from the default) = 2 + From //v8/gni/v8.gni:62 Override global symbol level setting for v8. @@ -5903,63 +6558,96 @@ v8_target_cpu v8_third_party_heap_files Current value (from the default) = [] - From //v8/BUILD.gn:254 + From //v8/BUILD.gn:278 Source code used by third party heap v8_third_party_heap_libs Current value (from the default) = [] - From //v8/BUILD.gn:251 + From //v8/BUILD.gn:275 Libaries used by third party heap v8_typed_array_max_size_in_heap Current value (from the default) = 64 - From //v8/BUILD.gn:229 + From //v8/BUILD.gn:253 Controls the threshold for on-heap/off-heap Typed Arrays. v8_use_external_startup_data Current value (from the default) = "" - From //v8/gni/v8.gni:37 + From //v8/gni/v8.gni:36 Use external files for startup data blobs: the JS builtins sources and the start snapshot. +v8_use_libm_trig_functions + Current value (from the default) = true + From //v8/gni/v8.gni:142 + + TODO: macros for determining endian type are clang specific. + v8_use_mips_abi_hardfloat Current value (from the default) = true - From //v8/BUILD.gn:226 + From //v8/BUILD.gn:250 Similar to the ARM hard float ABI but on MIPS. v8_use_perfetto Current value (from the default) = false - From //v8/gni/v8.gni:53 + From //v8/gni/v8.gni:59 Implement tracing using Perfetto (https://perfetto.dev). v8_use_siphash Current value (from the default) = false - From //v8/BUILD.gn:214 + From //v8/BUILD.gn:238 Use Siphash as added protection against hash flooding attacks. +v8_use_zlib + Current value (from the default) = true + From //v8/BUILD.gn:396 + + Compile V8 using zlib as dependency. + Sets -DV8_USE_ZLIB + +v8_value_deserializer_hard_fail + Current value (from the default) = false + From //v8/BUILD.gn:399 + + Make ValueDeserializer crash if the data to deserialize is invalid. + +v8_verify_builtins_compatibility + Current value (from the default) = false + From //v8/BUILD.gn:297 + + Enforce equality of builtins hashes from compatible architectures. + +v8_verify_deterministic_mksnapshot + Current value (from the default) = false + From //v8/BUILD.gn:300 + + Check mksnapshot determinism by running it multiple times. + v8_verify_torque_generation_invariance Current value (from the default) = false - From //v8/BUILD.gn:274 + From //v8/BUILD.gn:304 Enable additional targets necessary for verification of torque file generation v8_win64_unwinding_info Current value (from the default) = true - From //v8/BUILD.gn:98 + From //v8/BUILD.gn:110 Enable the registration of unwinding info for Windows x64 and ARM64. -version_path - Current value (from the default) = "//chrome/chrome_cleaner/constants/VERSION" - From //chrome/chrome_cleaner/constants/args.gni:8 +v8_zlib_path + Current value (from the default) = "//third_party/zlib" + From //v8/gni/v8.gni:153 + + Location of zlib. visual_studio_path Current value (from the default) = "" @@ -5967,14 +6655,13 @@ visual_studio_path Path to Visual Studio. If empty, the default is used which is to use the automatic toolchain in depot_tools. If set, you must also set the - visual_studio_version and wdk_path. + visual_studio_version, wdk_path and windows_sdk_version. visual_studio_version Current value (from the default) = "" - From //build/config/win/visual_studio_version.gni:13 + From //build/config/win/visual_studio_version.gni:12 Version of Visual Studio pointed to by the visual_studio_path. - Currently always "2015". vma_vulkan_headers_dir Current value (from the default) = "//third_party/vulkan-deps/vulkan-headers/src" @@ -5982,26 +6669,14 @@ vma_vulkan_headers_dir wdk_path Current value (from the default) = "" - From //build/config/win/visual_studio_version.gni:17 + From //build/config/win/visual_studio_version.gni:16 Directory of the Windows driver kit. If visual_studio_path is empty, this will be auto-filled. -weblayer_in_split - Current value (from the default) = true - From //weblayer/variables.gni:12 - - Whether WebLayer will be included as a DFM. - -webview_includes_weblayer - Current value (from the default) = true - From //weblayer/variables.gni:9 - - Include the //weblayer code in WebView implementation APKs. - widevine_root Current value (from the default) = "." - From //third_party/widevine/cdm/widevine.gni:62 + From //third_party/widevine/cdm/widevine.gni:63 Relative root directory to //third_party/widevine/cdm for CDM files. Can be overridden if the CDM files are located in other places. @@ -6016,7 +6691,7 @@ win_console_app used for development. Only has an effect on Windows builds. win_enable_cfg_guards - Current value (from the default) = true + Current value (from the default) = false From //build/config/win/control_flow_guard.gni:10 Set this to true to enable generation of CFG indirect call dispatch @@ -6024,15 +6699,58 @@ win_enable_cfg_guards win_linker_timing Current value (from the default) = false - From //build/config/win/BUILD.gn:20 + From //build/config/win/BUILD.gn:22 Turn this on to have the linker output extra timing information. +win_toolchain_data_x64 + Current value (from the default) = { + include_flags_I = "\"/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Include/10.0.22621.0/um\" \"/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Include/10.0.22621.0/shared\" \"/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Include/10.0.22621.0/winrt\" \"/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Include/10.0.22621.0/ucrt\" /I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/include /I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/atlmfc/include" + include_flags_I_list = ["/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Include/10.0.22621.0/um", "/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Include/10.0.22621.0/shared", "/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Include/10.0.22621.0/winrt", "/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Include/10.0.22621.0/ucrt", "/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/include", "/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/atlmfc/include"] + include_flags_imsvc = "/winsysroot../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1" + include_flags_imsvc_list = ["/winsysroot../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1"] + libpath_flags = "-libpath:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/lib/x64 \"-libpath:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Lib/10.0.22621.0/um/x64\" \"-libpath:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Lib/10.0.22621.0/ucrt/x64\" -libpath:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/atlmfc/lib/x64" + libpath_flags_list = ["-libpath:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/lib/x64", "-libpath:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Lib/10.0.22621.0/um/x64", "-libpath:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Lib/10.0.22621.0/ucrt/x64", "-libpath:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/atlmfc/lib/x64"] + libpath_lldlink_flags = "/winsysroot:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1" + libpath_lldlink_flags_list = ["/winsysroot:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1"] + paths = "/home/alex/chromium/src/third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/sys64:/home/alex/chromium/src/third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/sys32:/home/alex/chromium/src/third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/sysarm64:/usr/bin:/home/alex/chromium/src/third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/bin/10.0.22621.0/x64:/home/alex/chromium/src/third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/bin/HostX64/x64:/home/alex/.cargo/bin:/home/alex/.nvm/versions/node/v16.20.2/bin:/home/alex/.local/bin:/home/alex/bin:/home/alex/depot_tools:/home/alex/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin" + vc_bin_dir = "/home/alex/chromium/src/third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/bin/HostX64/x64" +} + From //build/toolchain/win/win_toolchain_data.gni:21 + +win_toolchain_data_x86 + Current value (from the default) = { + include_flags_I = "\"/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Include/10.0.22621.0/um\" \"/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Include/10.0.22621.0/shared\" \"/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Include/10.0.22621.0/winrt\" \"/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Include/10.0.22621.0/ucrt\" /I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/include /I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/atlmfc/include" + include_flags_I_list = ["/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Include/10.0.22621.0/um", "/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Include/10.0.22621.0/shared", "/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Include/10.0.22621.0/winrt", "/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Include/10.0.22621.0/ucrt", "/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/include", "/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/atlmfc/include"] + include_flags_imsvc = "/winsysroot../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1" + include_flags_imsvc_list = ["/winsysroot../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1"] + libpath_flags = "-libpath:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/lib/x86 \"-libpath:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Lib/10.0.22621.0/um/x86\" \"-libpath:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Lib/10.0.22621.0/ucrt/x86\" -libpath:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/atlmfc/lib/x86" + libpath_flags_list = ["-libpath:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/lib/x86", "-libpath:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Lib/10.0.22621.0/um/x86", "-libpath:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Lib/10.0.22621.0/ucrt/x86", "-libpath:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/atlmfc/lib/x86"] + libpath_lldlink_flags = "/winsysroot:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1" + libpath_lldlink_flags_list = ["/winsysroot:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1"] + paths = "/home/alex/chromium/src/third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/sys64:/home/alex/chromium/src/third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/sys32:/home/alex/chromium/src/third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/sysarm64:/usr/bin:/home/alex/chromium/src/third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/bin/10.0.22621.0/x64:/home/alex/chromium/src/third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/bin/HostX64/x86:/home/alex/chromium/src/third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/bin/HostX64/x64:/home/alex/.cargo/bin:/home/alex/.nvm/versions/node/v16.20.2/bin:/home/alex/.local/bin:/home/alex/bin:/home/alex/depot_tools:/home/alex/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin" + vc_bin_dir = "/home/alex/chromium/src/third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/bin/HostX64/x86" +} + From //build/toolchain/win/win_toolchain_data.gni:9 + windows_sdk_path Current value (from the default) = "C:\Program Files (x86)\Windows Kits\10" - From //build/config/win/visual_studio_version.gni:22 + From //build/config/win/visual_studio_version.gni:21 Full path to the Windows SDK, not including a backslash at the end. This value is the default location, override if you have a different installation location. +windows_sdk_version + Current value (from the default) = "" + From //build/config/win/visual_studio_version.gni:24 + + Version of the Windows SDK pointed to by the windows_sdk_path. + +zlib_symbols_visible + Current value (from the default) = false + From //third_party/zlib/BUILD.gn:11 + + Expose zlib's symbols, used by Node.js to provide zlib APIs for its native + modules. + diff --git a/infra/win_gn_args.list b/infra/win_gn_args.list index fc19b3da..5a8badc7 100644 --- a/infra/win_gn_args.list +++ b/infra/win_gn_args.list @@ -1,4 +1,4 @@ -## LIST OF ALL POSSIBLE GN ARGUMENTS FOR WINDOWS +## LIST OF ALL POSSIBLE GN ARGUMENTS FOR WINDOWS WITH THORIUM FLAGS INCLUDED action_pool_depth Current value (from the default) = -1 @@ -8,21 +8,24 @@ action_pool_depth added_rust_stdlib_libs Current value (from the default) = [] - From //build/config/rust.gni:44 + From //build/config/rust.gni:82 Any extra std rlibs in your Rust toolchain, relative to the standard - Rust toolchain. Typically used with 'use_unverified_rust_toolchain' = true + Rust toolchain. Typically used with 'rust_sysroot_absolute' allow_critical_memory_pressure_handling_in_foreground Current value (from the default) = false - From //content/common/features.gni:13 + From //content/common/features.gni:16 - Whether to perform critical memory pressure handling when in foreground (if - false, critical memory pressure is treated like moderate pressure in foreground). +allow_jni_multiplexing + Current value (from the default) = false + From //third_party/jni_zero/jni_zero.gni:12 + + Enables JNI multiplexing to reduce JNI native methods overhead. allow_runtime_configurable_key_storage Current value (from the default) = false - From //components/os_crypt/features.gni:17 + From //components/os_crypt/sync/features.gni:13 Whether to make account and service names for the crypto key storage configurable at runtime for embedders. @@ -56,7 +59,7 @@ also_build_lacros_chrome_for_architecture alternate_cdm_storage_id_key Current value (from the default) = "" - From //media/media_options.gni:178 + From //media/media_options.gni:252 If |enable_cdm_storage_id| is set, then an implementation specific key must also be provided. It can be provided by defining CDM_STORAGE_ID_KEY @@ -72,87 +75,103 @@ android_channel android_full_debug Current value (from the default) = false - From //build/config/compiler/BUILD.gn:60 + From //build/config/compiler/BUILD.gn:62 Normally, Android builds are lightly optimized, even for debug builds, to keep binary size down. Setting this flag to true disables such optimization angle_64bit_current_cpu Current value (from the default) = true - From //third_party/angle/gni/angle.gni:81 + From //third_party/angle/gni/angle.gni:114 angle_assert_always_on Current value (from the default) = false - From //third_party/angle/gni/angle.gni:76 + From //third_party/angle/gni/angle.gni:108 angle_build_all Current value (from the default) = false - From //third_party/angle/BUILD.gn:39 + From //third_party/angle/BUILD.gn:44 Don't build extra (test, samples etc) for Windows UWP. We don't have infrastructure (e.g. windowing helper functions) in place to run them. + Also don't build them with MSVC, because tests and unused dependencies + often have problems building with it, e.g. for C++20. angle_build_capture_replay_tests Current value (from the default) = false - From //third_party/angle/src/tests/capture_replay_tests/BUILD.gn:9 + From //third_party/angle/src/tests/capture_replay_tests/BUILD.gn:10 Determines if we build the capture_replay_tests. Off by default. +angle_build_mesa + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:293 + +angle_build_tests + Current value (from the default) = true + From //third_party/angle/gni/angle.gni:306 + + True if we want to build the ANGLE test suites. On by default in most configs. + angle_build_vulkan_system_info Current value (from the default) = true - From //third_party/angle/gni/angle.gni:237 + From //third_party/angle/gni/angle.gni:287 angle_capture_replay_composite_file_id Current value (from the default) = 1 - From //third_party/angle/src/tests/capture_replay_tests/BUILD.gn:14 + From //third_party/angle/src/tests/capture_replay_tests/BUILD.gn:15 angle_capture_replay_test_trace_dir Current value (from the default) = "traces" - From //third_party/angle/src/tests/capture_replay_tests/BUILD.gn:12 + From //third_party/angle/src/tests/capture_replay_tests/BUILD.gn:13 Set the trace directory. Default is traces angle_debug_layers_enabled Current value (from the default) = false - From //third_party/angle/gni/angle.gni:96 + From //third_party/angle/gni/angle.gni:129 By default we enable debug layers when asserts are turned on. angle_delegate_workers Current value (from the default) = true - From //third_party/angle/gni/angle.gni:134 + From //third_party/angle/gni/angle.gni:165 By default, ANGLE is using a thread pool for parallel compilation. Activating the delegate worker results in posting the tasks using the embedder API. In Chromium code base, it results in sending tasks to the worker thread pool. +angle_dump_pipeline_cache_graph + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:241 + angle_egl_extension Current value (from the default) = "" - From //third_party/angle/BUILD.gn:58 + From //third_party/angle/BUILD.gn:64 Allow shared library custom name extensions for setting soname such as libEGL.so.1 angle_enable_abseil Current value (from the default) = true - From //third_party/angle/BUILD.gn:46 + From //third_party/angle/BUILD.gn:52 Abseil has trouble supporting MSVC, particularly regarding component builds. http://crbug.com/1126524 angle_enable_annotator_run_time_checks Current value (from the default) = false - From //third_party/angle/BUILD.gn:49 + From //third_party/angle/BUILD.gn:55 Adds run-time checks to filter out EVENT() messages when the debug annotator is disabled. angle_enable_apple_translator_workarounds Current value (from the default) = false - From //third_party/angle/gni/angle.gni:249 + From //third_party/angle/gni/angle.gni:301 angle_enable_cgl Current value (from the default) = false - From //third_party/angle/gni/angle.gni:246 + From //third_party/angle/gni/angle.gni:298 TODO(jdarpinian): Support enabling CGL and EAGL at the same time using the soft linking code. Also support disabling both for Metal-only builds. @@ -164,161 +183,231 @@ angle_enable_cl angle_enable_cl_passthrough Current value (from the default) = false - From //third_party/angle/gni/angle.gni:166 + From //third_party/angle/gni/angle.gni:197 Enables the OpenCL pass-through back end angle_enable_commit_id Current value (from the default) = true - From //third_party/angle/BUILD.gn:42 + From //third_party/angle/BUILD.gn:48 Enable generating current commit information using git +angle_enable_context_mutex + Current value (from the default) = true + From //third_party/angle/BUILD.gn:84 + +angle_enable_context_mutex_recursion + Current value (from the default) = false + From //third_party/angle/BUILD.gn:94 + + May need to enable to fix recursion when vkAcquireNextImageKHR() returns back to ANGLE from + eglClientWaitSyncKHR(). May happen if Android Presentation Engine uses + EGL_KHR_fence_sync instead of EGL_ANDROID_native_fence_sync for synchronization. + To check call: adb shell "dumpsys SurfaceFlinger | grep 'Sync configuration'" + The Android's "testDrawingHardwareBitmapNotLeaking" test may be used for testing. + Disable this option to save performance on platforms that does not require recursion. + +angle_enable_crc_for_pipeline_cache + Current value (from the default) = true + From //third_party/angle/src/libANGLE/renderer/vulkan/BUILD.gn:36 + + Enable using CRC for pipeline cache data + angle_enable_custom_vulkan_cmd_buffers Current value (from the default) = true - From //third_party/angle/src/libANGLE/renderer/vulkan/BUILD.gn:15 + From //third_party/angle/src/libANGLE/renderer/vulkan/BUILD.gn:17 Enable custom (cpu-side) secondary command buffers angle_enable_custom_vulkan_outside_render_pass_cmd_buffers Current value (from the default) = true - From //third_party/angle/src/libANGLE/renderer/vulkan/BUILD.gn:24 + From //third_party/angle/src/libANGLE/renderer/vulkan/BUILD.gn:26 angle_enable_custom_vulkan_render_pass_cmd_buffers Current value (from the default) = true - From //third_party/angle/src/libANGLE/renderer/vulkan/BUILD.gn:28 + From //third_party/angle/src/libANGLE/renderer/vulkan/BUILD.gn:30 angle_enable_d3d11 - Current value (from the default) = false - From //third_party/angle/gni/angle.gni:140 + Current value (from the default) = true + From //third_party/angle/gni/angle.gni:171 angle_enable_d3d11_compositor_native_window Current value (from the default) = false - From //third_party/angle/gni/angle.gni:215 + From //third_party/angle/gni/angle.gni:265 angle_enable_d3d9 - Current value (from the default) = false - From //third_party/angle/gni/angle.gni:139 + Current value (from the default) = true + From //third_party/angle/gni/angle.gni:170 angle_enable_desktop_glsl - Current value (from the default) = true - From //third_party/angle/gni/angle.gni:188 + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:232 Translator frontend support: angle_enable_eagl Current value (from the default) = false - From //third_party/angle/gni/angle.gni:221 + From //third_party/angle/gni/angle.gni:271 We should use EAGL (ES) on iOS except on Mac Catalyst on Intel CPUs, which uses CGL (desktop GL). angle_enable_essl Current value (from the default) = true - From //third_party/angle/gni/angle.gni:192 + From //third_party/angle/gni/angle.gni:236 angle_enable_gl Current value (from the default) = true - From //third_party/angle/gni/angle.gni:142 + From //third_party/angle/gni/angle.gni:173 -angle_enable_gl_desktop +angle_enable_gl_desktop_backend Current value (from the default) = true - From //third_party/angle/gni/angle.gni:160 + From //third_party/angle/gni/angle.gni:191 + +angle_enable_gl_desktop_frontend + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:29 + + Enable Desktop GL frontend support. angle_enable_gl_null Current value (from the default) = true - From //third_party/angle/src/libANGLE/renderer/gl/BUILD.gn:16 + From //third_party/angle/src/libANGLE/renderer/gl/gl_backend.gni:8 + +angle_enable_global_mutex_load_time_allocate + Current value (from the default) = false + From //third_party/angle/BUILD.gn:82 + +angle_enable_global_mutex_recursion + Current value (from the default) = false + From //third_party/angle/BUILD.gn:77 angle_enable_glsl Current value (from the default) = true - From //third_party/angle/gni/angle.gni:193 + From //third_party/angle/gni/angle.gni:237 angle_enable_hlsl - Current value (from the default) = false - From //third_party/angle/gni/angle.gni:191 + Current value (from the default) = true + From //third_party/angle/gni/angle.gni:235 Translator backend support: +angle_enable_memory_alloc_logging + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:249 + + Memory allocation logging support. This feature is for debugging only. + Disabled by default. + angle_enable_metal Current value (from the default) = false - From //third_party/angle/gni/angle.gni:163 + From //third_party/angle/gni/angle.gni:194 http://anglebug.com/2634 -angle_enable_msl_through_spirv - Current value (from the default) = false - From //third_party/angle/gni/angle.gni:126 - - By default, include the SPIR-V based MSL translator (in addition to the direct translator) - angle_enable_null Current value (from the default) = false - From //third_party/angle/gni/angle.gni:159 + From //third_party/angle/gni/angle.gni:190 Disable null backend to save space for official build. angle_enable_overlay Current value (from the default) = false - From //third_party/angle/gni/angle.gni:241 + From //third_party/angle/gni/angle.gni:291 Enable overlay by default when debug layers are enabled. This is currently only implemented on Vulkan. angle_enable_perf_counter_output Current value (from the default) = false - From //third_party/angle/gni/angle.gni:218 + From //third_party/angle/gni/angle.gni:268 Disable performance counter output by default angle_enable_renderdoc Current value (from the default) = false - From //third_party/angle/gni/angle.gni:256 + From //third_party/angle/gni/angle.gni:310 -angle_enable_spirv_gen_through_glslang +angle_enable_share_context_lock Current value (from the default) = false - From //third_party/angle/gni/angle.gni:209 + From //third_party/angle/BUILD.gn:69 angle_enable_swiftshader Current value (from the default) = true - From //third_party/angle/gni/angle.gni:185 + From //third_party/angle/gni/angle.gni:229 angle_enable_trace Current value (from the default) = false - From //third_party/angle/gni/angle.gni:194 + From //third_party/angle/gni/angle.gni:238 angle_enable_trace_android_logcat Current value (from the default) = false - From //third_party/angle/gni/angle.gni:195 + From //third_party/angle/gni/angle.gni:239 angle_enable_trace_events Current value (from the default) = false - From //third_party/angle/gni/angle.gni:196 + From //third_party/angle/gni/angle.gni:240 + +angle_enable_unwind_backtrace_support + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:245 + + Unwind backtrace support. This feature is currently only implemented + on Android for debugging purposes. Disabled by default. angle_enable_vulkan Current value (from the default) = true - From //third_party/angle/gni/angle.gni:147 + From //third_party/angle/gni/angle.gni:178 angle_enable_vulkan_gpu_trace_events Current value (from the default) = false - From //third_party/angle/src/libANGLE/renderer/vulkan/BUILD.gn:18 + From //third_party/angle/src/libANGLE/renderer/vulkan/BUILD.gn:20 Enable Vulkan GPU trace event capability +angle_enable_vulkan_shared_ring_buffer_cmd_alloc + Current value (from the default) = false + From //third_party/angle/src/libANGLE/renderer/vulkan/BUILD.gn:33 + + Enable shared ring buffer command buffer allocator + angle_enable_vulkan_system_info Current value (from the default) = false - From //third_party/angle/BUILD.gn:32 + From //third_party/angle/BUILD.gn:35 Enable using Vulkan to collect system info as a fallback. angle_enable_vulkan_validation_layers Current value (from the default) = false - From //third_party/angle/gni/angle.gni:202 + From //third_party/angle/gni/angle.gni:258 + +angle_enable_wgpu + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:200 + + Disable WGPU backend. + +angle_expose_glx_entry_points + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:40 + + Expose GLX entry points by default when using Desktop GL on Linux. angle_expose_non_conformant_extensions_and_versions Current value (from the default) = false - From //third_party/angle/BUILD.gn:52 + From //third_party/angle/BUILD.gn:58 Enables non-conformant extensions and features +angle_expose_wgl_entry_points + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:37 + + Expose WGL entry points, which is necessary for running windows desktop GL applications against ANGLE. + TODO(http://anglebug.com/7628): This condition should be `angle_enable_gl_desktop_frontend && is_win` + This is disabled by default on Windows because it was causing some test failures. Once the WGL frontend + has more functionality implemented, we can re-enable this. + angle_extract_native_libs Current value (from the default) = false From //third_party/angle/gni/angle.gni:11 @@ -327,90 +416,102 @@ angle_extract_native_libs angle_force_context_check_every_call Current value (from the default) = false - From //third_party/angle/BUILD.gn:55 + From //third_party/angle/BUILD.gn:61 Optional feature that forces dirty state whenever we use a new context regardless of thread. angle_glesv2_extension Current value (from the default) = "" - From //third_party/angle/BUILD.gn:59 + From //third_party/angle/BUILD.gn:65 + +angle_has_astc_encoder + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:205 + + ASTC emulation is only built on standalone non-android builds angle_has_frame_capture Current value (from the default) = true - From //third_party/angle/gni/angle.gni:123 + From //third_party/angle/gni/angle.gni:157 Frame capture code is enabled by default if rapidjson is available. angle_has_histograms Current value (from the default) = true - From //third_party/angle/gni/angle.gni:252 + From //third_party/angle/gni/angle.gni:303 angle_has_rapidjson Current value (from the default) = true - From //third_party/angle/gni/angle.gni:91 + From //third_party/angle/gni/angle.gni:124 Indicate if the rapidJSON library is available to build with in third_party/. +angle_is_msvc + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:144 + angle_is_winuwp Current value (from the default) = false - From //third_party/angle/gni/angle.gni:110 + From //third_party/angle/gni/angle.gni:143 There's no "is_winuwp" helper in BUILDCONFIG.gn, so we define one ourselves angle_libs_suffix Current value (from the default) = "" - From //third_party/angle/gni/angle.gni:116 + From //third_party/angle/gni/angle.gni:150 angle_link_glx Current value (from the default) = false - From //third_party/angle/BUILD.gn:35 + From //third_party/angle/BUILD.gn:38 Link in system libGL, to work with apitrace. See doc/DebuggingTips.md. +angle_restricted_traces + Current value (from the default) = [] + From //third_party/angle/gni/angle.gni:23 + angle_shared_libvulkan Current value (from the default) = true - From //third_party/angle/gni/angle.gni:107 + From //third_party/angle/gni/angle.gni:140 Vulkan loader is statically linked on Mac. http://anglebug.com/4477 angle_standalone Current value (from the default) = false - From //third_party/angle/gni/angle.gni:137 + From //third_party/angle/gni/angle.gni:168 True if we are building inside an ANGLE checkout. +angle_test_enable_system_egl + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:209 + angle_use_custom_libvulkan Current value (from the default) = true - From //third_party/angle/src/common/vulkan/BUILD.gn:9 + From //third_party/angle/src/common/vulkan/BUILD.gn:13 angle_use_gbm Current value (from the default) = false - From //third_party/angle/gni/angle.gni:43 - -angle_use_spirv_gen_through_glslang - Current value (from the default) = false - From //third_party/angle/gni/angle.gni:169 - - Use glslang to generate SPIR-V + From //third_party/angle/gni/angle.gni:67 angle_use_vulkan_display - Current value (from the default) = true - From //third_party/angle/gni/angle.gni:47 + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:71 angle_use_vulkan_null_display Current value (from the default) = false - From //third_party/angle/gni/angle.gni:156 + From //third_party/angle/gni/angle.gni:187 When set to true, ANGLE will not use VK_KHR_surface and VK_KHR_swapchain extensions. Content can be rendered only off-screen. angle_use_wayland - Current value (from the default) = true - From //third_party/angle/gni/angle.gni:46 + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:70 angle_use_x11 - Current value (from the default) = true - From //third_party/angle/gni/angle.gni:44 + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:68 angle_vulkan_display_mode Current value (from the default) = "simple" @@ -420,31 +521,31 @@ angle_vulkan_display_mode angle_vulkan_headers_dir Current value = "//third_party/vulkan-deps/vulkan-headers/src" - From //.gn:52 + From //.gn:58 Overridden from the default = "//third_party/angle/third_party/vulkan-deps/vulkan-headers/src" - From //third_party/angle/gni/angle.gni:229 + From //third_party/angle/gni/angle.gni:279 angle_vulkan_loader_dir Current value = "//third_party/vulkan-deps/vulkan-loader/src" - From //.gn:53 + From //.gn:59 Overridden from the default = "//third_party/angle/third_party/vulkan-deps/vulkan-loader/src" - From //third_party/angle/gni/angle.gni:231 + From //third_party/angle/gni/angle.gni:281 angle_vulkan_tools_dir Current value = "//third_party/vulkan-deps/vulkan-tools/src" - From //.gn:54 + From //.gn:60 Overridden from the default = "//third_party/angle/third_party/vulkan-deps/vulkan-tools/src" - From //third_party/angle/gni/angle.gni:233 + From //third_party/angle/gni/angle.gni:283 angle_vulkan_validation_layers_dir Current value = "//third_party/vulkan-deps/vulkan-validation-layers/src" - From //.gn:56 + From //.gn:62 Overridden from the default = "//third_party/angle/third_party/vulkan-deps/vulkan-validation-layers/src" - From //third_party/angle/gni/angle.gni:235 + From //third_party/angle/gni/angle.gni:285 angle_wayland_dir Current value (from the default) = "//third_party/angle/third_party/wayland" - From //third_party/angle/gni/angle.gni:226 + From //third_party/angle/gni/angle.gni:276 Directory where to find wayland source files @@ -457,32 +558,32 @@ angle_with_capture_by_default apm_debug_dump Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:117 + From //third_party/webrtc/webrtc.gni:129 Selects whether debug dumps for the audio processing module should be generated. archive_seed_corpus Current value (from the default) = true - From //build/config/sanitizers/sanitizers.gni:108 + From //build/config/sanitizers/sanitizers.gni:105 When true, seed corpora archives are built. -audio_input_sample_rate - Current value (from the default) = 16000 - From //chromecast/chromecast.gni:122 - - Recording happens at this sample rate. Must be 16000, 48000 or 96000 Hz. - auto_profile_path Current value (from the default) = "" - From //build/config/compiler/BUILD.gn:86 + From //build/config/compiler/BUILD.gn:88 AFDO (Automatic Feedback Directed Optimizer) is a form of profile-guided optimization that GCC supports. It used by ChromeOS in their official builds. To use it, set auto_profile_path to the path to a file containing the needed gcov profiling data. +backup_ref_ptr_poison_oob_ptr + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:220 + + Set to `enable_backup_ref_ptr_support && has_64_bit_pointers` when enabling. + blink_animation_use_time_delta Current value (from the default) = false From //third_party/blink/renderer/core/animation/BUILD.gn:11 @@ -519,9 +620,17 @@ blink_gc_plugin_option_warn_unneeded_finalizer a class has an empty destructor which would be unnecessarily invoked when finalized. +blink_heap_inside_shared_library + Current value (from the default) = false + From //third_party/blink/renderer/platform/heap/BUILD.gn:17 + + Whether the blink heap code is compiled into a shared library. + Embedders like CEF use this flag to include blink in a shared library under + non-component build. + blink_symbol_level Current value = 0 - From //out/thorium/args.gn:26 + From //out/test/args.gn:41 Overridden from the default = -1 From //third_party/blink/renderer/config.gni:40 @@ -540,31 +649,54 @@ blink_symbol_level branding_file_path Current value (from the default) = "//chrome/app/theme/chromium/BRANDING" - From //build/config/chrome_build.gni:24 + From //build/config/chrome_build.gni:76 The path to the BRANDING file in chrome/app/theme. branding_path_component Current value (from the default) = "chromium" - From //build/config/chrome_build.gni:18 + From //build/config/chrome_build.gni:69 + +branding_path_product + Current value (from the default) = "chromium" + From //build/config/chrome_build.gni:70 + +build_allocation_stack_trace_recorder + Current value (from the default) = false + From //base/debug/debug.gni:18 + +build_allocation_trace_recorder_full_reporting + Current value (from the default) = false + From //base/debug/debug.gni:28 + + If enabled, the recorder gathers some additional information, i.e. number of + collisions of slots, and prints these periodically. + + Since this might impact performance negatively, it's disabled by default. + Even if it's disabled we still collect some data, i.e. total number of + allocations. All other data will be set to a default value. build_angle_deqp_tests Current value (from the default) = false - From //third_party/angle/src/tests/BUILD.gn:12 + From //third_party/angle/gni/angle.gni:26 Don't build dEQP by default. build_angle_gles1_conform_tests Current value (from the default) = false - From //third_party/angle/src/tests/BUILD.gn:13 + From //third_party/angle/src/tests/BUILD.gn:10 build_angle_perftests Current value (from the default) = true - From //third_party/angle/src/tests/BUILD.gn:16 + From //third_party/angle/src/tests/BUILD.gn:13 build_angle_trace_perf_tests Current value (from the default) = false - From //third_party/angle/src/tests/BUILD.gn:14 + From //third_party/angle/src/tests/BUILD.gn:11 + +build_angle_trace_tests + Current value (from the default) = false + From //third_party/angle/src/tests/BUILD.gn:17 build_contextual_search Current value (from the default) = false @@ -572,7 +704,7 @@ build_contextual_search build_dawn_tests Current value (from the default) = true - From //ui/gl/features.gni:26 + From //ui/gl/features.gni:27 Should Dawn test binaries (unittests, end2end_tests, perf_tests) be built? Independent of use_dawn, which controls whether Dawn is used in Chromium. @@ -584,22 +716,50 @@ build_libsrtp_tests Tests may not be appropriate for some build environments, e.g. Windows. Rather than enumerate valid options, we just let clients ask for them. -build_tflite_with_xnnpack - Current value (from the default) = false - From //third_party/tflite/features.gni:10 +build_tflite_with_ruy + Current value (from the default) = true + From //third_party/tflite/features.gni:16 - This enables building TFLite with XNNPACK. Currently only available for - Linux x64. + Turns on TFLITE_WITH_RUY, using ruy as the gemm backend instead of gemmlowp. + +build_tflite_with_xnnpack + Current value (from the default) = true + From //third_party/tflite/features.gni:11 + +build_webnn_with_tflite_model_loader + Current value (from the default) = false + From //third_party/blink/renderer/modules/ml/webnn/features.gni:15 + + This build flag enables WebNN to access hardware acceleration using TFLite + via the ModelLoader mojo interface. + +build_webnn_with_xnnpack + Current value (from the default) = true + From //third_party/blink/renderer/modules/ml/webnn/features.gni:9 + + This enables building WebNN with XNNPACK. Currently only available for + Windows, macOS and Linux on x64, x86 and arm64. build_with_internal_optimization_guide Current value (from the default) = false - From //components/optimization_guide/features.gni:38 + From //components/optimization_guide/features.gni:41 + When TFLite works for windows arm64, this lib should just work seamlessly. Use is_chrome_branded as a proxy for "does src-internal exist". +build_with_mediapipe_lib + Current value (from the default) = false + From //third_party/mediapipe/features.gni:11 + + This should only be changed in a local args.gn file for now. This library is + not ready to be built into Chromium yet. + + MediaPipe support is under development, but should work on Linux and Windows + Intel chips. + build_with_mozilla Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:144 + From //third_party/webrtc/webrtc.gni:156 Enable to use the Mozilla internal settings. @@ -607,33 +767,18 @@ build_with_tflite_lib Current value (from the default) = true From //components/optimization_guide/features.gni:14 -builtin_cert_verifier_feature_supported - Current value (from the default) = false - From //net/features.gni:46 - - Platforms where both the builtin cert verifier and a platform verifier are - supported and may be switched between using the CertVerifierBuiltin feature - flag. This does not include platforms where the builtin cert verifier is - the only verifier supported. - -builtin_cert_verifier_policy_supported - Current value (from the default) = false - From //chrome/common/features.gni:35 - - Platforms where the BuiltinCertificateVerifierEnabled enterprise policy is - supported. This must must match the supported_on list of the policy in - policy_templates.json and be a subset of the - builtin_cert_verifier_feature_supported platforms. - See crbug.com/410574. This can be removed when the builtin verifier is - unconditionally enabled on all platforms. + This enables build with TFLite library. + TODO(b/269198471): Make sure the internal archive files for opt guide get + updated when win arm64 gets added as a supported platform for TFLite. bundle_widevine_cdm - Current value = false - From //out/thorium/args.gn:43 + Current value = true + From //out/test/args.gn:62 Overridden from the default = false From //third_party/widevine/cdm/widevine.gni:58 - Widevine CDM is bundled as part of Google Chrome builds. + Widevine CDM is bundled as part of Google Chrome and + Google Chrome for Testing builds. cast_allow_developer_certificate Current value (from the default) = false @@ -642,77 +787,87 @@ cast_allow_developer_certificate Whether or not self-signed certificates are enabled for the receiver and sender implementations. -cast_build_incremental - Current value (from the default) = "999999" - From //chromecast/chromecast.gni:34 - - The incremental build number. The Cast automated builders will set this - value to indicate the buildset. Note: The default value should be greater - than any value the builder may assign to prevent attempted automatic updates - when the default value is used. - -cast_is_debug - Current value (from the default) = false - From //chromecast/chromecast.gni:28 - - If true, IS_CAST_DEBUG_BUILD() will evaluate to 1 in version.h. Otherwise, - it will evaluate to 0. Overriding this when is_debug=false is useful for - doing engineering builds. - cast_streaming_enable_remoting Current value (from the default) = false From //components/cast_streaming/features.gni:9 Whether the cast remoting feature should be enabled in this build. -cast_volume_control_in_avsettings - Current value (from the default) = false - From //chromecast/chromecast.gni:59 - - Set to true on devices where the VolumeControl implementation is in the - libcast_avsettings_1.0.so instead of in libcast_media_1.0.so. - cc_wrapper Current value (from the default) = "" From //build/toolchain/cc_wrapper.gni:37 Set to "ccache", "icecc" or "distcc". Probably doesn't work on windows. -chrome_cleaner_internal_root - Current value (from the default) = "//chrome/chrome_cleaner/internal/chrome_cleaner_internal" - From //chrome/chrome_cleaner/chrome_cleaner_args.gni:21 +chrome_certificate_policies_supported + Current value (from the default) = true + From //chrome/common/features.gni:46 + + Platforms where Chrome x509 server certificate enterprise policies are + supported. This must must match the supported_on/future_on list of the + policy in the following policies stored in + components/policy/resources/templates/policy_definitions/: + + * CertificateManagement/CACertificates.yaml + * CertificateManagement/CADistrustedCertificates.yaml + * CertificateManagement/CAHintCertificates.yaml + * CertificateManagement/CAPlatformIntegrationEnabled.yaml + + +chrome_enable_logging_by_default + Current value (from the default) = false + From //chrome/common/features.gni:34 + + Enables the build to have logging enabled by default. + This is intended for use only in developer builds. chrome_pgo_phase Current value = 2 - From //out/thorium/args.gn:60 + From //out/test/args.gn:93 Overridden from the default = 2 - From //build/config/compiler/pgo/pgo.gni:20 + From //build/config/compiler/pgo/pgo.gni:31 + +chrome_root_store_only + Current value (from the default) = true + From //net/features.gni:53 + + Platforms for which certificate verification can only be performed using + the builtin cert verifier with the Chrome Root Store. + +chrome_root_store_optional + Current value (from the default) = false + From //net/features.gni:49 + + Platforms for which certificate verification can be performed using the + builtin cert verifier with the Chrome Root Store, and this can be + configured using the ChromeRootStoreUsed feature flag. When the feature + flag is false, verification may be done with the platform verifier or the + builtin verifier using platform roots, depending on the platform. + See https://crbug.com/1216547 for status. chrome_root_store_supported - Current value (from the default) = false - From //net/features.gni:50 - - Platforms for which the builtin cert verifier can use the Chrome Root Store. - See https://crbug.com/1216547 for status. + Current value (from the default) = true + From //net/features.gni:68 chrome_wide_echo_cancellation_supported Current value (from the default) = true - From //media/media_options.gni:266 + From //media/media_options.gni:345 - The audio service must be sandboxed for us to do audio processing there. - Currently it is so only on Win and Mac. + Currently it is available on Win, Mac and Linux, since it requires the audio + service to run in a separate process. -chromecast_branding - Current value (from the default) = "public" - From //build/config/chromecast_build.gni:21 +chromedriver_disclaim_responsibility + Current value (from the default) = true + From //chrome/test/chromedriver/BUILD.gn:20 - chromecast_branding is used to include or exclude Google-branded components. - Set it to "public" for a Chromium build. - TODO(crbug.com/1293517): Remove usages in Chromium and move to //chromecast. + Make macOS request permissions for the chrome binary instead of its parent + process (usually the Terminmal.app). + This is required for running chrome tests on Google's CI machines, but for + some vendor builds like Microsoft Teams they need to turn this off. chromeos_afdo_platform Current value (from the default) = "atom" - From //build/config/compiler/BUILD.gn:109 + From //build/config/compiler/BUILD.gn:112 This configuration is used to select a default profile in Chrome OS based on the microarchitectures we are using. This is only used if @@ -723,7 +878,7 @@ chromeos_is_browser_only Current value (from the default) = false From //build/config/chromeos/ui_mode.gni:19 - Deprecated, use is_lacros. + Deprecated, use is_chromeos_lacros. This controls UI configuration for Chrome. If this flag is set, we assume Chrome runs on Chrome OS devices, using @@ -732,45 +887,53 @@ chromeos_is_browser_only TODO(crbug.com/1052397): Define chromeos_product instead, which takes either "browser" or "ash". Re-define the following variables as: - is_lacros = chromeos_product == "browser" - is_ash = chromeos_product == "ash" + is_chromeos_lacros = chromeos_product == "browser" + is_chromeos_ash = chromeos_product == "ash" clang_base_path Current value (from the default) = "//third_party/llvm-build/Release+Asserts" - From //build/config/clang/clang.gni:17 + From //build/config/clang/clang.gni:29 clang_diagnostic_dir Current value (from the default) = "../../tools/clang/crashreports" - From //build/config/compiler/compiler.gni:124 + From //build/config/compiler/compiler.gni:128 + +clang_embed_bitcode + Current value (from the default) = false + From //build/config/clang/clang.gni:33 + + Specifies whether or not bitcode should be embedded during compilation. + This is used for creating a MLGO corpus from Chromium in the non-ThinLTO case. clang_emit_debug_info_for_profiling Current value (from the default) = false - From //build/config/compiler/BUILD.gn:112 + From //build/config/compiler/BUILD.gn:116 Emit debug information for profiling wile building with clang. + Only enable this for ChromeOS official builds for AFDO. clang_sample_profile_path Current value (from the default) = "" - From //build/config/compiler/BUILD.gn:93 + From //build/config/compiler/BUILD.gn:96 Path to an AFDO profile to use while building with clang, if any. Empty implies none. clang_use_chrome_plugins - Current value (from the default) = true - From //build/config/clang/clang.gni:14 + Current value = true + From //out/test/args.gn:53 + Overridden from the default = true + From //build/config/clang/clang.gni:15 clang_use_default_sample_profile Current value (from the default) = false - From //build/config/compiler/BUILD.gn:102 + From //build/config/compiler/BUILD.gn:105 clang_version - Current value (from the default) = "15.0.0" - From //build/toolchain/toolchain.gni:36 + Current value (from the default) = "18" + From //build/toolchain/toolchain.gni:53 -cleaner_branding_path - Current value (from the default) = "//chrome/chrome_cleaner/constants/CLEANER_BRANDING" - From //chrome/chrome_cleaner/constants/args.gni:7 + TODO(crbug.com/1517549): Remove in the next Clang roll. com_init_check_hook_disabled Current value (from the default) = false @@ -780,7 +943,7 @@ com_init_check_hook_disabled compiler_timing Current value (from the default) = false - From //build/config/compiler/BUILD.gn:115 + From //build/config/compiler/BUILD.gn:119 Turn this on to have the compiler output extra timing information. @@ -817,17 +980,24 @@ concurrent_links The default to use varies by platform and by the amount of memory available, so we call out to a script to get the right value. +content_enable_legacy_ipc + Current value (from the default) = false + From //content/common/features.gni:24 + + We allow legacy IPC to be enabled for Android (GIN Java bridge), and + Pepper usage. + content_shell_major_version Current value (from the default) = "999" - From //content/shell/BUILD.gn:37 + From //content/shell/BUILD.gn:45 content_shell_product_name Current value (from the default) = "Content Shell" - From //content/shell/BUILD.gn:35 + From //content/shell/BUILD.gn:43 content_shell_version Current value (from the default) = "999.77.34.5" - From //content/shell/BUILD.gn:36 + From //content/shell/BUILD.gn:44 coverage_instrumentation_input_file Current value (from the default) = "" @@ -843,45 +1013,67 @@ coverage_instrumentation_input_file cppgc_allow_allocations_in_prefinalizers Current value (from the default) = false - From //v8/BUILD.gn:297 + From //v8/BUILD.gn:330 Enable allocations during prefinalizer invocations. +cppgc_enable_2gb_cage + Current value (from the default) = false + From //v8/gni/v8.gni:132 + + Enable 2gb cage for fast compression/decompression. Currently disabled + due to an increased number of OOMs. + cppgc_enable_caged_heap Current value (from the default) = true - From //v8/BUILD.gn:290 + From //v8/BUILD.gn:323 + +cppgc_enable_larger_cage + Current value (from the default) = false + From //v8/gni/v8.gni:135 + + Enable support for larger cages, up to 16GB. cppgc_enable_object_names Current value (from the default) = false - From //v8/gni/v8.gni:86 + From //v8/gni/v8.gni:116 - Enable object names in cppgc for debug purposes. + Enable object names in cppgc for profiling purposes. cppgc_enable_pointer_compression Current value (from the default) = false - From //v8/gni/v8.gni:92 + From //v8/gni/v8.gni:128 Enable pointer compression in cppgc. +cppgc_enable_slim_write_barrier + Current value (from the default) = true + From //v8/gni/v8.gni:125 + + Enables a slim write barrier that only performs a single check in the fast + path and delegates all further checks to a slow path call. This is fast + in a setting with few slow-path checks, i.e., with disabled young generation + GC. + cppgc_enable_verify_heap Current value (from the default) = "" - From //v8/BUILD.gn:294 + From //v8/BUILD.gn:327 Enables additional heap verification phases and checks. cppgc_enable_young_generation Current value (from the default) = false - From //v8/gni/v8.gni:89 + From //v8/gni/v8.gni:119 Enable young generation in cppgc. cppgc_is_standalone Current value (from the default) = false - From //v8/gni/v8.gni:83 + From //v8/gni/v8.gni:113 crashpad_dependencies Current value = "chromium" - From //.gn:49 + From //.gn:55 Overridden from the default = "standalone" From //third_party/crashpad/crashpad/build/crashpad_buildconfig.gni:19 @@ -890,11 +1082,11 @@ crashpad_dependencies "fuchsia", "dart" or "external". crashpad_http_transport_impl - Current value (from the default) = "libcurl" - From //third_party/crashpad/crashpad/util/net/tls.gni:21 + Current value (from the default) = "" + From //third_party/crashpad/crashpad/util/net/tls.gni:23 crashpad_use_boringssl_for_http_transport_socket - Current value (from the default) = true + Current value (from the default) = false From //third_party/crashpad/crashpad/util/net/tls.gni:30 cros_board @@ -932,81 +1124,110 @@ custom_vulkan_loader_library_name dawn_always_assert Current value (from the default) = false - From //third_party/dawn/scripts/dawn_features.gni:42 + From //third_party/dawn/scripts/dawn_features.gni:66 Enable Dawn's ASSERTs even in release builds dawn_complete_static_libs Current value (from the default) = false - From //third_party/dawn/scripts/dawn_features.gni:47 + From //third_party/dawn/scripts/dawn_features.gni:71 Should the Dawn static libraries be fully linked vs. GN's default of treating them as source sets. This is useful for people using Dawn standalone to produce static libraries to use in their projects. -dawn_enable_d3d12 +dawn_dxc_disable_asserts_debug Current value (from the default) = false - From //third_party/dawn/scripts/dawn_features.gni:50 + From //third_party/dawn/third_party/gn/dxc/BUILD.gn:50 + + DXC sometimes asserts on valid HLSL. Set this to true to disable assertions in debug builds. + +dawn_enable_d3d11 + Current value (from the default) = true + From //third_party/dawn/scripts/dawn_features.gni:74 + + Enables the compilation of Dawn's D3D11 backend + +dawn_enable_d3d12 + Current value (from the default) = true + From //third_party/dawn/scripts/dawn_features.gni:77 Enables the compilation of Dawn's D3D12 backend dawn_enable_desktop_gl - Current value (from the default) = true - From //third_party/dawn/scripts/dawn_features.gni:61 + Current value (from the default) = false + From //third_party/dawn/scripts/dawn_features.gni:88 Enables the compilation of Dawn's OpenGL backend (best effort, non-conformant) dawn_enable_error_injection Current value (from the default) = false - From //third_party/dawn/scripts/dawn_features.gni:76 + From //third_party/dawn/scripts/dawn_features.gni:103 dawn_enable_metal Current value (from the default) = false - From //third_party/dawn/scripts/dawn_features.gni:53 + From //third_party/dawn/scripts/dawn_features.gni:80 Enables the compilation of Dawn's Metal backend dawn_enable_null Current value (from the default) = true - From //third_party/dawn/scripts/dawn_features.gni:57 + From //third_party/dawn/scripts/dawn_features.gni:84 Enables the compilation of Dawn's Null backend (required for unittests, obviously non-conformant) dawn_enable_opengles Current value (from the default) = true - From //third_party/dawn/scripts/dawn_features.gni:67 + From //third_party/dawn/scripts/dawn_features.gni:94 + +dawn_enable_spirv_validation + Current value (from the default) = true + From //third_party/dawn/scripts/dawn_features.gni:121 + + Disable SPIR-V validation on Android because it adds a significant amount + to the binary size, and Tint's output should be well-formed. dawn_enable_vulkan Current value (from the default) = true - From //third_party/dawn/scripts/dawn_features.gni:71 + From //third_party/dawn/scripts/dawn_features.gni:98 Enables the compilation of Dawn's Vulkan backend Disables vulkan when compiling for UWP, since UWP only supports d3d dawn_enable_vulkan_loader - Current value (from the default) = true - From //third_party/dawn/scripts/dawn_features.gni:90 + Current value (from the default) = false + From //third_party/dawn/scripts/dawn_features.gni:117 dawn_enable_vulkan_validation_layers Current value (from the default) = true - From //third_party/dawn/scripts/dawn_features.gni:85 + From //third_party/dawn/scripts/dawn_features.gni:112 -dawn_use_angle +dawn_tests_use_angle Current value (from the default) = true - From //third_party/dawn/scripts/dawn_features.gni:33 + From //third_party/dawn/scripts/dawn_features.gni:50 + +dawn_use_built_dxc + Current value (from the default) = true + From //third_party/dawn/scripts/dawn_features.gni:61 + + Whether we allow building DXC. + DXC requires SM6.0+ which is blocklisted on x86, + and arm64 support is not implemented yet. + See crbug.com/tint/1753. dawn_use_swiftshader Current value (from the default) = true - From //third_party/dawn/scripts/dawn_features.gni:37 + From //third_party/dawn/scripts/dawn_features.gni:55 Enables SwiftShader as the fallback adapter. Requires dawn_swiftshader_dir to be set to take effect. + TODO(dawn:1536): Enable SwiftShader for Android. dcheck_always_on Current value = false - From //out/thorium/args.gn:11 + From //out/test/args.gn:16 Overridden from the default = false From //build/config/dcheck_always_on.gni:25 @@ -1018,25 +1239,16 @@ dcheck_is_configurable DCHECKS can then be set as fatal/non-fatal via the "DcheckIsFatal" feature. See https://bit.ly/dcheck-albatross for details on how this is used. -default_command_line_flags - Current value (from the default) = [] - From //chromecast/chromecast.gni:97 - - Contain default command line switches we want to set. - This will get joined into a comma-separated list that looks like: - "test-flag-one=public,test-flag-two=true,test-flag-three=1," - TODO(ziyangch): make the parsing logic have ability to quote/escape characters. - -device_user_agent_suffix - Current value (from the default) = "" - From //chromecast/chromecast.gni:151 - - device specific string to append to User string. - devtools_components_visibility Current value (from the default) = ["*"] From //third_party/devtools-frontend/src/front_end/ui/components/visibility.gni:8 +devtools_css_hot_reload_enabled + Current value (from the default) = false + From //third_party/devtools-frontend/src/scripts/build/ninja/generate_css.gni:11 + + Whether to enable CSS hot reloading with `watch` script or not. + devtools_dcheck_always_on Current value (from the default) = false From //third_party/devtools-frontend/src/scripts/build/ninja/vars.gni:8 @@ -1072,13 +1284,24 @@ devtools_panels_visibility Current value (from the default) = ["*"] From //third_party/devtools-frontend/src/front_end/panels/visibility.gni:8 +devtools_release_sourcemaps + Current value (from the default) = false + From //third_party/devtools-frontend/src/scripts/build/ninja/bundle.gni:20 + + If this is enabled, we will emit source maps for the entrypoint bundles. + Since we only bundle release builds, this flag can't be used with + is_debug = true. + Note that this flag works regardless of the devtools_skip_typecheck or + devtools_fast_bundle GN arg. Both rollup.js or ESBuild will emit source + maps if this flag is set. + devtools_root_location Current value (from the default) = "third_party/devtools-frontend/src" From //build/config/devtools.gni:26 devtools_skip_typecheck Current value (from the default) = false - From //third_party/devtools-frontend/src/third_party/typescript/typescript.gni:15 + From //third_party/devtools-frontend/src/third_party/typescript/typescript.gni:16 devtools_third_party_visibility Current value (from the default) = ["*"] @@ -1088,38 +1311,32 @@ devtools_ui_legacy_visibility Current value (from the default) = ["*"] From //third_party/devtools-frontend/src/front_end/ui/legacy/visibility.gni:8 -devtools_use_rbe +devtools_use_remoteexec Current value (from the default) = false - From //third_party/devtools-frontend/src/third_party/typescript/typescript.gni:13 + From //third_party/devtools-frontend/src/third_party/typescript/typescript.gni:14 - Set to true to enable remote compilation of TypeScript using RBE. - This flag is temporarily until DevTools RBE support has stabilized. - At that point, this flag will be folded together with "use_rbe". + Set to true to enable remote compilation of TypeScript using reclient. + This flag is temporarily until DevTools reclient support has stabilized. + At that point, this flag will be folded together with "use_remoteexec". TODO(crbug.com/1139220): Remove the flag once we are confident. devtools_visibility Current value = ["*"] - From //.gn:63 + From //.gn:71 Overridden from the default = [] From //third_party/devtools-frontend/src/front_end/visibility.gni:6 -dfmify_feed_v2_modern - Current value (from the default) = false - From //components/feed/features.gni:13 - - Whether to include Feed as a DFM in ChromeModern builds. - disable_brotli_filter Current value (from the default) = false - From //net/features.gni:22 + From //net/features.gni:24 Do not disable brotli filter by default. disable_fieldtrial_testing_config Current value = true - From //out/thorium/args.gn:15 + From //out/test/args.gn:20 Overridden from the default = false - From //components/variations/service/BUILD.gn:14 + From //components/variations/service/BUILD.gn:15 Set to true make a build that disables activation of field trial tests specified in testing/variations/fieldtrial_testing_config.json. @@ -1129,9 +1346,10 @@ disable_fieldtrial_testing_config disable_file_support Current value (from the default) = false - From //net/features.gni:9 + From //net/features.gni:11 Disables support for file URLs. File URL support requires use of icu. + Cronet does not support file URLs. disable_histogram_support Current value (from the default) = true @@ -1141,32 +1359,40 @@ disable_histogram_support disable_libfuzzer Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:86 + From //build/config/sanitizers/sanitizers.gni:87 Helper variable for testing builds with disabled libfuzzer. Not for client use. -disable_secure_flac_and_opus_decoding +disable_zstd_filter Current value (from the default) = false - From //chromecast/chromecast.gni:101 + From //net/features.gni:27 - Set to true to disable secure flac/opus support in EME, when using - cast CMA media backend and supporting Widevine or Playready. + Do not disable zstd filter by default, except for Cronet builds. + +enable_accessibility_service + Current value (from the default) = false + From //services/accessibility/buildflags.gni:11 + + Used to enable the Accessibility Service. Override this in + gn args on supported platforms (see below). + +enable_accessibility_service_internal + Current value (from the default) = false + From //services/accessibility/buildflags.gni:20 + +enable_all_rust_features + Current value (from the default) = false + From //build/config/rust.gni:50 + + As we incrementally enable Rust on mainstream builders, we want to enable + the toolchain (by switching 'enable_rust' to true) while still disabling + almost all Rust features). Yet we still want to have some builders with + all Rust features enabled. enable_arcore Current value (from the default) = false - From //device/vr/buildflags/buildflags.gni:38 - - Controls inclusion of code for ARCore that must be identical across configs. - Once crbug.com/920424 is resolved, this will exactly control whether ARCore - is supported. - TODO(crbug.com/843374): AR should not depend on |enable_vr|. - -enable_assistant - Current value (from the default) = false - From //chromecast/chromecast.gni:47 - - Set true to enable assistant features. + From //device/vr/buildflags/buildflags.gni:21 enable_assistant_integration_tests Current value (from the default) = false @@ -1177,40 +1403,49 @@ enable_assistant_integration_tests server, which increases the library size, which is why we introduced this flag to disable them in the release builds. -enable_audio_capture_service - Current value (from the default) = false - From //chromecast/chromecast.gni:128 - - Set to true to enable audio capture service for audio input. - -enable_autofill_assistant_api - Current value (from the default) = false - From //extensions/buildflags/buildflags.gni:10 - - Compile time flag for the Autofill Assistant API. - WARNING: This must not be enabled in official builds. - enable_av1_decoder Current value (from the default) = true - From //media/media_options.gni:93 + From //media/media_options.gni:133 + + If overriding this to false, possibly via its component values, + `enable_libaom` should likely also be overriddent to false. enable_background_contents Current value (from the default) = true - From //chrome/common/features.gni:38 + From //chrome/common/features.gni:49 Enables support for background apps. enable_background_mode Current value (from the default) = true - From //chrome/common/features.gni:39 + From //chrome/common/features.gni:50 + +enable_backup_ref_ptr_feature_flag + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:194 + + Enable the feature flag required to activate backup ref pointers. That is to + say `PartitionAllocBackupRefPtr`. + + This is meant to be used primarily on bots. It is much easier to override + the feature flags using a binary flag instead of updating multiple bots's + scripts to pass command line arguments. + +enable_backup_ref_ptr_instance_tracer + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:222 enable_backup_ref_ptr_slow_checks Current value (from the default) = false - From //base/allocator/allocator.gni:107 + From //base/allocator/partition_allocator/partition_alloc.gni:186 + +enable_backup_ref_ptr_support + Current value (from the default) = true + From //base/allocator/partition_allocator/partition_alloc.gni:144 enable_base_tracing Current value (from the default) = true - From //build_overrides/build.gni:22 + From //build_overrides/build.gni:36 Tracing support requires //third_party/perfetto, which is not available in libchrome (CrOS's version of //base). This flag can disable tracing support @@ -1220,27 +1455,34 @@ enable_base_tracing enable_basic_print_dialog Current value (from the default) = true - From //chrome/common/features.gni:43 + From //printing/buildflags/buildflags.gni:34 - Enable the printing system dialog for platforms that support printing + Enables the printing system dialog for platforms that support printing and have a system dialog. enable_basic_printing Current value (from the default) = true - From //printing/buildflags/buildflags.gni:14 + From //printing/buildflags/buildflags.gni:25 - Enables basic printing support and UI. + TODO(awscreen) Safety net to avoid revert for a flag rename which affects + many locations. Remove this once `enable_printing` has landed. enable_blink_bindings_tracing Current value (from the default) = false - From //third_party/blink/renderer/platform/BUILD.gn:193 + From //third_party/blink/renderer/platform/BUILD.gn:229 Enable TRACE_EVENT instrumentation for Blink bindings. Disabled by default as it increases binary size. +enable_bound_session_credentials + Current value (from the default) = true + From //components/signin/features.gni:10 + + Compile time flag for Bound Session Credentials. + enable_browser_speech_service Current value (from the default) = true - From //chrome/services/speech/buildflags/buildflags.gni:22 + From //chrome/services/speech/buildflags/buildflags.gni:24 Whether the speech service is implemented in the browser as a hosted service possibly running in a utility process. @@ -1253,14 +1495,11 @@ enable_browser_speech_service enable_call_graph_profile_sort Current value (from the default) = true - From //build/config/compiler/BUILD.gn:162 - - Turn off the --call-graph-profile-sort flag for lld by default. Enable - selectively for targets where it's beneficial. + From //build/config/compiler/BUILD.gn:246 enable_callgrind Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:54 + From //third_party/pdfium/pdfium.gni:66 Enable callgrind for performance profiling @@ -1268,52 +1507,45 @@ enable_captive_portal_detection Current value (from the default) = true From //components/captive_portal/core/features.gni:9 -enable_cast_audio_manager_mixer +enable_cardboard Current value (from the default) = false - From //chromecast/chromecast.gni:106 + From //device/vr/buildflags/buildflags.gni:19 enable_cast_audio_renderer Current value (from the default) = false - From //build/config/chromecast_build.gni:38 + From //build/config/cast.gni:24 True to enable the cast audio renderer. TODO(crbug.com/1293520): Remove this buildflag. -enable_cast_media_runtime - Current value (from the default) = false - From //chromecast/chromecast.gni:144 - - True to link in alternate build targets for the Cast Media Runtime. - enable_cast_receiver Current value (from the default) = false - From //build/config/chromecast_build.gni:47 + From //build/config/cast.gni:42 Set this true for a Chromecast build. Chromecast builds are supported on Linux, Android, ChromeOS, and Fuchsia. - - During the migration from is_chromecast, this must be set to the same value - as is_chromecast. enable_cast_renderer Current value (from the default) = false - From //build/config/chromecast_build.gni:62 + From //build/config/cast.gni:51 enable_cdm_host_verification Current value (from the default) = false - From //media/media_options.gni:167 + From //media/media_options.gni:240 enable_cdm_storage_id - Current value (from the default) = false - From //media/media_options.gni:171 + Current value = true + From //out/test/args.gn:66 + Overridden from the default = false + From //media/media_options.gni:245 Enable Storage ID which is used by CDMs. This is only available with chrome branding, but may be overridden by other embedders. enable_cet_shadow_stack Current value (from the default) = true - From //build/config/compiler/compiler.gni:131 + From //build/config/compiler/compiler.gni:135 Mark binaries as compatible with Shadow Stack of Control-flow Enforcement Technology (CET). If Windows version and hardware supports the feature and @@ -1321,53 +1553,57 @@ enable_cet_shadow_stack performed as mitigation against Return-oriented programming (ROP). https://chromium.googlesource.com/chromium/src/+/main/docs/design/sandbox.md#cet-shadow-stack +enable_check_raw_ptr_fields + Current value (from the default) = false + From //build/config/clang/clang.gni:19 + +enable_check_raw_ref_fields + Current value (from the default) = false + From //build/config/clang/clang.gni:26 + enable_chrome_notifications Current value (from the default) = true - From //chrome/common/features.gni:46 + From //chrome/common/features.gni:53 Enables usage of notifications via Chrome's MessageCenter. -enable_chromecast_extensions +enable_chromium_prelude Current value (from the default) = true - From //chromecast/chromecast.gni:191 + From //build/config/rust.gni:44 -enable_chromecast_webui - Current value (from the default) = true - From //chromecast/chromecast.gni:44 - - If true, Chromecast WebUI resources are included in a build. - TODO(antz): default to false for audio-only builds, might need further - clean up (b/27119303) - -enable_chromium_runtime_cast_renderer - Current value (from the default) = false - From //chromecast/chromecast.gni:141 - - True to use the Chromium runtime for cast rendering. - -enable_chromium_updater - Current value (from the default) = false - From //chrome/browser/buildflags.gni:17 - - Chromium Updater is a cross-platform updater for desktop clients built using - Chromium code and tools. Code is in //chrome/updater. The design doc is - located at http://bit.ly/chromium-updater. Chrome is currently installed and - updated with proprietary updater (Omaha & Keystone). This build flag allows - integration with the open source, cross-platform Chromium updater. - TODO(crbug.com/1054060) + The chromium prelude crate provides the `chromium::import!` macro which + is needed to depend on first-party rust libraries. Third-party libraries + are specified with cargo_crate and do not get imported through this macro. + + The macro requires //third_party/rust for syn, quote, and proc_macro2. + Downstream projects that want to use //build for the rust GN templates but + don't want to enable the chromium prelude can disable it here, and should + specify a globally unique `crate_name` in their rust library GN rules + instead. Note that using a `crate_name` is strongly discouraged inside + Chromium, and is also discouraged for downstream projects when possible. enable_click_to_call Current value (from the default) = true - From //chrome/common/features.gni:49 + From //chrome/common/features.gni:56 Disable Click to Call on Fuchsia. -enable_color_manager - Current value (from the default) = false - From //components/exo/buildflags.gni:11 +enable_component_updater + Current value (from the default) = true + From //chrome/common/features.gni:60 - If true, enables zcr_color_manager_v1. This is a temporary flag meant to - guard an in-progress implementation, to be replaced by a feature flag. + Whether to enable the component updater. Code is in + //components/component_updater. + +enable_compose + Current value (from the default) = true + From //components/compose/features.gni:7 + + Whether Compose is enabled in the build. + +enable_concurrent_basic_print_dialogs + Current value (from the default) = false + From //printing/buildflags/buildflags.gni:55 enable_cros_libassistant Current value (from the default) = false @@ -1377,24 +1613,56 @@ enable_cros_libassistant enable_cros_media_app Current value = false - From //out/thorium/args.gn:34 + From //out/test/args.gn:49 Overridden from the default = false From //ash/webui/media_app_ui/media_app_ui.gni:7 Whether to enable the "real" ChromeOS Media App. When false, a mock app is bundled for testing integration points. +enable_cxx + Current value (from the default) = true + From //build/config/rust.gni:32 + + The CXX tool is in //third_party/rust which is not shared with downstream + projects yet. So they need to copy the required dependencies and GN files + into their project to enable CXX there. + enable_dangling_raw_ptr_checks Current value (from the default) = false - From //base/allocator/allocator.gni:108 + From //base/allocator/partition_allocator/partition_alloc.gni:199 + +enable_dangling_raw_ptr_feature_flag + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:207 + + Enable the feature flag required to check for dangling pointers. That is to + say `PartitionAllocDanglingPtr`. + + This is meant to be used primarily on bots. It is much easier to override + the feature flags using a binary flag instead of updating multiple bots's + scripts to pass command line arguments. + +enable_dangling_raw_ptr_perf_experiment + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:217 + + Enables the dangling raw_ptr checks feature for the performance experiment. + Not every dangling pointers have been fixed or annotated yet. To avoid + accounting for the cost of calling the PA's embedder's callbacks when a + dangling pointer has been detected, this simulates the raw_ptr to be + allowed to dangle. + + This flag is temporary, and isn't used by PA embedders, so it doesn't need + to go through build_overrides enable_dav1d_decoder Current value (from the default) = true - From //media/media_options.gni:73 + From //media/media_options.gni:108 enable_discovery - Current value = true - From //out/thorium/args.gn:33 + Current value = false + From //out/test/args.gn:48 Overridden from the default = false From //chrome/browser/sharing/buildflags.gni:6 @@ -1423,20 +1691,19 @@ enable_dsyms enable_expensive_dchecks Current value (from the default) = false - From //build/config/dcheck_always_on.gni:30 - - Set to false to disable EXPENSIVE_DCHECK()s. + From //build/config/dcheck_always_on.gni:33 enable_extensions Current value (from the default) = true - From //extensions/buildflags/buildflags.gni:6 + From //extensions/buildflags/buildflags.gni:8 -enable_external_mojo_services - Current value (from the default) = false - From //chromecast/chromecast.gni:113 +enable_extractors + Current value (from the default) = true + From //chrome/services/file_util/public/features.gni:11 - Set to true to enable external Mojo services to communicate with services - within cast_shell. + Whether the file_util service supports .TAR.XZ and .TAR file extraction. + Currently only used by imageWriterPrivate extension API, so only enabled + when Extensions are enabled. enable_fake_assistant_microphone Current value (from the default) = false @@ -1451,17 +1718,11 @@ enable_feed_v2 Whether Feed is enabled in the build. -enable_feed_v2_modern - Current value (from the default) = true - From //components/feed/features.gni:10 - - Whether to include Feed in ChromeModern builds. - enable_ffmpeg_video_decoders Current value = true - From //out/thorium/args.gn:37 + From //out/test/args.gn:54 Overridden from the default = true - From //media/media_options.gni:152 + From //media/media_options.gni:224 On Android, FFMpeg is built without video decoders by default. This flag gives the option to override that decision in case there are no @@ -1470,7 +1731,7 @@ enable_ffmpeg_video_decoders enable_full_stack_frames_for_profiling Current value (from the default) = false - From //build/config/compiler/BUILD.gn:67 + From //build/config/compiler/BUILD.gn:69 Compile in such a way as to make it possible for the profiler to unwind full stack frames. Setting this flag has a large effect on the performance of the @@ -1478,16 +1739,13 @@ enable_full_stack_frames_for_profiling information to analyze. Requires profiling to be set to true. -enable_google_benchmarks +enable_fuzztest_fuzz Current value (from the default) = false - From //third_party/google_benchmark/buildconfig.gni:11 - - Google Benchmark is not checked out by default, because it is only used by - a few specialized benchmarks that most developers do not interact with. + From //build/config/sanitizers/sanitizers.gni:140 enable_gpu_client_logging Current value (from the default) = false - From //gpu/command_buffer/client/BUILD.gn:13 + From //gpu/command_buffer/client/BUILD.gn:14 Enable GPU client logging without DCHECK being on. @@ -1498,55 +1756,53 @@ enable_gpu_service_logging Whether service side logging (actual calls into the GL driver) is enabled or not. -enable_gvr_services - Current value (from the default) = false - From //device/vr/buildflags/buildflags.gni:11 - enable_gwp_asan Current value (from the default) = true - From //components/gwp_asan/buildflags/buildflags.gni:25 + From //components/gwp_asan/buildflags/buildflags.gni:27 Convenience definition enable_gwp_asan_malloc Current value (from the default) = true - From //components/gwp_asan/buildflags/buildflags.gni:19 + From //components/gwp_asan/buildflags/buildflags.gni:21 Is GWP-ASan malloc/PartitionAlloc hooking enabled for chrome/ on a given platform. enable_gwp_asan_partitionalloc Current value (from the default) = true - From //components/gwp_asan/buildflags/buildflags.gni:20 + From //components/gwp_asan/buildflags/buildflags.gni:22 enable_hangout_services_extension Current value = true - From //out/thorium/args.gn:46 + From //out/test/args.gn:72 Overridden from the default = false - From //chrome/common/features.gni:53 + From //chrome/common/features.gni:64 Hangout services is an extension that adds extra features to Hangouts. It is enableable separately to facilitate testing. +enable_hevc_parser_and_hw_decoder + Current value = true + From //out/test/args.gn:81 + Overridden from the default = true + From //media/media_options.gni:121 + +enable_hidpi + Current value (from the default) = true + From //ui/base/ui_features.gni:32 + enable_hls_demuxer Current value = true - From //out/thorium/args.gn:31 + From //out/test/args.gn:46 Overridden from the default = false - From //media/media_options.gni:80 + From //media/media_options.gni:115 Enable HLS manifest parser and demuxer. -enable_hls_sample_aes - Current value = true - From //out/thorium/args.gn:30 - Overridden from the default = false - From //media/media_options.gni:66 - - Enable HLS with SAMPLE-AES decryption. - enable_ink Current value = false - From //out/thorium/args.gn:32 + From //out/test/args.gn:47 Overridden from the default = false From //pdf/features.gni:18 @@ -1558,7 +1814,11 @@ enable_ink enable_ipc_fuzzer Current value (from the default) = false - From //tools/ipc_fuzzer/ipc_fuzzer.gni:15 + From //tools/ipc_fuzzer/ipc_fuzzer.gni:14 + + Build IPC fuzzer by default if it's a supported configuration. For + sanitizer builds, this needs to be enabled explicitly as they can be slow + (especially MSan). enable_ipc_logging Current value (from the default) = false @@ -1568,9 +1828,9 @@ enable_ipc_logging enable_iterator_debugging Current value = false - From //out/thorium/args.gn:14 + From //out/test/args.gn:19 Overridden from the default = false - From //build/config/c++/c++.gni:41 + From //build/config/c++/c++.gni:40 When set, enables libc++ debug mode with iterator debugging. @@ -1584,39 +1844,28 @@ enable_iterator_debugging enable_js_protobuf Current value (from the default) = true - From //third_party/protobuf/proto_library.gni:145 + From //third_party/protobuf/proto_library.gni:146 Allows subprojects to omit javascript dependencies (e.g.) closure_compiler and google-closure-library. -enable_js_type_check - Current value (from the default) = true - From //third_party/closure_compiler/compile_js.gni:11 - - Enable closure type-checking for Chrome's web technology-based UI. This - enables the webui_closure_compile target which does a no-op without this - flag enabled. Requires Java. - -enable_jxl_decoder - Current value (from the default) = true - From //third_party/blink/public/public_features.gni:9 - - If true, adds support for JPEG XL image decoding. - -enable_keystone_registration_framework - Current value (from the default) = true - From //chrome/BUILD.gn:60 - - Indicates whether keystone registration framework should be enabled (see - action("keystone_registration_framework") below). There are some tests - where we'd like for it to be disabled. (https://crbug.com/909080) - enable_kythe_annotations Current value (from the default) = false From //build/toolchain/kythe.gni:10 Enables Kythe annotations necessary to build cross references. +enable_lens_desktop + Current value (from the default) = true + From //components/lens/features.gni:15 + + Includes Lens features in the build. toolkit_views is used to ensure Lens + features are only included on Desktop devices running Chromium + +enable_lens_desktop_google_branded_features + Current value (from the default) = false + From //components/lens/features.gni:25 + enable_libaom Current value (from the default) = true From //third_party/libaom/options.gni:7 @@ -1629,41 +1878,32 @@ enable_libaom_decoder To be deprecated soon. -enable_libgav1_decoder - Current value (from the default) = false - From //third_party/libgav1/options.gni:12 - enable_library_cdms - Current value (from the default) = true - From //media/media_options.gni:159 + Current value = true + From //out/test/args.gn:60 + Overridden from the default = true + From //media/media_options.gni:232 Enables the use of library CDMs that implements the interface defined at media/cdm/api/content_decryption_module.h. If true, the actually library CDM will be hosted in the mojo CDM service running in the CDM (utility) process. + Used for all desktop platforms. enable_linux_installer Current value (from the default) = false - From //chrome/installer/BUILD.gn:11 - -enable_location_source - Current value (from the default) = true - From //base/BUILD.gn:52 - - Indicates if the Location object contains the source code information - (file, function, line). False means only the program counter (and currently - file name) is saved. + From //chrome/installer/installers.gni:12 enable_log_error_not_reached Current value (from the default) = false - From //build/config/logging.gni:12 + From //build/config/logging.gni:11 enable_logging_override Current value (from the default) = false - From //media/media_options.gni:71 + From //media/media_options.gni:106 Enable logging override, e.g. enable DVLOGs through level 2 at build time. - On Chromecast, these are logged as INFO. - On Fuchsia, these are logged as VLOGs. + On Cast devices, these are logged as INFO. + When enabled on Fuchsia, these are logged as VLOGs. enable_maldoca Current value (from the default) = true @@ -1673,34 +1913,26 @@ enable_maldoca enable_mdns Current value (from the default) = true - From //net/features.gni:25 + From //net/features.gni:30 Multicast DNS. enable_media_drm_storage Current value = true - From //out/thorium/args.gn:44 + From //out/test/args.gn:70 Overridden from the default = false - From //media/media_options.gni:77 + From //media/media_options.gni:112 Enable browser managed persistent metadata storage for EME persistent session and persistent usage record session. enable_media_foundation_widevine_cdm Current value (from the default) = false - From //third_party/widevine/cdm/widevine.gni:51 - -enable_media_overlay - Current value = true - From //out/thorium/args.gn:45 - Overridden from the default = false - From //chromecast/chromecast.gni:134 - - Set to true to enable media overlay for volume bar, etc. + From //third_party/widevine/cdm/widevine.gni:50 enable_media_remoting Current value (from the default) = true - From //media/media_options.gni:254 + From //media/media_options.gni:333 This switch defines whether the Media Remoting implementation will be built. When enabled, media is allowed to be renderer and played back on remote @@ -1708,7 +1940,7 @@ enable_media_remoting enable_media_remoting_rpc Current value (from the default) = true - From //media/media_options.gni:260 + From //media/media_options.gni:339 Media Remoting RPC is disabled on Android since it's unused but increases the native binary size by ~70Kb. @@ -1717,43 +1949,40 @@ enable_message_center Current value (from the default) = true From //ui/base/ui_features.gni:30 +enable_ml_internal + Current value (from the default) = false + From //services/on_device_model/on_device_model.gni:10 + enable_modular_updater Current value (from the default) = false - From //build/config/chromecast_build.gni:33 + From //build/config/cast.gni:19 Set true to enable modular_updater. enable_mojo_tracing Current value (from the default) = false - From //mojo/public/cpp/bindings/BUILD.gn:12 - -enable_mojom_closure_compile - Current value (from the default) = true - From //mojo/public/tools/bindings/mojom.gni:44 - - Enables Closure compilation of generated JS lite bindings. In environments - where compilation is supported, any mojom target "foo" will also have a - corresponding "foo_js_library_for_compile" target generated. + From //mojo/public/cpp/bindings/BUILD.gn:13 enable_mojom_fuzzer Current value (from the default) = false - From //mojo/public/tools/bindings/mojom.gni:51 + From //mojo/public/tools/bindings/mojom.gni:47 Enables generating javascript fuzzing-related code and the bindings for the MojoLPM fuzzer targets. Off by default. enable_mojom_message_id_scrambling Current value (from the default) = true - From //mojo/public/tools/bindings/mojom.gni:39 + From //mojo/public/tools/bindings/mojom.gni:43 Controls message ID scrambling behavior. If |true|, message IDs are scrambled (i.e. randomized based on the contents of //chrome/VERSION) on - non-Chrome OS desktop platforms. Set to |false| to disable message ID - scrambling on all platforms. + non-Chrome OS desktop platforms. Enabled on official builds by default. + Set to |true| to enable message ID scrambling on a specific build. + See also `enable_scrambled_message_ids` below for more details. enable_mojom_typemapping Current value (from the default) = true - From //mojo/public/tools/bindings/mojom.gni:33 + From //mojo/public/tools/bindings/mojom.gni:36 Indicates whether typemapping should be supported in this build configuration. This may be disabled when building external projects which @@ -1766,9 +1995,9 @@ enable_mojom_typemapping enable_mse_mpeg2ts_stream_parser Current value = true - From //out/thorium/args.gn:56 - Overridden from the default = false - From //media/media_options.gni:58 + From //out/test/args.gn:88 + Overridden from the default = true + From //media/media_options.gni:144 enable_mutex_priority_inheritance Current value (from the default) = false @@ -1780,15 +2009,17 @@ enable_mutex_priority_inheritance enable_nacl Current value = false - From //out/thorium/args.gn:25 - Overridden from the default = true - From //components/nacl/features.gni:14 + From //out/test/args.gn:26 + Overridden from the default = false + From //components/nacl/features.gni:27 + + Enables Native Client support. + + NaCl is only supported on ChromeOS. enable_nocompile_tests Current value (from the default) = true - From //build/nocompile.gni:68 - - TODO(crbug.com/105388): make sure no-compile test is not flaky. + From //build/nocompile.gni:58 enable_offline_pages Current value (from the default) = false @@ -1804,18 +2035,31 @@ enable_offline_pages_harness This enables test API for locally-built harness which is used for quality evaluations. Requires setting this variable manually at local environment. +enable_oop_basic_print_dialog + Current value (from the default) = true + From //printing/buildflags/buildflags.gni:62 + + Enables the printing system dialog being invoked from out-of-process for + platforms that support printing, have a system dialog, and which can invoke + that system print dialog from a process other than the browser process. + TODO(crbug.com/809738) Determine if Linux Wayland can be made to have a + system dialog be modal against an application window in the browser process. + enable_oop_printing Current value (from the default) = true - From //printing/buildflags/buildflags.gni:35 + From //printing/buildflags/buildflags.gni:47 - Enables out-of-process printing. While this definition matches - `enable_print_preview`, do not base this definition upon that. This - feature could still be appropriate for some build configurations which - explicitly disable print preview. + Enables out-of-process printing. Do not have this definition just be + based on `enable_print_preview`; this feature could still be appropriate + for some build configurations which explicitly disable print preview. + +enable_oop_printing_no_oop_basic_print_dialog + Current value (from the default) = false + From //printing/buildflags/buildflags.gni:68 enable_opengl_apitrace Current value (from the default) = false - From //build/config/ozone.gni:35 + From //build/config/ozone.gni:34 Enable explicit apitrace (https://apitrace.github.io) loading. This requires apitrace library with additional bindings. @@ -1825,13 +2069,16 @@ enable_opengl_apitrace Trace will be saved to /tmp/gltrace.dat file by default. You can override it at run time with TRACE_FILE= environment variable. -enable_openscreen +enable_openscreen_protocol Current value (from the default) = false - From //chrome/browser/media/router/features.gni:14 + From //chrome/browser/media/router/BUILD.gn:12 + + Set to true to build code that supports the Open Screen Protocol. + OSP is experimental and not yet feature-complete. enable_openxr - Current value (from the default) = false - From //device/vr/buildflags/buildflags.gni:18 + Current value (from the default) = true + From //device/vr/buildflags/buildflags.gni:27 To build with OpenXR support, the OpenXR Loader needs to be pulled to third_party/openxr. @@ -1841,7 +2088,7 @@ enable_paint_preview From //build/config/buildflags_paint_preview.gni:15 Enable basic paint preview support. Does not work on iOS. Should - not be included with Chromecast. + not be included with Chromecast hardware devices. Used by //components/paint_preview and //third_party/harfbuzz-ng. TODO(crbug.com/webrtc/11223) Move back this file in //components/paint_preview/ once WebRTC doesn't roll harfbuzz-ng anymore, @@ -1859,30 +2106,52 @@ enable_perfetto_fuzzers Current value (from the default) = false From //third_party/perfetto/gn/perfetto.gni:198 +enable_perfetto_grpc + Current value (from the default) = false + From //third_party/perfetto/gn/perfetto.gni:322 + + Enables gRPC in the Perfetto codebase. gRPC significantly increases build + times and the general footprint of Perfetto. As it only required for + BigTrace and even then only to build the final ready-to-ship binary, don't + enable this by default. + enable_perfetto_heapprofd Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:158 + From //third_party/perfetto/gn/perfetto.gni:157 enable_perfetto_integration_tests Current value (from the default) = false From //third_party/perfetto/gn/perfetto.gni:193 enable_perfetto_ipc - Current value (from the default) = true + Current value (from the default) = false From //third_party/perfetto/gn/perfetto.gni:150 enable_perfetto_llvm_demangle Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:298 + From //third_party/perfetto/gn/perfetto.gni:316 enable_perfetto_platform_services Current value (from the default) = false From //third_party/perfetto/gn/perfetto.gni:141 +enable_perfetto_site + Current value (from the default) = false + From //third_party/perfetto/gn/perfetto.gni:339 + + Allows to build the perfetto.dev website. + WARNING: if this flag is enabled, the build performs globbing at generation + time. Incremental builds that add/remove files will not be supported without + rerunning gn. + enable_perfetto_stderr_crash_dump Current value (from the default) = false From //third_party/perfetto/gn/perfetto.gni:235 +enable_perfetto_system_consumer + Current value (from the default) = false + From //third_party/perfetto/gn/perfetto.gni:251 + enable_perfetto_tools Current value (from the default) = false From //third_party/perfetto/gn/perfetto.gni:187 @@ -1893,35 +2162,35 @@ enable_perfetto_trace_processor enable_perfetto_trace_processor_httpd Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:285 + From //third_party/perfetto/gn/perfetto.gni:302 enable_perfetto_trace_processor_json Current value (from the default) = true - From //third_party/perfetto/gn/perfetto.gni:280 + From //third_party/perfetto/gn/perfetto.gni:295 enable_perfetto_trace_processor_linenoise Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:274 + From //third_party/perfetto/gn/perfetto.gni:289 enable_perfetto_trace_processor_percentile Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:270 + From //third_party/perfetto/gn/perfetto.gni:284 enable_perfetto_trace_processor_sqlite Current value (from the default) = true - From //third_party/perfetto/gn/perfetto.gni:265 + From //third_party/perfetto/gn/perfetto.gni:279 enable_perfetto_traceconv Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:304 + From //third_party/perfetto/gn/perfetto.gni:328 enable_perfetto_traced_perf Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:166 + From //third_party/perfetto/gn/perfetto.gni:165 enable_perfetto_traced_probes Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:257 + From //third_party/perfetto/gn/perfetto.gni:267 The traced_probes daemon is very Linux-specific, as it depends on ftrace and various /proc interfaces. There is no point making its code platform-neutral @@ -1931,15 +2200,16 @@ enable_perfetto_traced_probes code happens to build cleanly and for now the mainteinance cost on Mac is extremely low. -enable_perfetto_tracing +enable_perfetto_traced_relay Current value (from the default) = false - From //chromecast/chromecast.gni:119 + From //third_party/perfetto/gn/perfetto.gni:271 - Support using system perfetto tracing + The relay service is enabled when platform services are enabled. + TODO(chinglinyu) check if we can enable on Windows. enable_perfetto_ui Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:308 + From //third_party/perfetto/gn/perfetto.gni:332 enable_perfetto_unittests Current value (from the default) = true @@ -1955,80 +2225,148 @@ enable_perfetto_watchdog enable_perfetto_x64_cpu_opt Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:241 + From //third_party/perfetto/gn/perfetto.gni:243 enable_perfetto_zlib + Current value (from the default) = true + From //third_party/perfetto/gn/perfetto.gni:310 + +enable_pkeys Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:291 + From //base/allocator/partition_allocator/partition_alloc.gni:344 enable_platform_ac3_eac3_audio Current value = true - From //out/thorium/args.gn:53 + From //out/test/args.gn:82 Overridden from the default = false - From //media/media_options.gni:49 + From //media/media_options.gni:71 - Enables AC3/EAC3 audio demuxing. This is enabled only on Chromecast, since - it only provides demuxing, and is only useful for AC3/EAC3 audio - pass-through to HDMI sink on Chromecast. + Enables AC3/EAC3 audio handling in chromium. This includes demuxing, + on-device decoding and bitstream passthrough as supported by device. + +enable_platform_ac4_audio + Current value = true + From //out/test/args.gn:83 + Overridden from the default = false + From //media/media_options.gni:75 + + Enables AC4 audio handling in chromium. This includes demuxing, + on-device decoding and bitstream passthrough as supported by device. enable_platform_dolby_vision Current value = true - From //out/thorium/args.gn:54 - Overridden from the default = false - From //media/media_options.gni:63 - - Enable Dolby Vision demuxing. Enable by default for Chromecast. Actual - decoding must be provided by the platform. Note some Dolby Vision profiles - which are encoded using HEVC require |enable_platform_hevc| to be enabled. + From //out/test/args.gn:84 + Overridden from the default = true + From //media/media_options.gni:94 enable_platform_dts_audio - Current value (from the default) = false - From //media/media_options.gni:55 + Current value = true + From //out/test/args.gn:87 + Overridden from the default = false + From //media/media_options.gni:81 Enables DTS/DTSX audio handling in chromium. This includes demuxing, on-device decoding and bitstream passthrough as supported by device. +enable_platform_encrypted_dolby_vision + Current value = true + From //out/test/args.gn:85 + Overridden from the default = true + From //media/media_options.gni:101 + + Enable platform support of encrypted Dolby Vision. The actual support + depends on platform capability and is controlled by the run time feature + kPlatformEncryptedDolbyVision. Clear Dolby Vision is not supported by + default, unless overwritten by the run time feature + kAllowClearDolbyVisionInMseWhenPlatformEncryptedDvEnabled. + enable_platform_hevc Current value = true - From //out/thorium/args.gn:51 + From //out/test/args.gn:80 Overridden from the default = true - From //media/media_options.gni:99 + From //media/media_options.gni:140 -enable_platform_hevc_decoding - Current value = true - From //out/thorium/args.gn:52 - Overridden from the default = false - From //media/media_options.gni:86 +enable_platform_iamf_audio + Current value (from the default) = false + From //media/media_options.gni:85 + + Enables IAMF audio handling in chromium. This includes demuxing, + on-device decoding and bitstream passthrough as supported by device. enable_platform_mpeg_h_audio Current value = true - From //out/thorium/args.gn:55 + From //out/test/args.gn:86 Overridden from the default = false - From //media/media_options.gni:51 + From //media/media_options.gni:77 -enable_playready +enable_platform_vvc Current value (from the default) = false - From //chromecast/chromecast.gni:156 + From //media/media_options.gni:126 - Use Playready CDMs for internal non-desktop builds. + Enable inclusion of VVC/H.266 parser/demuxer, and also enable VVC/H.266 decoding + with hardware acceleration provided by platform. Disabled by default for all builds. enable_plugins Current value (from the default) = true - From //ppapi/buildflags/buildflags.gni:10 + From //ppapi/buildflags/buildflags.gni:15 + + Enables basic plugin support. This enables support for registering and + looking up plugins, but does not include support for loading plugins using a + specific technology like Pepper. + + In particular, the PDF viewer (enable_pdf) requires plugin support, but it + does not require Pepper support (enable_ppapi). + +enable_pointer_arithmetic_trait_check + Current value (from the default) = true + From //base/allocator/partition_allocator/partition_alloc.gni:124 + + Enables a compile-time check that all raw_ptrs to which arithmetic + operations are to be applied are annotated with the AllowPtrArithmetic + trait, + +enable_pointer_compression_support + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:115 + + Introduces pointer compression support in PA. These are 4-byte + pointers that can point within the core pools (regular and BRP). + + This is effective only for memory allocated from PartitionAlloc, so it is + recommended to enable PA-E above, but isn't strictly necessary. Embedders + can create and use PA partitions explicitly. + +enable_pointer_subtraction_check + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:119 + + Enables a bounds check when two pointers (at least one being raw_ptr) are + subtracted (if supported by the underlying implementation). + +enable_ppapi + Current value (from the default) = false + From //ppapi/buildflags/buildflags.gni:22 + + Enables Pepper API (PPAPI) plugin support. + The only remaining PPAPI plugin supported is NaCl and if is disabled + we can disable PPAPI. enable_precompiled_headers Current value = false - From //out/thorium/args.gn:27 + From //out/test/args.gn:42 Overridden from the default = false - From //build/config/pch.gni:14 + From //build/config/pch.gni:15 enable_print_content_analysis Current value (from the default) = true - From //printing/buildflags/buildflags.gni:40 + From //printing/buildflags/buildflags.gni:51 + + Enable snapshotting a page when printing for its content to be analyzed for + sensitive content by enterprise users. enable_print_media_l10n Current value (from the default) = false - From //chrome/common/printing/BUILD.gn:15 + From //chrome/common/printing/BUILD.gn:16 Enable print media localization only on the platforms that support CUPS IPP (ChromeOS and macOS for now). The localization expects media vendor IDs @@ -2036,15 +2374,29 @@ enable_print_media_l10n enable_print_preview Current value (from the default) = true - From //printing/buildflags/buildflags.gni:21 + From //printing/buildflags/buildflags.gni:30 Enables printing with print preview. Print preview requires PDF per //printing/BUILD.gn. The is_android condition is currently redundant but left for clarity. +enable_printing + Current value (from the default) = true + From //printing/buildflags/buildflags.gni:14 + + Enables printing support. + +enable_printing_tests + Current value (from the default) = false + From //printing/buildflags/buildflags.gni:19 + + TODO(crbug.com/1432082): iOS blink port only enables printing_tests to run + unit tests and web tests for now because the port does not enable the + printing feature yet. + enable_profiling Current value = false - From //out/thorium/args.gn:17 + From //out/test/args.gn:23 Overridden from the default = false From //build/config/compiler/compiler.gni:69 @@ -2060,13 +2412,13 @@ enable_pseudolocales enable_qr_print Current value (from the default) = false - From //components/qr_code_generator/BUILD.gn:7 + From //components/qr_code_generator/BUILD.gn:11 Enables building a development / debugging binary. enable_random_mojo_delays Current value (from the default) = false - From //mojo/public/cpp/bindings/BUILD.gn:18 + From //mojo/public/cpp/bindings/BUILD.gn:19 enable_random_mojo_delays starts a task runner that periodically pauses random Mojo bindings and later resumes them, in order to test whether parts @@ -2082,71 +2434,136 @@ enable_reading_list enable_remoting Current value (from the default) = true - From //remoting/remoting_enable.gni:12 - -enable_remoting_for_cwr - Current value (from the default) = false - From //chromecast/chromecast.gni:148 - - True to use the remoting implementation of cast streaming for the cast web - runtime (as opposed to the mirroring-only implementation). + From //remoting/remoting_enable.gni:13 enable_reporting - Current value (from the default) = true - From //net/features.gni:28 + Current value = false + From //out/test/args.gn:21 + Overridden from the default = true + From //net/features.gni:33 Reporting not used on iOS. enable_resource_allowlist_generation - Current value = false - From //out/thorium/args.gn:16 + Current value = true + From //out/test/args.gn:22 Overridden from the default = true - From //build/toolchain/gcc_toolchain.gni:28 + From //build/toolchain/gcc_toolchain.gni:29 + +enable_rlz + Current value = true + From //out/test/args.gn:68 + Overridden from the default = false + From //rlz/buildflags/buildflags.gni:13 enable_rust - Current value (from the default) = false - From //build/config/rust.gni:17 + Current value = true + From //out/test/args.gn:92 + Overridden from the default = true + From //build/config/rust.gni:27 - Whether to allow Rust code to be part of the Chromium *build process*. - This can be used to create Rust test binaries, even if the flag below - is false. + Rust is available in the Chromium build but 3p repos that use //build may + not use Rust and thus won't want to depend on having the Rust toolchain + present, so this defaults to off in those cases. + + Chromium-based projects that are built for for architectures Chrome does not + support may need to disable this as well, though they may need to replace + code with C/C++ to get a functional product. + +enable_rust_base_conversions + Current value (from the default) = true + From //build/config/rust.gni:109 + + Conversions between Rust types and C++ types. + +enable_rust_boringssl + Current value (from the default) = true + From //build/config/rust.gni:124 + + Enable Boringssl Rust bindings generation + +enable_rust_crash + Current value (from the default) = true + From //build/config/rust.gni:115 + + Support for chrome://crash-rust to check crash dump collection works. + +enable_rust_gtest_interop + Current value (from the default) = true + From //build/config/rust.gni:121 + + Rust gtest interop. + +enable_rust_json + Current value (from the default) = false + From //build/config/rust.gni:112 + + The base::JSONReader implementation. Requires base conversions. + +enable_rust_mojo + Current value (from the default) = false + From //build/config/rust.gni:118 + + Support for Rust mojo bindings. enable_screen_ai_service Current value (from the default) = true - From //components/services/screen_ai/buildflags/features.gni:11 + From //components/services/screen_ai/buildflags/features.gni:10 + + Screen AI service is only supported on desktop platforms. enable_segment_heap Current value (from the default) = false From //build/config/win/manifest.gni:46 +enable_server_based_recognition + Current value (from the default) = false + From //chrome/services/speech/buildflags/buildflags.gni:28 + + Whether the server based speech recognition recognizer is available. + Currently only available in official builds for ash ChromeOS. + enable_service_discovery Current value (from the default) = true - From //chrome/common/features.gni:55 + From //chrome/common/features.gni:66 enable_session_service Current value (from the default) = true - From //chrome/common/features.gni:59 + From //chrome/common/features.gni:70 Enables use of the session service, which is enabled by default. Android stores them separately on the Java side. -enable_skia_dawn_gtests +enable_shadow_call_stack Current value (from the default) = false - From //skia/features.gni:13 + From //build/config/compiler/BUILD.gn:195 - Enable gtests using SkiaRenderer Dawn. - TODO(rivr): Remove this and enable the tests by default once a software - path for D3D12 is available. + Enable ShadowCallStack for compiled binaries. SCS stores a pointer to a + shadow call stack in register x18. Hence, x18 must not be used by the OS + or libraries. We assume that to be the case for high end Android + configurations. For more details see + https://clang.llvm.org/docs/ShadowCallStack.html -enable_skia_wuffs_gif - Current value (from the default) = true - From //skia/BUILD.gn:30 - -enable_soda +enable_shadow_metadata Current value (from the default) = false - From //components/soda/buildflags.gni:7 + From //base/allocator/partition_allocator/partition_alloc.gni:228 + + Shadow metadata is still under development and only supports Linux + for now. + +enable_skia_graphite_gtests + Current value (from the default) = false + From //skia/features.gni:21 + + Enable gtests using SkiaRenderer on Skia Graphite. + +enable_soda_integration_tests + Current value (from the default) = false + From //components/soda/buildflags.gni:9 Used to enable the Speech On-Device API (SODA) in unit and browser tests. + This affects production code on some platforms and should not be enabled in + official builds. enable_speech_service Current value (from the default) = true @@ -2154,39 +2571,37 @@ enable_speech_service Whether the browser provides a speech recognition service (//media/mojo/mojom/speech_recognition_service.mojom) to the renderer. - TODO(b:223493879): Add support for speech to LaCrOS via go/crosapi and - change `is_chromeos_ash` to `is_chromeos` below. + TODO(crbug.com/1378804) Enable on Fuchsia. enable_stack_trace_line_numbers Current value (from the default) = false - From //build/config/logging.gni:13 + From //build/config/logging.gni:12 enable_stripping Current value = true - From //out/thorium/args.gn:8 + From //out/test/args.gn:14 Overridden from the default = true From //build/config/apple/symbols.gni:24 Strip symbols from linked targets by default. If this is enabled, the - //build/config/mac:strip_all config will be applied to all linked targets. + //build/config/apple:strip_all config will be applied to all linked targets. If custom stripping parameters are required, remove that config from a linked target and apply custom -Wcrl,strip flags. See //build/toolchain/apple/linker_driver.py for more information. enable_supervised_users - Current value (from the default) = false - From //chrome/common/features.gni:63 + Current value (from the default) = true + From //components/supervised_user/buildflags.gni:9 - Enables supervision for Family Link users. - Supervision is only supported on Chrome OS and Android. + Platforms which fully support supervision features: enable_swiftshader Current value (from the default) = true - From //ui/gl/features.gni:30 + From //ui/gl/features.gni:37 enable_swiftshader_vulkan Current value (from the default) = true - From //gpu/vulkan/features.gni:17 + From //gpu/vulkan/features.gni:16 Enable swiftshader vulkan. Disabling it can save build time, however --use-vulkan=swiftshader and some tests which use swiftshader vulkan will @@ -2194,104 +2609,127 @@ enable_swiftshader_vulkan enable_system_notifications Current value (from the default) = true - From //chrome/common/features.gni:67 - -enable_tagged_pdf - Current value (from the default) = true - From //printing/buildflags/buildflags.gni:45 - - Enables exporting to tagged PDF. + From //chrome/common/features.gni:74 enable_trace_logging + Current value (from the default) = true + From //third_party/openscreen/src/util/BUILD.gn:12 + + Enables trace logging in build. This is true by default, but may be disabled + for a slight performance increase. + +enable_update_notifications Current value (from the default) = false - From //third_party/openscreen/src/util/BUILD.gn:11 + From //chrome/browser/buildflags.gni:13 - Enables trace logging in build. This is true by default, unless - we are built against Chrome--we have no way to link their platform - implementation into our binaries so trace logging is not possible. + Detect updates and notify the user for Google Chrome across all platforms. + Chromium does not use an auto-updater. -enable_typescript_bindings +enable_updater Current value (from the default) = false - From //mojo/public/tools/bindings/mojom.gni:47 + From //chrome/browser/buildflags.gni:9 - Enables generating Typescript bindings and compiling them to JS bindings. + By default, only branded builds integrate with automatic updates. -enable_video_capture_service +enable_validating_command_decoder Current value (from the default) = false - From //chromecast/chromecast.gni:109 - - Set to true to enable video capture service for video input and output. - -enable_video_with_mixed_audio - Current value (from the default) = false - From //chromecast/chromecast.gni:83 - - Set to true to enable a CMA media backend that allows mixed audio to be - output with sync'd video. + From //ui/gl/features.gni:30 enable_vr Current value = true - From //out/thorium/args.gn:50 + From //out/test/args.gn:78 Overridden from the default = true - From //device/vr/buildflags/buildflags.gni:25 - - Enable VR device support whenever VR device SDK(s) are supported. - We enable VR on Linux even though VR features aren't usable because - the binary size impact is small and allows many VR tests to run on Linux + From //device/vr/buildflags/buildflags.gni:35 enable_vulkan Current value (from the default) = true - From //gpu/vulkan/features.gni:12 + From //gpu/vulkan/features.gni:11 + + Enable experimental vulkan backend. enable_wayland_server Current value (from the default) = false - From //chrome/common/features.gni:70 + From //chrome/common/features.gni:77 Indicates if Wayland display server support is enabled. enable_websockets Current value (from the default) = true - From //net/features.gni:13 + From //net/features.gni:15 - WebSockets and socket stream code are not used on iOS and are optional in - cronet. + WebSockets and socket stream code are not used when blink is not used + and are optional in cronet. + +enable_webui_certificate_viewer + Current value (from the default) = true + From //chrome/common/features.gni:80 + + Enables the webui certificate viewer dialog. + +enable_webui_inline_sourcemaps + Current value (from the default) = false + From //ui/webui/webui_features.gni:19 + + Whether to inline source maps during build. Cannot be enabled when + `optimize_webui=true`. enable_webui_tab_strip Current value = true - From //out/thorium/args.gn:21 + From //out/test/args.gn:28 Overridden from the default = true - From //ui/webui/webui_features.gni:14 + From //ui/webui/webui_features.gni:15 Enable the WebUI version of the browser's tab strip. enable_widevine Current value = true - From //out/thorium/args.gn:42 + From //out/test/args.gn:61 Overridden from the default = false From //third_party/widevine/cdm/widevine.gni:15 Enables Widevine key system support. Enabled by default in Google Chrome, - on Android and Fuchsia platforms. + Google Chrome for Testing and Android. For Fuchsia, see crbug.com/1354347. Can be optionally enabled in Chromium on non-Android platforms. Please see //src/third_party/widevine/LICENSE file for details. -enable_wmax_tokens - Current value (from the default) = false - From //build/config/compiler/BUILD.gn:154 - -enable_xz_extractor +enterprise_client_certificates Current value (from the default) = true - From //chrome/services/file_util/public/features.gni:11 + From //components/enterprise/buildflags/buildflags.gni:26 - Whether the file_util service supports .xz file extraction. - Currently only used by imageWriterPrivate extension API, so only enabled - when Extensions are enabled. + Indicates support for client certificates provisioning. + +enterprise_cloud_content_analysis + Current value (from the default) = true + From //components/enterprise/buildflags/buildflags.gni:16 + +enterprise_content_analysis + Current value (from the default) = true + From //components/enterprise/buildflags/buildflags.gni:38 + +enterprise_data_controls + Current value (from the default) = true + From //components/enterprise/buildflags/buildflags.gni:23 + + Indicates support for Data Control rules. + +enterprise_local_content_analysis + Current value (from the default) = true + From //components/enterprise/buildflags/buildflags.gni:20 + + Indicates support for content analysis against a cloud agent for Enterprise + Connector policies. + +enterprise_watermark + Current value (from the default) = true + From //components/enterprise/buildflags/buildflags.gni:29 + + The watermark is currently implemented using the views framework exclude_unwind_tables Current value = true - From //out/thorium/args.gn:12 + From //out/test/args.gn:17 Overridden from the default = true - From //build/config/compiler/compiler.gni:120 + From //build/config/compiler/compiler.gni:124 Exclude unwind tables by default for official builds as unwinding can be done from stack dumps produced by Crashpad at a later time "offline" in the @@ -2312,18 +2750,41 @@ extended_tracing_enabled Enable more trace events. Disabled by default due to binary size impact, but highly recommended for local development. +extra_sysroot_libs + Current value (from the default) = [] + From //build/config/rust.gni:90 + + Non-rlib libs provided in the toolchain sysroot. Usually this is empty, but + e.g. the Android Rust Toolchain provides a libunwind.a that rustc expects. + +fail_on_san_warnings + Current value (from the default) = false + From //build/config/sanitizers/sanitizers.gni:108 + + When true, sanitizer warnings will cause test case failures. + +fast_archive_compression + Current value (from the default) = false + From //chrome/installer/mini_installer/BUILD.gn:24 + + The Chrome archive is maximally compressed in official builds to reduce the + size of the installer. By default: non-official or component builds, build + modes targeting developers, use maximum-speed instead of maximum-compression + settings so as to provide quicker build-test cycles. Uncompressed archives + are not supported due to size constraints. + fatal_linker_warnings Current value (from the default) = true - From //build/config/compiler/BUILD.gn:75 + From //build/config/compiler/BUILD.gn:77 Enable fatal linker warnings. Building Chromium with certain versions of binutils can cause linker warning. ffmpeg_branding Current value = "Chrome" - From //out/thorium/args.gn:36 + From //out/test/args.gn:51 Overridden from the default = "Chromium" - From //third_party/ffmpeg/ffmpeg_options.gni:44 + From //third_party/ffmpeg/ffmpeg_options.gni:32 Controls whether we build the Chromium or Google Chrome version of FFmpeg. The Google Chrome version contains additional codecs. Typical values are @@ -2331,7 +2792,7 @@ ffmpeg_branding ffmpeg_use_unsafe_atomics Current value (from the default) = false - From //third_party/ffmpeg/ffmpeg_options.gni:62 + From //third_party/ffmpeg/ffmpeg_options.gni:50 Set to true to force the use of ffmpeg's stdatomic fallback code. This code is unsafe and does not implement atomics properly. https://crbug.com/161723. @@ -2345,7 +2806,7 @@ ffmpeg_use_unsafe_atomics forbid_non_component_debug_builds Current value (from the default) = true - From //build/config/compiler/compiler.gni:107 + From //build/config/compiler/compiler.gni:111 Whether an error should be raised on attempts to make debug builds with is_component_build=false. Very large debug symbols can have unwanted side @@ -2355,11 +2816,45 @@ force_cast_bluetooth Current value (from the default) = false From //device/bluetooth/cast_bluetooth.gni:4 -from_here_uses_location_builtins - Current value (from the default) = true - From //base/BUILD.gn:55 +force_enable_fieldtrial_testing_config + Current value (from the default) = false + From //components/variations/service/BUILD.gn:19 - Whether or not the FROM_HERE macro uses base::Location::Current(). + Set to true to make a build that force enables activation of field trial + tests specified in testing/variations/fieldtrial_testing_config.json. + +force_enable_raw_ptr_exclusion + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:148 + + RAW_PTR_EXCLUSION macro is disabled on official builds because it increased + binary size. This flag can be used to enable it for official builds too. + +force_rustc_color_output + Current value (from the default) = false + From //build/config/rust.gni:100 + + Force-enable `--color=always` for rustc, even when it would be disabled for + a platform. Mostly applicable to Windows, where new versions can handle ANSI + escape sequences but it's not reliable in general. + +forward_through_malloc + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:129 + + Forwards all the allocation/freeing calls in shim (e.g. operator new) + through malloc. Useful for using with tools that intercept malloc, e.g. + heaptrack. + +fuzztest_supported + Current value (from the default) = true + From //build/config/sanitizers/sanitizers.gni:115 + + The fuzztest library builds only on some platforms, so for now, + all targets depending on fuzztest need to be configured according + to this. + TODO(crbug.com/1494445): remove this when all build permutations + work gcc_target_rpath Current value (from the default) = "" @@ -2375,35 +2870,42 @@ gcc_target_rpath generate_fuzzer_owners Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:166 + From //build/config/sanitizers/sanitizers.gni:215 Generates an owners file for each fuzzer test. TODO(crbug.com/1194183): Remove this arg when finding OWNERS is faster. generate_linker_map Current value (from the default) = false - From //build/toolchain/toolchain.gni:21 + From //build/toolchain/toolchain.gni:27 Used for binary size analysis. +glue_core_pools + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:107 + + Puts the regular and BRP pools right next to each other, so that we can + check "belongs to one of the two pools" with a single bitmask operation. + gold_path Current value (from the default) = "" - From //build/config/compiler/BUILD.gn:71 + From //build/config/compiler/BUILD.gn:73 When we are going to use gold we need to find it. This is initialized below, after use_gold might have been overridden. goma_dir Current value (from the default) = "" - From //build/toolchain/goma.gni:17 + From //build/toolchain/goma.gni:14 Absolute directory containing the gomacc binary. google_api_key - Current value = "AIzaSyCkfPOPZXDKNn8hhgu3JrA62wIgC93d44k" - From //out/thorium/args.gn:3 + Current value = "" + From //out/test/args.gn:3 Overridden from the default = "" - From //google_apis/BUILD.gn:48 + From //google_apis/BUILD.gn:43 Set these to bake the specified API keys and OAuth client IDs/secrets into your build. @@ -2414,30 +2916,29 @@ google_api_key require server-side APIs may fail to work if no keys are provided. - Note that if you are building an official build or if - use_official_google_api_keys has been set to trie (explicitly or - implicitly), these values will be ignored and the official + Note that if `use_official_google_api_keys` has been set to true + (explicitly or implicitly), these values will be ignored and the official keys will be used instead. google_default_client_id - Current value = "811574891467.apps.googleusercontent.com" - From //out/thorium/args.gn:4 + Current value = "" + From //out/test/args.gn:4 Overridden from the default = "" - From //google_apis/BUILD.gn:51 + From //google_apis/BUILD.gn:46 See google_api_key. google_default_client_secret - Current value = "kdloedMFGdGla2P1zacGjAQh" - From //out/thorium/args.gn:5 + Current value = "" + From //out/test/args.gn:5 Overridden from the default = "" - From //google_apis/BUILD.gn:54 + From //google_apis/BUILD.gn:49 See google_api_key. gtest_enable_absl_printers Current value (from the default) = true - From //build_overrides/build.gni:39 + From //build_overrides/build.gni:54 Allows googletest to pretty-print various absl types. Disabled for nacl due to lack of toolchain support. @@ -2450,7 +2951,7 @@ gtk_version loaded at runtime. has_native_accessibility - Current value (from the default) = false + Current value (from the default) = true From //ui/base/ui_features.gni:18 Whether the platform provides a native accessibility toolkit, in other words @@ -2468,18 +2969,18 @@ has_platform_accessibility_support AccessibilityNodeProvider API) and Fuchsia (uses fidl messaging, kind of like mojo). -have_full_mixer - Current value (from the default) = false - From //chromecast/chromecast.gni:51 +headless_enable_commands + Current value (from the default) = true + From //headless/headless.gni:11 - Set to true if there is a full mixer implementation; if not, we create a - shim mixer service receiver that pushes audio to the CMA backend. + Enable support for --screenshot, --print-to-pdf and --dump-dom commands + Note: this option is not available if |headless_use_embedded_resources|. -headless_fontconfig_utils - Current value (from the default) = false - From //headless/headless.gni:10 +headless_mode_policy_supported + Current value (from the default) = true + From //headless/headless.gni:20 - Provide bindings for font loading for headless embedders. + Platforms where headless mode is supported. headless_use_embedded_resources Current value (from the default) = false @@ -2489,13 +2990,13 @@ headless_use_embedded_resources headless_use_policy Current value (from the default) = true - From //headless/headless.gni:16 + From //headless/headless.gni:17 Use Policy component to manage preferences. headless_use_prefs Current value (from the default) = true - From //headless/headless.gni:13 + From //headless/headless.gni:14 Use Prefs component to access Local State and other preferences. @@ -2524,16 +3025,32 @@ host_toolchain This should not normally be set as a build argument. It's here so that every toolchain can pass through the "global" value via toolchain_args(). +icu_copy_icudata_to_root_build_dir + Current value (from the default) = true + From //third_party/icu/config.gni:32 + + If set, the ":icudata" target will copy the ICU data to $root_build_dir. + icu_disable_thin_archive Current value (from the default) = false - From //third_party/icu/config.gni:17 + From //third_party/icu/config.gni:24 If true, compile icu into a standalone static library. Currently this is only useful on Chrome OS. +icu_fuchsia_extra_compile_flags + Current value (from the default) = [] + From //third_party/icu/config.gni:39 + + Fuchsia sometimes requires extra compilation flags for ICU to adapt it to + its current toolchain. Since it takes a while for ICU to roll through + Fuchsia, it can take a long time from an ICU commit to a fix rolling into + Fuchsia. This flag allows us to define the flag ahead of time in + //build/icu.gni, and remove the rollout issues. + icu_fuchsia_override_data_dir Current value (from the default) = "" - From //third_party/icu/config.gni:22 + From //third_party/icu/config.gni:29 If set to nonempty, this is the label of the directory to be used to pull the ICU data files content. The setting has effect only when building @@ -2541,22 +3058,24 @@ icu_fuchsia_override_data_dir icu_use_data_file Current value (from the default) = true - From //third_party/icu/config.gni:8 + From //third_party/icu/config.gni:15 Tells icu to load an external data file rather than rely on the icudata being linked directly into the binary. icu_use_stub_data Current value (from the default) = true - From //third_party/icu/config.gni:13 + From //third_party/icu/config.gni:20 If true, then this creates a stub data file. This should be disabled if a custom data file will be used instead, in order to avoid conflicting symbols. ignore_missing_widevine_signing_cert - Current value (from the default) = false - From //third_party/widevine/cdm/widevine.gni:81 + Current value = true + From //out/test/args.gn:69 + Overridden from the default = false + From //third_party/widevine/cdm/widevine.gni:78 If set, and Widevine CDM host verification signing failed due to no signing cert, the failure will be ignored. Otherwise the build process will fail. @@ -2577,9 +3096,18 @@ include_ash_ambient_animation_resources May be overridden locally to false for testing purposes if desired. +include_branded_entitlements + Current value (from the default) = true + From //chrome/BUILD.gn:64 + + On macOS, `is_chrome_branded` builds that have been signed locally will not + launch because certain entitlements are tied to the official Google code + signing identity. If `include_branded_entitlements` is set to false, these + entitlements will be skipped. + include_transport_security_state_preload_list Current value (from the default) = true - From //net/features.gni:36 + From //net/features.gni:41 Includes the transport security state preload list. This list includes mechanisms (e.g. HSTS, HPKP) to enforce trusted connections to a significant @@ -2588,15 +3116,16 @@ include_transport_security_state_preload_list willing to take the responsibility to make sure that all important connections use HTTPS. -include_vr_data +incremental_install Current value (from the default) = false - From //device/vr/buildflags/buildflags.gni:30 + From //build/config/android/config.gni:12 - Whether to include VR extras like test APKs in non-VR-specific targets + Build incremental targets whenever possible. + See //build/android/incremental_install/README.md for more details. init_stack_vars Current value (from the default) = true - From //build/config/compiler/BUILD.gn:140 + From //build/config/compiler/BUILD.gn:151 Initialize all local variables with a pattern. This flag will fill uninitialized floating-point types (and 32-bit pointers) with 0xFF and the @@ -2604,8 +3133,17 @@ init_stack_vars recognizable in the debugger, and crashes on memory accesses through uninitialized pointers. - TODO(crbug.com/1131993): Enabling this when 'is_android' is true breaks - content_shell_test_apk on both ARM and x86. + Flag discussion: https://crbug.com/977230 + + TODO(crbug.com/1131993): This regresses binary size by ~1MB on Android and + needs to be evaluated before enabling it there as well. + +init_stack_vars_zero + Current value (from the default) = false + From //build/config/compiler/BUILD.gn:155 + + Zero init has favorable performance/size tradeoffs for Chrome OS + but was not evaluated for other platforms. internal_gles2_conform_tests Current value (from the default) = false @@ -2617,12 +3155,8 @@ internal_khronos_glcts_tests Current value (from the default) = false From //gpu/khronos_glcts_support/BUILD.gn:8 -invert_fieldtrials - Current value (from the default) = false - From //components/variations/field_trial_config/BUILD.gn:8 - ios_deployment_target - Current value (from the default) = "14.0" + Current value (from the default) = "15.0" From //build/config/ios/ios_sdk_overrides.gni:10 Version of iOS that we're targeting. @@ -2635,48 +3169,37 @@ ios_stack_profiler_enabled only supported on iOS 64-bit architecture, but some project build //base for 32-bit architecture. -iot_service_rpath - Current value (from the default) = "" - From //chromecast/chromecast.gni:131 - - Extra rpath to use for standalone services. - -is_android_arc - Current value (from the default) = false - From //chromecast/chromecast.gni:62 - - Set to true for builds targeting ARC. - is_asan Current value (from the default) = false From //build/config/sanitizers/sanitizers.gni:14 Compile for Address Sanitizer to find memory bugs. +is_cast_android + Current value (from the default) = false + From //build/config/cast.gni:32 + + Set this to true to build for Android-based Cast devices. + Set this to false to use the defaults for Android. + is_cast_audio_only Current value (from the default) = false - From //build/config/chromecast_build.gni:26 + From //build/config/cast.gni:12 Set this true for an audio-only Chromecast build. - TODO(crbug.com/1293538): Replace with a buildflag for speaker-only builds not - specific to Cast. - -is_cast_desktop_build - Current value (from the default) = false - From //chromecast/chromecast.gni:20 + TODO(https://crbug.com/1516671): Remove this arg as CastOS builds are no + longer supported. is_castos Current value (from the default) = false - From //build/config/chromecast_build.gni:53 + From //build/config/cast.gni:28 Set this to true to build for Nest hardware running Linux (aka "CastOS"). - Set this to false to use the defaults for the target OS/platform. - - TODO(crbug.com/1314528): Change default to false and require is_linux. + Set this to false to use the defaults for Linux. is_cfi Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:53 + From //build/config/sanitizers/sanitizers.gni:50 Compile with Control Flow Integrity to protect virtual calls and casts. See http://clang.llvm.org/docs/ControlFlowIntegrity.html @@ -2685,14 +3208,10 @@ is_cfi is_cfm Current value (from the default) = false - From //chromeos/components/chromebox_for_meetings/buildflags/buildflags.gni:7 + From //build/config/chromebox_for_meetings/buildflags.gni:7 True if compiling for Chromebox for Meeting devices. -is_chancie_wancie_build - Current value (from the default) = false - From //third_party/ffmpeg/ffmpeg_options.gni:18 - is_chrome_branded Current value (from the default) = false From //build/config/chrome_build.gni:9 @@ -2701,15 +3220,23 @@ is_chrome_branded true means official Google Chrome branding (requires extra Google-internal resources). -is_chromecast +is_chrome_for_testing Current value (from the default) = false - From //build/config/chromecast_build.gni:16 + From //build/config/chrome_build.gni:15 - DEPRECATED. This flag will be removed in the future; see https://crbug.com/1219802. + Whether to enable the Chrome for Testing (CfT) flavor. This arg is not + compatible with `is_chrome_branded`. - New code should use enable_cast_receiver if the feature in question is - required for all Cast-enabled browsers, or an alternative buildflag if it is - for specific types of devices. + Design document: https://goo.gle/chrome-for-testing + +is_chrome_for_testing_branded + Current value (from the default) = false + From //build/config/chrome_build.gni:21 + + Whether to use internal Chrome for Testing (CfT). + Requires `src-internal/` and `is_chrome_for_testing = true`. + + When true, use Google-internal icons, otherwise fall back to Chromium icons. is_chromeos_device Current value (from the default) = false @@ -2732,16 +3259,18 @@ is_chromeos_with_hw_details (see https://crrev.com/c/3123455). is_clang - Current value (from the default) = true + Current value = true + From //out/test/args.gn:29 + Overridden from the default = true From //build/config/BUILDCONFIG.gn:139 Set to true when compiling with the Clang compiler. is_component_build Current value = false - From //out/thorium/args.gn:18 + From //out/test/args.gn:24 Overridden from the default = false - From //build/config/BUILDCONFIG.gn:168 + From //build/config/BUILDCONFIG.gn:173 Component build. Setting to true compiles targets declared as "components" as shared libraries loaded dynamically. This speeds up development time. @@ -2751,10 +3280,10 @@ is_component_build https://chromium.googlesource.com/chromium/src/+/main/docs/component_build.md is_component_ffmpeg - Current value = false - From //out/thorium/args.gn:38 + Current value = true + From //out/test/args.gn:55 Overridden from the default = false - From //third_party/ffmpeg/ffmpeg_options.gni:51 + From //third_party/ffmpeg/ffmpeg_options.gni:39 Set true to build ffmpeg as a shared library. NOTE: this means we should always consult is_component_ffmpeg instead of is_component_build for @@ -2764,24 +3293,35 @@ is_component_ffmpeg is_cronet_build Current value (from the default) = false - From //build/config/ios/config.gni:16 + From //build/config/cronet/config.gni:9 Control whether cronet is built (this is usually set by the script components/cronet/tools/cr_cronet.py as cronet requires specific gn args to build correctly). +is_cronet_for_aosp_build + Current value (from the default) = false + From //build/config/cronet/config.gni:14 + + Controls whether cronet is currently being built for AOSP or Chromium. + This will always be false when building Cronet for Chromium. + the flag exists to accommodate for the divergence between the repos. + is_ct_supported Current value (from the default) = true - From //services/network/public/cpp/features.gni:10 + From //services/network/public/cpp/features.gni:9 Certificate transparency is not supported on iOS. - TODO(mmenke): It's actually not supported on Android, either. + +is_dawn_lpm_fuzzer + Current value (from the default) = false + From //third_party/dawn/src/dawn/fuzzers/dawn_fuzzers.gni:36 is_debug Current value = false - From //out/thorium/args.gn:10 + From //out/test/args.gn:13 Overridden from the default = false - From //build/config/BUILDCONFIG.gn:158 + From //build/config/BUILDCONFIG.gn:163 Debug build. Enabling official builds automatically sets is_debug to false. @@ -2789,6 +3329,22 @@ is_ggp Current value (from the default) = false From //third_party/angle/gni/angle.gni:8 +is_high_end_android + Current value (from the default) = false + From //build/config/chrome_build.gni:27 + + Set to true to enable settings for high end Android devices, typically + enhancing speed at the expense of resources such as binary sizes and memory. + Non-official builds should ignore this argument so that arm64 builders + remain fast and independent from PGO without having to set the value to false. + +is_high_end_android_secondary_toolchain + Current value (from the default) = false + From //build/config/chrome_build.gni:44 + + Whether to apply size->speed trade-offs to the secondary toolchain. + Relevant only for 64-bit target_cpu. + is_hwasan Current value (from the default) = false From //build/config/sanitizers/sanitizers.gni:19 @@ -2797,13 +3353,12 @@ is_hwasan (android/arm64 only). See http://clang.llvm.org/docs/HardwareAssistedAddressSanitizerDesign.html -is_internal_chrome_cleaner_build +is_java_debug Current value (from the default) = false - From //chrome/chrome_cleaner/chrome_cleaner_args.gni:9 + From //build/config/android/config.gni:18 - If this is true, the build will look for extra Google-internal resources. - This should only be set on the Chrome Cleaner builders, not general - chromium builders, since it can cause tests to take longer. + Java debug on Android. Having this on enables multidexing, and turning it + off will enable proguard. is_lsan Current value (from the default) = false @@ -2831,7 +3386,7 @@ is_nacl_saigo is_official_build Current value = true - From //out/thorium/args.gn:9 + From //out/test/args.gn:12 Overridden from the default = false From //build/config/BUILDCONFIG.gn:136 @@ -2846,20 +3401,16 @@ is_official_build which can halve overall performance, and do increase memory usage. Always set "is_official_build" to true for any build intended to ship to end-users. -is_official_chrome_cleaner_build - Current value (from the default) = false - From //chrome/chrome_cleaner/chrome_cleaner_args.gni:13 - - If this is true, builds an official release of the Chrome Cleanup Tool - (requires is_internal_chrome_cleaner_build=true). - is_on_release_branch Current value (from the default) = false - From //v8/gni/release_branch_toggle.gni:6 + From //v8/gni/release_branch_toggle.gni:8 + + TODO(liviurau): Remove old name after Chromium config update + https://crbug.com/1476977. is_p2p_enabled Current value (from the default) = true - From //services/network/public/cpp/features.gni:16 + From //services/network/public/cpp/features.gni:15 Controls whether P2P is exposed by the network service. Optional to reduce avoid having Chrome on iOS depends on @@ -2887,12 +3438,13 @@ is_reven Refers to the separate branding required for the reven build. -is_single_volume +is_robolectric Current value (from the default) = false - From //chromecast/chromecast.gni:66 + From //build/config/BUILDCONFIG.gn:156 - Set true if the platform works as a single volume device, mapping all - volume streams to a single one. + Do not set this directly. + It should be set only by //build/toolchains/android:robolectric_x64. + True when compiling native code for use with robolectric_binary(). is_skylab Current value (from the default) = false @@ -2919,22 +3471,16 @@ is_ubsan_no_recover Halt the program if a problem is detected. -is_ubsan_null - Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:38 - - Compile for Undefined Behaviour Sanitizer's null pointer checks. - is_ubsan_security Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:82 + From //build/config/sanitizers/sanitizers.gni:83 Enables core ubsan security features. Will later be removed once it matches is_ubsan. is_ubsan_vptr Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:118 + From //build/config/sanitizers/sanitizers.gni:125 Compile for Undefined Behaviour Sanitizer's vptr checks. @@ -2948,17 +3494,22 @@ is_unsafe_developer_build is_win_arm64 Current value (from the default) = false - From //third_party/angle/gni/angle.gni:120 + From //third_party/angle/gni/angle.gni:154 Currently Windows on Arm doesn't support OpenGL or Vulkan. -jsoncpp_no_deprecated_declarations - Current value (from the default) = true - From //third_party/jsoncpp/BUILD.gn:11 +jinja_dir + Current value (from the default) = "//third_party" + From //v8/third_party/inspector_protocol/inspector_protocol.gni:7 - Allow individual projects to remove the warning suppression - by overriding this in their .gn file or through custom args.gn - See crbug.com/983223 + Where jinja2 is located, in chromium it is //third_party. + +lacros_use_chromium_toolchain + Current value (from the default) = false + From //build/toolchain/cros/cros_config.gni:8 + + If set, build lacros with Chromium's toolchain instead of with Chrome OS's. + TODO(thakis): Set this to `= chromeos_is_browser_only` once that works. ldso_path Current value (from the default) = "" @@ -2966,7 +3517,7 @@ ldso_path libcxx_is_shared Current value (from the default) = false - From //build/config/c++/c++.gni:55 + From //build/config/c++/c++.gni:54 WARNING: Setting this to a non-default value is highly discouraged. If true, libc++ will be built as a shared library; otherwise libc++ will be @@ -2977,14 +3528,14 @@ libcxx_is_shared libcxx_natvis_include Current value (from the default) = true - From //build/config/c++/c++.gni:30 + From //build/config/c++/c++.gni:29 Builds libcxx Natvis into the symbols for type visualization. Set to false to workaround http://crbug.com/966676 and http://crbug.com/966687. libcxx_revision - Current value (from the default) = "79a2e924d96e2fc1e4b937c42efd08898fa472d7" + Current value (from the default) = "28aa23ffb4c7344914a5b4ac7169f12e5a12333f" From //buildtools/deps_revisions.gni:8 Used to cause full rebuilds on libc++ rolls. This should be kept in sync @@ -2994,13 +3545,17 @@ libyuv_disable_jpeg Current value (from the default) = false From //third_party/libyuv/libyuv.gni:15 +libyuv_disable_rvv + Current value (from the default) = false + From //third_party/libyuv/libyuv.gni:16 + libyuv_include_tests Current value (from the default) = false From //third_party/libyuv/libyuv.gni:14 libyuv_symbols_visible Current value (from the default) = false - From //third_party/libyuv/BUILD.gn:19 + From //third_party/libyuv/BUILD.gn:20 When building a shared library using a target in WebRTC or Chromium projects that depends on libyuv, setting this flag @@ -3008,25 +3563,25 @@ libyuv_symbols_visible libyuv_use_absl_flags Current value (from the default) = true - From //third_party/libyuv/BUILD.gn:14 + From //third_party/libyuv/BUILD.gn:15 Set to false to disable building with absl flags. libyuv_use_mmi Current value (from the default) = false - From //third_party/libyuv/libyuv.gni:22 + From //third_party/libyuv/libyuv.gni:23 libyuv_use_msa Current value (from the default) = false - From //third_party/libyuv/libyuv.gni:20 + From //third_party/libyuv/libyuv.gni:21 libyuv_use_neon Current value (from the default) = false - From //third_party/libyuv/libyuv.gni:17 + From //third_party/libyuv/libyuv.gni:18 limit_android_deps Current value (from the default) = false - From //build_overrides/build.gni:35 + From //build_overrides/build.gni:50 Limits the defined //third_party/android_deps targets to only "buildCompile" and "buildCompileNoDeps" targets. This is useful for third-party @@ -3036,12 +3591,28 @@ limit_android_deps link_pulseaudio Current value (from the default) = false - From //media/media_options.gni:19 + From //media/media_options.gni:42 Allows distributions to link pulseaudio directly (DT_NEEDED) instead of using dlopen. This helps with automated detection of ABI mismatches and prevents silent errors. +lld_emit_indexes_and_imports + Current value (from the default) = false + From //build/config/clang/clang.gni:37 + + Set to true to enable output of ThinLTO index and import files used for + creating a Chromium MLGO corpus in the ThinLTO case. + +llvm_android_mainline + Current value (from the default) = false + From //build/toolchain/toolchain.gni:24 + + Cronet is shipped in AOSP, where it is built using the Android Mainline + Clang. Please refer to go/cronet-builders-with-mainline-clang-design for + more information. + If this arg is set to true, we use the Android Mainline LLVM. + llvm_force_head_revision Current value (from the default) = false From //build/toolchain/toolchain.gni:18 @@ -3056,28 +3627,18 @@ mac_sdk_min Current value (from the default) = "10.15" From //build/config/mac/mac_sdk_overrides.gni:12 -make_partition_alloc_standalone - Current value (from the default) = false - From //base/allocator/partition_allocator/partition_alloc.gni:6 - mbi_mode Current value (from the default) = true - From //content/common/features.gni:17 + From //content/common/features.gni:20 Whether or not MBI mode (Multiple Blink Isolates) should be enabled, depending on the build argument. -media_clock_monotonic_raw - Current value (from the default) = true - From //chromecast/chromecast.gni:86 - - unified flag to pick monotonic_clock OR monotonic_clock_raw - media_use_ffmpeg Current value = true - From //out/thorium/args.gn:28 + From //out/test/args.gn:43 Overridden from the default = true - From //media/media_options.gni:24 + From //media/media_options.gni:47 Enable usage of FFmpeg within the media library. Used for most software based decoding, demuxing, and sometimes optimized FFTs. If disabled, @@ -3085,36 +3646,33 @@ media_use_ffmpeg media_use_libvpx Current value = true - From //out/thorium/args.gn:29 + From //out/test/args.gn:44 Overridden from the default = true - From //media/media_options.gni:28 + From //media/media_options.gni:51 Enable usage of libvpx within the media library. Used for software based decoding of VP9 and VP8A type content. media_use_openh264 Current value (from the default) = true - From //media/media_options.gni:38 + From //media/media_options.gni:61 Enable usage of OpenH264 within the media library. Used for software based encoding of H264 content. +mediapipe_build_with_gpu_support + Current value (from the default) = false + From //third_party/mediapipe/BUILD.gn:12 + mips_use_mmi Current value (from the default) = false From //build/config/mips.gni:13 MIPS MultiMedia Instruction compilation flag. -mixer_in_cast_shell - Current value (from the default) = true - From //chromecast/chromecast.gni:55 - - If true, the mixer will be instantiated inside cast_shell. When false, the - mixer is expected to be running in another process. - mojo_media_host Current value (from the default) = "gpu" - From //media/media_options.gni:247 + From //media/media_options.gni:326 The process that the mojo MediaService runs in. By default, all services registered in |mojo_media_services| are hosted in the MediaService, with the @@ -3128,8 +3686,8 @@ mojo_media_host - "": Do not use mojo media service. mojo_media_services - Current value (from the default) = ["video_decoder", "cdm"] - From //media/media_options.gni:235 + Current value (from the default) = ["audio_decoder", "audio_encoder", "video_decoder", "cdm"] + From //media/media_options.gni:314 A list of mojo media services that should be used in the media pipeline. Valid entries in the list are: @@ -3140,28 +3698,32 @@ mojo_media_services - "video_decoder": Use mojo-based video decoder in the default media Renderer. Cannot be used with the mojo Renderer above. +mojo_use_apple_channel + Current value (from the default) = false + From //mojo/features.gni:8 + mojom_message_id_salt_path Current value (from the default) = "//chrome/VERSION" - From //mojo/public/tools/bindings/mojom.gni:116 + From //mojo/public/tools/bindings/mojom.gni:136 The path to a file whose contents can be used as the basis for a message ID scrambling salt. monolithic_binaries - Current value (from the default) = false + Current value (from the default) = true From //third_party/perfetto/gn/perfetto.gni:214 Only for local development. When true the binaries (perfetto, traced, ...) are monolithic and don't use a common shared library. This is mainly to avoid LD_LIBRARY_PATH dances when testing locally. On Windows we default to monolithic executables, because pairing - dllexport/import adds extra complexity for little benefit. Te only reason + dllexport/import adds extra complexity for little benefit. The only reason for monolithic_binaries=false is saving binary size, which matters mainly on Android. See also comments on PERFETTO_EXPORT_ENTRYPOINT in compiler.h. msan_track_origins Current value (from the default) = 2 - From //build/config/sanitizers/sanitizers.gni:43 + From //build/config/sanitizers/sanitizers.gni:40 Track where uninitialized memory originates from. From fastest to slowest: 0 - no tracking, 1 - track only the initial allocation site, 2 - track the @@ -3169,34 +3731,33 @@ msan_track_origins msvc_use_sse2 Current value (from the default) = true - From //third_party/pdfium/pdfium.gni:69 + From //third_party/pdfium/pdfium.gni:84 Enable SSE2 for MSVC builds. Ignored if it's not a MSVC build. ndk_api_level_at_least_26 Current value (from the default) = false - From //third_party/angle/gni/angle.gni:99 - -needs_gomacc_path_arg - Current value (from the default) = false - From //build/toolchain/goma.gni:14 - - This flag is for ChromeOS compiler wrapper. - By passing gomacc path via cmd-line arg, ChromeOS' compiler wrapper - invokes gomacc inside it. + From //third_party/angle/gni/angle.gni:132 optimize_for_fuzzing Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:90 + From //build/config/compiler/BUILD.gn:92 Optimize for coverage guided fuzzing (balance between speed and number of - branches). Can be also used to remove non-determinism and other issues. + branches) + +optimize_for_size + Current value (from the default) = false + From //build/config/compiler/compiler.gni:42 + + If true, optimize for size. + Default to favoring speed over size for platforms not listed below. optimize_webui Current value = true - From //out/thorium/args.gn:20 + From //out/test/args.gn:27 Overridden from the default = true - From //ui/webui/webui_features.gni:11 + From //ui/webui/webui_features.gni:12 Optimize parts of Chrome's UI written with web technologies (HTML/CSS/JS) for runtime performance purposes. This does more work at compile time for @@ -3206,75 +3767,92 @@ optional_trace_events_enabled Current value (from the default) = true From //base/trace_event/tracing.gni:20 +os_level_geolocation_permission_supported + Current value (from the default) = false + From //services/device/public/cpp/geolocation/buildflags.gni:11 + + Specifies if we support the OS level global geolocation permission for the current platform. + This is exposed with the macro OS_LEVEL_GEOLOCATION_PERMISSION_SUPPORTED. + ozone_auto_platforms - Current value (from the default) = true - From //build/config/ozone.gni:22 + Current value (from the default) = false + From //build/config/ozone.gni:21 Select platforms automatically. Turn this off for manual control. ozone_extra_path Current value (from the default) = "//build/config/ozone_extra.gni" - From //build/config/ozone.gni:19 + From //build/config/ozone.gni:18 Ozone extra platforms file path. Can be overridden to build out of tree ozone platforms. ozone_platform - Current value (from the default) = "x11" - From //build/config/ozone.gni:95 + Current value (from the default) = "" + From //build/config/ozone.gni:40 + + The platform that will used at runtime by default. This can be overridden + with the command line flag --ozone-platform=. ozone_platform_cast Current value (from the default) = false - From //build/config/ozone.gni:44 + From //build/config/ozone.gni:43 Compile the 'cast' platform. ozone_platform_drm Current value (from the default) = false - From //build/config/ozone.gni:47 + From //build/config/ozone.gni:46 Compile the 'drm' platform. ozone_platform_flatland Current value (from the default) = false - From //build/config/ozone.gni:56 + From //build/config/ozone.gni:52 Compile the 'flatland' platform. ozone_platform_gbm Current value (from the default) = -1 - From //build/config/ozone.gni:26 + From //build/config/ozone.gni:25 TODO(petermcneeley): Backwards compatiblity support for VM images. Remove when deprecated. (https://crbug.com/1122009) ozone_platform_headless - Current value (from the default) = true - From //build/config/ozone.gni:70 - -ozone_platform_scenic Current value (from the default) = false - From //build/config/ozone.gni:53 + From //build/config/ozone.gni:49 - Compile the 'scenic' platform. + Compile the 'headless' platform. ozone_platform_wayland - Current value (from the default) = true - From //build/config/ozone.gni:96 - -ozone_platform_windows Current value (from the default) = false - From //build/config/ozone.gni:65 + From //build/config/ozone.gni:58 - Compile the 'windows' platform. + Compile the 'wayland' platform. ozone_platform_x11 + Current value (from the default) = false + From //build/config/ozone.gni:55 + + Compile the 'x11' platform. + +partition_alloc_optimized_debug Current value (from the default) = true - From //build/config/ozone.gni:97 + From //base/allocator/partition_allocator/partition_alloc.gni:81 + + Turns on compiler optimizations in PartitionAlloc in Debug build. + If enabling PartitionAlloc-Everywhere in Debug build for tests in Debug + build, since all memory allocations and deallocations are executed by + non-optimized PartitionAlloc, chrome (including tests) will be much + slower. This will cause debug trybots' timeouts. If we want to debug + PartitionAlloc itself, use partition_alloc_optimized_debug=false. + Otherwise, use partition_alloc_optimized_debug=true to enable optimized + PartitionAlloc. pdf_bundle_freetype Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:16 + From //third_party/pdfium/pdfium.gni:17 Build PDFium either: 1) When set to true, with a bundled FreeType, built from FreeType source @@ -3285,71 +3863,85 @@ pdf_bundle_freetype pdf_enable_click_logging Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:19 + From //third_party/pdfium/pdfium.gni:20 Generate logging messages for click events that reach PDFium +pdf_enable_fontations + Current value (from the default) = false + From //third_party/pdfium/pdfium.gni:56 + + Build PDFium with experimental Fontations library support. + If enabled, coexists in build with FreeType library and the default font + library is selectable at runtime. + Note that Fontations requires Skia and Rust support. + pdf_enable_v8 Current value (from the default) = true - From //third_party/pdfium/pdfium.gni:22 + From //third_party/pdfium/pdfium.gni:23 Build PDFium either with or without v8 support. pdf_enable_xfa Current value (from the default) = true - From //third_party/pdfium/pdfium.gni:25 + From //third_party/pdfium/pdfium.gni:26 Build PDFium either with or without XFA Forms support. pdf_enable_xfa_bmp Current value (from the default) = true - From //third_party/pdfium/pdfium.gni:28 + From //third_party/pdfium/pdfium.gni:29 If XFA, also support bmp codec. Ignored if not XFA. pdf_enable_xfa_gif Current value (from the default) = true - From //third_party/pdfium/pdfium.gni:31 + From //third_party/pdfium/pdfium.gni:32 If XFA, also support gif codec. Ignored if not XFA. pdf_enable_xfa_png Current value (from the default) = true - From //third_party/pdfium/pdfium.gni:34 + From //third_party/pdfium/pdfium.gni:35 If XFA, also support png codec. Ignored if not XFA. pdf_enable_xfa_tiff Current value (from the default) = true - From //third_party/pdfium/pdfium.gni:37 + From //third_party/pdfium/pdfium.gni:38 If XFA, also support tiff codec. Ignored if not XFA. pdf_is_complete_lib Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:51 + From //third_party/pdfium/pdfium.gni:63 Build a complete static library pdf_is_standalone Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:48 + From //third_party/pdfium/pdfium.gni:60 - Build PDFium standalone + Build PDFium standalone. Now only controls whether the test binaries + are built. Most logic is conditioned by build_with_chromium. -pdf_use_skia - Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:41 - - Build PDFium against Skia (experimental) rather than AGG. Use Skia to draw - everything. - -pdf_use_skia_paths - Current value (from the default) = false +pdf_use_partition_alloc + Current value (from the default) = true From //third_party/pdfium/pdfium.gni:45 - Build PDFium against Skia (experimental) rather than AGG. Use Skia to draw - paths. + Build PDFium against PartitionAlloc. When false, PDFium must build without + requiring any PartitionAlloc headers or code to be present. When true, + PDFium will use PartitionAlloc partitions to separate strings, scalars, + etc. from other allocations. However, the use of PartitionAlloc for new or + malloc is controlled by args in build_overrides/partition_alloc.gni. + +pdf_use_skia + Current value (from the default) = true + From //third_party/pdfium/pdfium.gni:50 + + Build PDFium to use Skia (experimental) for all PDFium graphics. + If enabled, coexists in build with AGG graphics and the default + renderer is selectable at runtime. perfetto_build_with_android Current value (from the default) = false @@ -3362,7 +3954,7 @@ perfetto_build_with_android perfetto_enable_git_rev_version_header Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:247 + From //third_party/perfetto/gn/perfetto.gni:257 perfetto_force_dcheck Current value (from the default) = "" @@ -3385,26 +3977,43 @@ perfetto_force_dlog none ("off"). We disable it by default for embedders to avoid spamming their console. +perfetto_use_pkgconfig + Current value (from the default) = false + From //third_party/perfetto/gn/perfetto.gni:349 + + Used by CrOS builds. Uses pkg-config to determine the appropriate flags + for including and linking system libraries. + set `host_pkg_config` to the `BUILD_PKG_CONFIG` and + set `pkg_config` to the target `PKG_CONFIG`. + Note: that if this is enabled `perfetto_use_system_protobuf` should be also. + perfetto_use_system_protobuf Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:316 + From //third_party/perfetto/gn/perfetto.gni:353 Used by CrOS system builds. Uses the system version of protobuf from /usr/include instead of the hermetic one. +perfetto_use_system_sqlite + Current value (from the default) = false + From //third_party/perfetto/gn/perfetto.gni:357 + + Used by CrOS system builds. Uses the system version of sqlite + from /usr/include instead of the hermetic one. + perfetto_use_system_zlib Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:318 + From //third_party/perfetto/gn/perfetto.gni:359 perfetto_verbose_logs_enabled Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:261 + From //third_party/perfetto/gn/perfetto.gni:275 pgo_data_path - Current value = "/media/alex/linuz/home/alex/chromium/src/chrome/build/pgo_profiles/chrome-win64-main-1653123517-84b6a91c74c02edc7650c1735aac3607369bdd63.profdata" - From //out/thorium/args.gn:61 + Current value = "/home/alex/chromium/src/chrome/build/pgo_profiles/chrome-win64-6099-1701798922-1901ad50dc3881935b2a9a04bae806418f254376.profdata" + From //out/test/args.gn:94 Overridden from the default = "" - From //build/config/compiler/pgo/pgo.gni:24 + From //build/config/compiler/pgo/pgo.gni:35 When using chrome_pgo_phase = 2, read profile data from this path. @@ -3418,6 +4027,14 @@ pkg_config Leaving it blank defaults to searching PATH for 'pkg-config' and relying on the sysroot mechanism to find the right .pc files. +platform_has_optional_hevc_support + Current value (from the default) = true + From //media/media_options.gni:150 + +plus_addresses_use_internal_android_resources + Current value (from the default) = false + From //components/plus_addresses/buildflags.gni:11 + print_unsymbolized_stack_traces Current value (from the default) = false From //base/third_party/symbolize/BUILD.gn:13 @@ -3428,59 +4045,92 @@ print_unsymbolized_stack_traces and also enabling symbol_level = 2, you can get much more detailed stack traces with file names and line numbers, even in non-ASAN builds. +produce_v8_compile_hints + Current value (from the default) = true + From //third_party/blink/renderer/bindings/bindings.gni:7 + + Enable V8 to produce hints regarding which functions to compile eagerly. + proprietary_codecs Current value = true - From //out/thorium/args.gn:35 + From //out/test/args.gn:50 Overridden from the default = false - From //build/config/features.gni:26 + From //build/config/features.gni:31 Enables proprietary codecs and demuxers; e.g. H264, AAC, MP3, and MP4. We always build Google Chrome and Chromecast with proprietary codecs. Note: this flag is used by WebRTC which is DEPSed into Chrome. Moving it out of //build will require using the build_overrides directory. + + Do not add any other conditions to the following line. + + TODO(crbug.com/1314528): Remove chromecast-related conditions and force + builds to explicitly specify this. -put_ref_count_in_previous_slot +raw_ptr_zero_on_construct + Current value (from the default) = true + From //base/allocator/partition_allocator/partition_alloc.gni:375 + +raw_ptr_zero_on_destruct Current value (from the default) = false - From //base/allocator/allocator.gni:106 + From //base/allocator/partition_allocator/partition_alloc.gni:377 - If BRP is enabled, additional options are available: - - put_ref_count_in_previous_slot: place the ref-count at the end of the - previous slot (or in metadata if a slot starts on the page boundary), as - opposed to the beginning of the slot. - - enable_backup_ref_ptr_slow_checks: enable additional safety checks that - are too expensive to have on by default. - - enable_dangling_raw_ptr_checks: enable checking raw_ptr do not become - dangling during their lifetime. +raw_ptr_zero_on_move + Current value (from the default) = true + From //base/allocator/partition_allocator/partition_alloc.gni:376 + +rbe_bin_dir + Current value (from the default) = "../../buildtools/reclient" + From //build/toolchain/rbe.gni:5 + + The directory where the re-client tooling binaries are. rbe_cc_cfg_file - Current value (from the default) = "" - From //build/toolchain/rbe.gni:23 - - Set to the path of the RBE reclient configuration file. + Current value (from the default) = "../../buildtools/reclient_cfgs/chromium-browser-clang/rewrapper_linux.cfg" + From //build/toolchain/rbe.gni:29 rbe_cfg_dir - Current value (from the default) = "../../buildtools/reclient_cfgs" + Current value (from the default) = "//buildtools/reclient_cfgs" From //build/toolchain/rbe.gni:20 The directory where the re-client configuration files are. rbe_cros_cc_wrapper Current value (from the default) = "../../buildtools/reclient/rewrapper" - From //build/toolchain/rbe.gni:26 + From //build/toolchain/rbe.gni:52 Set to the path of the RBE recleint wrapper for ChromeOS. +rbe_exec_root + Current value (from the default) = "/home/alex/chromium/src/" + From //build/toolchain/rbe.gni:11 + + Execution root - this should be the root of the source tree. + This is defined here instead of in the config file because + this will vary depending on where the user has placed the + chromium source on their system. + +rbe_link_cfg_file + Current value (from the default) = "../../buildtools/reclient_cfgs/chromium-browser-clang/rewrapper_linux_link.cfg" + From //build/toolchain/rbe.gni:31 + +rbe_py_cfg_file + Current value (from the default) = "../../buildtools/reclient_cfgs/python/rewrapper_linux.cfg" + From //build/toolchain/rbe.gni:28 + regenerate_x11_protos Current value (from the default) = false From //ui/gfx/x/BUILD.gn:12 -remoting_use_wayland +remoting_internal Current value (from the default) = false - From //remoting/build/config/remoting_features.gni:8 + From //remoting/build/config/remoting_build.gni:28 - Determines whether or not remoting should use wayland implementation - to talk to remote host. + You can set the variable 'remoting_internal' to true to include Google- + internal sources and implementations in a developer build. Setting this + variable explicitly to true will cause your build to fail if the + //remoting/internal directory is not present in your checkout. remoting_webrtc_verbose_logging Current value (from the default) = false @@ -3502,18 +4152,20 @@ remoting_wix_path removed_rust_stdlib_libs Current value (from the default) = [] - From //build/config/rust.gni:48 + From //build/config/rust.gni:86 Any removed std rlibs in your Rust toolchain, relative to the standard - Rust toolchain. Typically used with 'use_unverified_rust_toolchain' = true + Rust toolchain. Typically used with 'rust_sysroot_absolute' -reporter_branding_path - Current value (from the default) = "//chrome/chrome_cleaner/constants/REPORTER_BRANDING" - From //chrome/chrome_cleaner/constants/args.gni:6 +restricted_traces_outside_of_apk + Current value (from the default) = false + From //third_party/angle/gni/angle.gni:43 + + Only bundle traces in the APK if we're building a subset root_extra_deps Current value (from the default) = [] - From //BUILD.gn:54 + From //BUILD.gn:64 A list of extra dependencies to add to the root target. This allows a checkout to add additional targets without explicitly changing any checked- @@ -3521,7 +4173,7 @@ root_extra_deps rtc_audio_device_plays_sinus_tone Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:191 + From //third_party/webrtc/webrtc.gni:206 When set to true, replace the audio output with a sinus tone at 440Hz. The ADM will ask for audio data from WebRTC but instead of reading real @@ -3530,90 +4182,104 @@ rtc_audio_device_plays_sinus_tone rtc_build_dcsctp Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:307 + From //third_party/webrtc/webrtc.gni:340 Enable the dcsctp backend for DataChannels and related unittests rtc_build_examples Current value = false - From //out/thorium/args.gn:49 + From //out/test/args.gn:76 Overridden from the default = true - From //third_party/webrtc/webrtc.gni:126 + From //third_party/webrtc/webrtc.gni:138 Set this to false to skip building examples. rtc_build_json Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:247 + From //third_party/webrtc/webrtc.gni:280 Disable these to not build components which can be externally provided. rtc_build_libevent - Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:261 + Current value (from the default) = false + From //third_party/webrtc/webrtc.gni:291 rtc_build_libsrtp Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:248 + From //third_party/webrtc/webrtc.gni:281 rtc_build_libvpx Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:249 + From //third_party/webrtc/webrtc.gni:282 rtc_build_opus Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:251 + From //third_party/webrtc/webrtc.gni:284 rtc_build_ssl Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:252 + From //third_party/webrtc/webrtc.gni:285 rtc_build_tools Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:129 + From //third_party/webrtc/webrtc.gni:141 Set this to false to skip building tools. rtc_build_with_neon Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:165 + From //third_party/webrtc/webrtc.gni:177 rtc_builtin_ssl_root_certificates Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:88 + From //third_party/webrtc/webrtc.gni:100 Setting this to false will require the API user to pass in their own SSLCertificateVerifier to verify the certificates presented from a TLS-TURN server. In return disabling this saves around 100kb in the binary. +rtc_common_public_deps + Current value = ["//base"] + From //.gn:46 + Overridden from the default = [] + From //third_party/webrtc/webrtc.gni:262 + + Embedders can define dependencies needed by WebRTC. Dependencies can be + configs or targets. This can be defined in their `.gn` file. + + In practise, this is use by Chromium: Targets from + `//third_party/webrtc_overrides` are depending on Chrome's `//base`, but + WebRTC does not declare its public dependencies. See webrtc:8603. Instead + WebRTC is using a global common dependencies. + rtc_disable_check_msg Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:295 + From //third_party/webrtc/webrtc.gni:328 Set this to true to disable detailed error message and logging for RTC_CHECKs. rtc_disable_logging Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:288 + From //third_party/webrtc/webrtc.gni:321 Set this to true to fully remove logging from WebRTC. rtc_disable_metrics Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:298 + From //third_party/webrtc/webrtc.gni:331 Set this to true to disable webrtc metrics. rtc_disable_trace_events Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:291 + From //third_party/webrtc/webrtc.gni:324 Set this to true to disable trace events. rtc_dlog_always_on Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:51 + From //third_party/webrtc/webrtc.gni:59 Setting this to true, will make RTC_DLOG() expand to log statements instead of being removed by the preprocessor. @@ -3621,41 +4287,50 @@ rtc_dlog_always_on rtc_enable_android_aaudio Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:148 + From //third_party/webrtc/webrtc.gni:160 Experimental: enable use of Android AAudio which requires Android SDK 26 or above and NDK r16 or above. rtc_enable_avx2 - Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:274 + Current value = true + From //out/test/args.gn:77 + Overridden from the default = true + From //third_party/webrtc/webrtc.gni:307 rtc_enable_bwe_test_logging Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:123 + From //third_party/webrtc/webrtc.gni:135 Set this to true to enable BWE test logging. rtc_enable_external_auth Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:113 + From //third_party/webrtc/webrtc.gni:125 Enable when an external authentication mechanism is used for performing packet authentication for RTP packets instead of libsrtp. -rtc_enable_grpc +rtc_enable_google_benchmarks Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:310 + From //third_party/webrtc/webrtc.gni:63 + + Enables additional build targets that rely on + //third_party/google_benchmarks. + +rtc_enable_grpc + Current value (from the default) = false + From //third_party/webrtc/webrtc.gni:343 Enable gRPC used for negotiation in multiprocess tests rtc_enable_libevent - Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:260 + Current value (from the default) = false + From //third_party/webrtc/webrtc.gni:290 rtc_enable_objc_symbol_export Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:58 + From //third_party/webrtc/webrtc.gni:70 Setting this to true will make RTC_OBJC_EXPORT expand to code that will manage symbols visibility. By default, Obj-C/Obj-C++ symbols are exported @@ -3665,26 +4340,26 @@ rtc_enable_objc_symbol_export rtc_enable_protobuf Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:241 + From //third_party/webrtc/webrtc.gni:274 Enables the use of protocol buffers for debug recordings. rtc_enable_sctp Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:244 + From //third_party/webrtc/webrtc.gni:277 Set this to disable building with support for SCTP data channels. rtc_enable_symbol_export Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:44 + From //third_party/webrtc/webrtc.gni:48 Setting this to true will make RTC_EXPORT (see rtc_base/system/rtc_export.h) expand to code that will manage symbols visibility. rtc_enable_win_wgc - Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:226 + Current value (from the default) = true + From //third_party/webrtc/webrtc.gni:234 When set to true, a capturer implementation that uses the Windows.Graphics.Capture APIs will be available for use. This introduces a @@ -3692,13 +4367,13 @@ rtc_enable_win_wgc rtc_exclude_audio_processing_module Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:120 + From //third_party/webrtc/webrtc.gni:132 Selects whether the audio processing module should be excluded. rtc_exclude_field_trial_default Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:68 + From //third_party/webrtc/webrtc.gni:80 When WebRTC is built as part of Chromium it should exclude the default implementation of field_trial unless it is building for NACL or @@ -3706,7 +4381,7 @@ rtc_exclude_field_trial_default rtc_exclude_metrics_default Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:77 + From //third_party/webrtc/webrtc.gni:89 Setting this to true will define WEBRTC_EXCLUDE_METRICS_DEFAULT which will tell the pre-processor to remove the default definition of symbols @@ -3715,7 +4390,7 @@ rtc_exclude_metrics_default rtc_exclude_system_time Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:83 + From //third_party/webrtc/webrtc.gni:95 Setting this to true will define WEBRTC_EXCLUDE_SYSTEM_TIME which will tell the pre-processor to remove the default definition of the @@ -3724,112 +4399,120 @@ rtc_exclude_system_time rtc_exclude_transient_suppressor Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:302 + From //third_party/webrtc/webrtc.gni:335 Set this to true to exclude the transient suppressor in the audio processing module from the build. rtc_include_builtin_audio_codecs Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:207 + From //third_party/webrtc/webrtc.gni:221 When set to false, builtin audio encoder/decoder factories and all the audio codecs they depend on will not be included in libwebrtc.{a|lib} (they will still be included in libjingle_peerconnection_so.so and WebRTC.framework) -rtc_include_builtin_video_codecs - Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:213 - - When set to false, builtin video encoder/decoder factories and all the - video codecs they depends on will not be included in libwebrtc.{a|lib} - (they will still be included in libjingle_peerconnection_so.so and - WebRTC.framework) - rtc_include_dav1d_in_internal_decoder_factory Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:229 + From //third_party/webrtc/webrtc.gni:237 Includes the dav1d decoder in the internal decoder factory when set to true. rtc_include_ilbc Current value = true - From //out/thorium/args.gn:48 + From //out/test/args.gn:74 Overridden from the default = true - From //third_party/webrtc/webrtc.gni:91 + From //third_party/webrtc/webrtc.gni:103 Include the iLBC audio codec? rtc_include_internal_audio_device Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:269 + From //third_party/webrtc/webrtc.gni:302 Chromium uses its own IO handling, so the internal ADM is only built for standalone WebRTC. rtc_include_opus Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:94 + From //third_party/webrtc/webrtc.gni:106 Disable this to avoid building the Opus audio codec. rtc_include_pulse_audio Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:265 + From //third_party/webrtc/webrtc.gni:298 Excluded in Chromium since its prerequisites don't require Pulse Audio. rtc_include_tests Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:281 + From //third_party/webrtc/webrtc.gni:314 Set this to true to build the unit tests. Disabled when building with Chromium or Mozilla. -rtc_ios_macos_use_opengl_rendering - Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:201 +rtc_ios_use_opengl_rendering + Current value (from the default) = false + From //third_party/webrtc/webrtc.gni:215 + + Determines whether OpenGL is available on iOS. + +rtc_jni_generator_legacy_symbols + Current value (from the default) = false + From //third_party/webrtc/webrtc.gni:54 + + If set to true, C++ code will refer to the new JNI Generator symbols. + If set to false the old ones will be used (to provide a nice update path). rtc_jsoncpp_root Current value (from the default) = "//third_party/jsoncpp/source/include" - From //third_party/webrtc/webrtc.gni:105 + From //third_party/webrtc/webrtc.gni:117 Used to specify an external Jsoncpp include path when not compiling the library that comes with WebRTC (i.e. rtc_build_json == 0). rtc_libvpx_build_vp9 Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:250 + From //third_party/webrtc/webrtc.gni:283 rtc_link_pipewire Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:141 + From //third_party/webrtc/webrtc.gni:153 Set this to link PipeWire and required libraries directly instead of using the dlopen. +rtc_objc_prefix + Current value (from the default) = "" + From //third_party/webrtc/webrtc.gni:253 + + If different from "", symbols exported with RTC_OBJC_EXPORT will be prefixed + with this string. + See the definition of RTC_OBJC_TYPE_PREFIX in the code. + rtc_opus_support_120ms_ptime Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:98 + From //third_party/webrtc/webrtc.gni:110 Enable this if the Opus version upon which WebRTC is built supports direct encoding of 120 ms packets. rtc_opus_variable_complexity Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:101 + From //third_party/webrtc/webrtc.gni:113 Enable this to let the Opus audio codec change complexity on the fly. rtc_prefer_fixed_point Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:158 + From //third_party/webrtc/webrtc.gni:170 Selects fixed-point code where possible. rtc_sanitize_coverage Current value (from the default) = "" - From //third_party/webrtc/webrtc.gni:155 + From //third_party/webrtc/webrtc.gni:167 Set to "func", "block", "edge" for coverage generation. At unit test runtime set UBSAN_OPTIONS="coverage=1". @@ -3839,33 +4522,53 @@ rtc_sanitize_coverage rtc_ssl_root Current value (from the default) = "" - From //third_party/webrtc/webrtc.gni:109 + From //third_party/webrtc/webrtc.gni:121 Used to specify an external OpenSSL include path when not compiling the library that comes with WebRTC (i.e. rtc_build_ssl == 0). +rtc_strict_field_trials + Current value (from the default) = "" + From //third_party/webrtc/webrtc.gni:248 + + When enabled, a run-time check will make sure that all field trial keys have + been registered in accordance with the field trial policy, see + g3doc/field-trials.md. The value can be set to the following: + + "dcheck": RTC_DCHECKs that the field trial has been registered. RTC_DCHECK + must be enabled separately. + + "warn": RTC_LOGs a message with LS_WARNING severity if the field trial + hasn't been registered. + rtc_use_absl_mutex Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:181 + From //third_party/webrtc/webrtc.gni:196 Enable this flag to make webrtc::Mutex be implemented by absl::Mutex. rtc_use_dummy_audio_file_devices Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:185 + From //third_party/webrtc/webrtc.gni:200 By default, use normal platform audio support or dummy audio, but don't use file-based audio playout and record. rtc_use_h264 Current value = true - From //out/thorium/args.gn:47 + From //out/test/args.gn:73 Overridden from the default = true - From //third_party/webrtc/webrtc.gni:178 + From //third_party/webrtc/webrtc.gni:190 + +rtc_use_h265 + Current value (from the default) = true + From //third_party/webrtc/webrtc.gni:193 + + Enable to use H265 rtc_use_pipewire - Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:138 + Current value (from the default) = false + From //third_party/webrtc/webrtc.gni:150 Set this to use PipeWire on the Wayland display server. By default it's only enabled on desktop Linux (excludes ChromeOS) and @@ -3873,21 +4576,21 @@ rtc_use_pipewire supported Ubuntu and Debian distributions. rtc_use_x11 - Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:132 + Current value (from the default) = false + From //third_party/webrtc/webrtc.gni:144 Set this to false to skip building code that requires X11. rtc_use_x11_extensions - Current value (from the default) = true - From //third_party/webrtc/webrtc.gni:285 + Current value (from the default) = false + From //third_party/webrtc/webrtc.gni:318 Set this to false to skip building code that also requires X11 extensions such as Xdamage, Xfixes. rtc_win_undef_unicode Current value (from the default) = false - From //third_party/webrtc/webrtc.gni:221 + From //third_party/webrtc/webrtc.gni:229 When set to true and in a standalone build, it will undefine UNICODE and _UNICODE (which are always defined globally by the Chromium Windows @@ -3898,40 +4601,33 @@ rtc_win_undef_unicode runtime_call_stats_count_everything Current value (from the default) = false - From //third_party/blink/renderer/platform/BUILD.gn:189 + From //third_party/blink/renderer/platform/BUILD.gn:225 rust_sysroot_absolute Current value (from the default) = "" - From //build/config/rust.gni:40 + From //build/config/rust.gni:57 - Chromium currently has a Rust toolchain for Android and Linux, but - if you wish to experiment on more platforms you can use this - argument to specify an alternative toolchain. - This should be an absolute path to a directory - containing a 'bin' directory and others. Commonly + Chromium provides a Rust toolchain in //third_party/rust-toolchain. + + To use a custom toolchain instead, specify an absolute path to the root of + a Rust sysroot, which will have a 'bin' directory and others. Commonly /.rustup/toolchains/nightly-- -rustc_can_link - Current value (from the default) = true - From //build/config/rust.gni:73 +rust_toolchain_supports_nacl + Current value (from the default) = false + From //build/config/rust.gni:67 - Rust code may end up being linked into a final executable by: - * rustc (which calls lld) - * our pre-existing C++ linker invocations - At the moment, this first pipeline is incompatible with the ldflags we use - for thin LTO, due to some problem in escaping gn rules. There's a further - problem with -lunwind on Android. - However, Rust code is still useful if it's contributing to our existing - C++ linker invocations, so this doesn't disable Rust entirely. It does - disable Rust unit test executables, so we do need to fix this. - https://crbug.com/1229423 - NB this may be overridden by individual toolchains + If you're using a Rust toolchain as specified by rust_sysroot_absolute, + you can specify whether it supports nacl here. rustc_version Current value (from the default) = "" - From //build/config/rust.gni:32 + From //build/config/rust.gni:63 - The version string returned by rustc -V, if using an alternative toolchain. + If you're using a Rust toolchain as specified by rust_sysroot_absolute, + set this to the output of `rustc -V`. Changing this string will cause all + Rust targets to be rebuilt, which allows you to update your toolchain and + not break incremental builds. safe_browsing_mode Current value (from the default) = 1 @@ -3939,7 +4635,7 @@ safe_browsing_mode sample_profile_is_accurate Current value (from the default) = false - From //build/config/compiler/compiler.gni:147 + From //build/config/compiler/compiler.gni:150 Whether we should consider the profile we're using to be accurate. Accurate profiles have the benefit of (potentially substantial) binary size @@ -3948,7 +4644,7 @@ sample_profile_is_accurate sanitizer_coverage_flags Current value (from the default) = "" - From //build/config/sanitizers/sanitizers.gni:100 + From //build/config/sanitizers/sanitizers.gni:97 Value for -fsanitize-coverage flag. Setting this causes use_sanitizer_coverage to be enabled. @@ -3959,17 +4655,39 @@ sanitizer_coverage_flags Default value when unset and use_sanitizer_coverage=true: trace-pc-guard,indirect-calls +save_reproducers_on_lld_crash + Current value (from the default) = false + From //build/config/compiler/BUILD.gn:188 + + If true, linker crashes will be rerun with `--reproduce` which causes + a reproducer file to be saved. + seed_corpus_dir - Current value (from the default) = "//out/thorium/gen/components/viz/service/compositor_frame_fuzzer/binary_seed_corpus" + Current value (from the default) = "//out/test/gen/components/viz/service/compositor_frame_fuzzer/binary_seed_corpus" From //components/viz/service/compositor_frame_fuzzer/BUILD.gn:9 show_includes Current value (from the default) = false - From //build/config/compiler/BUILD.gn:177 + From //build/config/compiler/BUILD.gn:179 Enable -H, which prints the include tree during compilation. For use by tools/clang/scripts/analyze_includes.py +simple_template_names + Current value (from the default) = false + From //build/config/compiler/BUILD.gn:207 + + Use DWARF simple template names, with the following exceptions: + + * Windows is not supported as it doesn't use DWARF. + * Apple platforms (e.g. MacOS, iPhone, iPad) aren't supported because xcode + lldb doesn't have the needed changes yet. + TODO(crbug.com/1379070): Remove if the upstream default ever changes. + + This greatly reduces the size of debug builds, at the cost of + debugging information which is required by some specialized + debugging tools. + single_module_mode_handle_verifier Current value (from the default) = false From //base/win/BUILD.gn:11 @@ -3979,30 +4697,30 @@ single_module_mode_handle_verifier skia_enable_skshaper Current value (from the default) = true - From //third_party/skia/modules/skshaper/skshaper.gni:20 + From //third_party/skia/modules/skshaper/skshaper.gni:38 + +skia_enable_skshaper_tests + Current value (from the default) = true + From //third_party/skia/modules/skshaper/skshaper.gni:41 skia_use_dawn - Current value (from the default) = false - From //skia/features.gni:7 - - Enable experimental SkiaRenderer Dawn backend. - -skia_use_gl Current value (from the default) = true - From //skia/features.gni:8 + From //skia/features.gni:12 -skip_archive_compression + Enable experimental Skia Graphite Dawn backend. Enabled on platforms where + the team has verified that at least basic rendering to the screen is + working. + +skia_use_metal Current value (from the default) = false - From //chrome/installer/mini_installer/BUILD.gn:22 + From //skia/features.gni:18 - The Chrome archive is compressed in official builds to reduce the size of - the installer. By default: non-official or component builds, a build mode - targeting developers, do not compress so as to provide quicker build-test - cycles. + Enable experimental Skia Graphite Metal backend. Intended only for debugging + on non-official developer builds. skip_buildtools_check Current value (from the default) = false - From //third_party/perfetto/gn/perfetto.gni:312 + From //third_party/perfetto/gn/perfetto.gni:342 Skip buildtools dependency checks (needed for ChromeOS). @@ -4016,12 +4734,24 @@ strip_debug_info subpixel_font_rendering_disabled Current value (from the default) = false - From //gpu/ipc/service/BUILD.gn:13 + From //gpu/ipc/service/BUILD.gn:14 + +support_external_google_api_key + Current value (from the default) = false + From //google_apis/BUILD.gn:80 supports_llvm Current value (from the default) = true From //third_party/swiftshader/src/Reactor/reactor.gni:17 +supports_os_accessibility_service + Current value (from the default) = false + From //services/accessibility/buildflags.gni:26 + + Used to determine if the Accessibility Service should run + assistive technology features, or if the service is running + in a browser embedded in an OS that already has those features. + supports_subzero Current value (from the default) = true From //third_party/swiftshader/src/Reactor/reactor.gni:13 @@ -4044,7 +4774,7 @@ swiftshader_startup_dialog symbol_level Current value = 0 - From //out/thorium/args.gn:19 + From //out/test/args.gn:25 Overridden from the default = -1 From //build/config/compiler/compiler.gni:60 @@ -4065,17 +4795,20 @@ sync_user_agent_product sysroot Current value (from the default) = "" - From //build/config/sysroot.gni:20 + From //build/config/sysroot.gni:18 The path of the sysroot for the current toolchain. If empty, default sysroot is used. system_headers_in_deps Current value (from the default) = false - From //build/toolchain/gcc_toolchain.gni:34 + From //build/toolchain/gcc_toolchain.gni:38 Use -MD instead of -MMD for compiler commands. This is useful for tracking - the comprehensive set of dependencies. + the comprehensive set of dependencies. It's also required when building + without the sysroot so that updates to system header files trigger a + rebuild (when using the sysroot, the CR_SYSROOT_KEY define takes care of + this already). system_libdir Current value (from the default) = "lib" @@ -4091,13 +4824,9 @@ system_libdir in similar fashion by setting the `system_libdir` variable in the build's args.gn file to 'lib' or 'lib64' as appropriate for the target architecture. -system_wayland_scanner_path - Current value (from the default) = "/usr/bin/wayland-scanner" - From //third_party/wayland/features.gni:17 - target_cpu Current value = "x64" - From //out/thorium/args.gn:7 + From //out/test/args.gn:11 Overridden from the default = "" (Internally set; try `gn help target_cpu`.) @@ -4111,35 +4840,43 @@ target_environment default is only there for compatibility reasons and will be removed (see crbug.com/1138425 for more details). +target_is_ios_device + Current value (from the default) = false + From //v8/gni/v8.gni:147 + + iOS device does not support executable code pages. Not we + use target_os == "ios" here because it isn't equivalent + to is_ios (is_ios is based on host_os). + target_os Current value = "win" - From //out/thorium/args.gn:6 + From //out/test/args.gn:10 Overridden from the default = "" (Internally set; try `gn help target_os`.) target_rpath Current value (from the default) = "" - From //build/config/chromecast_build.gni:30 + From //build/config/cast.gni:16 If non empty, rpath of executables is set to this. If empty, default value is used. target_sysroot Current value (from the default) = "" - From //build/config/sysroot.gni:13 + From //build/config/sysroot.gni:11 The path of the sysroot that is applied when compiling using the target toolchain. target_sysroot_dir Current value (from the default) = "//build/linux" - From //build/config/sysroot.gni:16 + From //build/config/sysroot.gni:14 The path to directory containing linux sysroot images. target_winuwp_family Current value (from the default) = "app" - From //build/config/win/BUILD.gn:34 + From //build/config/win/BUILD.gn:36 possible values: "app" - Windows Store Applications @@ -4150,7 +4887,7 @@ target_winuwp_family target_winuwp_version Current value (from the default) = "10" - From //build/config/win/BUILD.gn:26 + From //build/config/win/BUILD.gn:28 possible values for target_winuwp_version: "10" - Windows UWP 10 @@ -4159,30 +4896,94 @@ target_winuwp_version tests_have_location_tags Current value (from the default) = true - From //testing/test.gni:23 + From //testing/test.gni:21 Some component repos (e.g. ANGLE) import //testing but do not have "location_tags.json", and so we don't want to try and upload the tags for their tests. And, some build configs may simply turn off generation altogether. +thin_lto_enable_cache + Current value = false + From //out/test/args.gn:15 + Overridden from the default = true + From //build/config/compiler/BUILD.gn:139 + + Whether to enable thin lto incremental builds. + See: https://clang.llvm.org/docs/ThinLTO.html#incremental + The cache can lead to non-determinism: https://crbug.com/1486045 + thin_lto_enable_optimizations Current value = true - From //out/thorium/args.gn:59 + From //out/test/args.gn:91 Overridden from the default = true - From //build/config/compiler/BUILD.gn:129 + From //build/config/compiler/BUILD.gn:133 + +tint_build_benchmarks + Current value (from the default) = true + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:134 + +tint_build_cmds + Current value (from the default) = false + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:74 + +tint_build_glsl_validator + Current value (from the default) = true + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:114 tint_build_glsl_writer Current value (from the default) = true - From //third_party/dawn/tint_overrides_with_defaults.gni:72 + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:109 tint_build_hlsl_writer Current value (from the default) = true - From //third_party/dawn/tint_overrides_with_defaults.gni:67 + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:104 + +tint_build_ir_binary + Current value (from the default) = true + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:124 tint_build_msl_writer Current value (from the default) = true - From //third_party/dawn/tint_overrides_with_defaults.gni:62 + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:99 + +tint_build_syntax_tree_writer + Current value (from the default) = false + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:119 + +tint_build_unittests + Current value (from the default) = true + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:129 + +tint_glslang_dir + Current value (from the default) = "//third_party/vulkan-deps/glslang/src" + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:60 + +tint_src_dir + Current value (from the default) = "//third_party/dawn/src/tint" + From //third_party/dawn/scripts/tint_overrides_with_defaults.gni:141 + +toolchain_for_rust_host_build_tools + Current value (from the default) = false + From //build/toolchain/toolchain.gni:32 + + Whether this toolchain is to be used for building host tools that are + consumed during the build process. That includes proc macros and Cargo build + scripts. + +toolchain_supports_rust_thin_lto + Current value (from the default) = true + From //build/config/rust.gni:78 + + Whether artifacts produced by the Rust compiler can participate in ThinLTO. + + One important consideration is whether the linker uses the same LLVM + version as `rustc` (i.e. if it can understand the LLVM-IR from the + compilation artifacts produced by `rustc`). In LaCrOS and ash builds this + may not be true - see b/299483903. + + TODO(https://crbug.com/1482525): Re-enable ThinLTO for Rust on LaCrOS + TODO(b/300937673): Re-enable ThinLTO for Rust on ash-chrome toolkit_views Current value (from the default) = true @@ -4191,7 +4992,9 @@ toolkit_views True means the UI is built using the "views" framework. treat_warnings_as_errors - Current value (from the default) = true + Current value = false + From //out/test/args.gn:30 + Overridden from the default = true From //build/config/compiler/compiler.gni:50 Default to warnings as errors for default workflow, where we catch @@ -4199,63 +5002,52 @@ treat_warnings_as_errors builds on Linux that could use a different version of the compiler. With GCC, warnings in no-Chromium code are always not treated as errors. -trial_comparison_cert_verifier_supported - Current value (from the default) = false - From //net/features.gni:40 - - Platforms where the cert verifier comparison trial is supported. - See https://crbug.com/649026. - use_afl Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:75 + From //build/config/sanitizers/sanitizers.gni:76 Compile for fuzzing with AFL. -use_allocator - Current value (from the default) = "partition" - From //base/allocator/allocator.gni:48 - - Memory allocator to use. Set to "none" to use default allocator. - use_allocator_shim Current value (from the default) = true - From //base/allocator/allocator.gni:51 + From //base/allocator/partition_allocator/partition_alloc.gni:39 - Causes all the allocations to be routed via allocator_shim.cc. + Causes all the allocations to be routed via allocator_shim.cc. Usually, + the allocator shim will, in turn, route them to Partition Alloc, but + other allocators are also supported by the allocator shim. use_alsa - Current value (from the default) = true - From //media/media_options.gni:129 + Current value (from the default) = false + From //media/media_options.gni:191 + + Enables runtime selection of ALSA library for audio. use_amdgpu_minigbm Current value (from the default) = false From //third_party/minigbm/BUILD.gn:17 use_android_unwinder_v2 - Current value (from the default) = false - From //build/config/compiler/compiler.gni:33 + Current value (from the default) = true + From //build/config/compiler/compiler.gni:144 Set to true to use the android unwinder V2 implementation. -use_android_user_agent - Current value (from the default) = false - From //chromecast/chromecast.gni:91 - - Include 'Android' in user agent string to avoid being served desktop - versions of websites. - TODO(halliwell): consider making this default for all Cast hardware. - use_arc_protected_media Current value (from the default) = false - From //media/gpu/args.gni:44 + From //media/gpu/args.gni:34 Indicates if the ChromeOS protected media functionality should also be utilized by HW video decoding for ARC. use_asan_backup_ref_ptr Current value (from the default) = false - From //base/allocator/allocator.gni:115 + From //base/allocator/partition_allocator/partition_alloc.gni:163 + +use_asan_unowned_ptr + Current value (from the default) = false + From //base/allocator/partition_allocator/partition_alloc.gni:167 + + Use probe-on-destruct unowned ptr detection with ASAN. use_aura Current value (from the default) = true @@ -4264,21 +5056,24 @@ use_aura Indicates if Aura is enabled. Aura is a low-level windowing library, sort of a replacement for GDI or GTK. -use_backup_ref_ptr - Current value (from the default) = false - From //base/allocator/allocator.gni:89 +use_av1_hw_decoder + Current value (from the default) = true + From //media/gpu/args.gni:42 - Set use_backup_ref_ptr true to use BackupRefPtr (BRP) as the implementation - of raw_ptr, and enable PartitionAlloc support for it. + A platform that is capable of hardware av1 decoding. + +use_blink + Current value (from the default) = true + From //build/config/features.gni:41 use_blink_extensions_chromeos Current value (from the default) = false - From //third_party/blink/renderer/config.gni:49 + From //third_party/blink/renderer/config.gni:46 If true, the experimental renderer extensions library will be used. use_bluez - Current value (from the default) = true + Current value (from the default) = false From //device/bluetooth/cast_bluetooth.gni:5 use_bundled_fontconfig @@ -4291,9 +5086,16 @@ use_bundled_weston Checks if Weston must be compiled +use_centipede + Current value (from the default) = false + From //build/config/sanitizers/sanitizers.gni:73 + + Compile for fuzzing with centipede. + See https://github.com/google/centipede + use_cfi_cast Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:115 + From //build/config/sanitizers/sanitizers.gni:122 Enable checks for bad casts: derived cast and unrelated cast. TODO(krasin): remove this, when we're ready to add these checks by default. @@ -4301,28 +5103,24 @@ use_cfi_cast use_cfi_diag Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:64 + From //build/config/sanitizers/sanitizers.gni:61 Print detailed diagnostics when Control Flow Integrity detects a violation. use_cfi_icall Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:61 + From //build/config/sanitizers/sanitizers.gni:58 use_cfi_recover Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:68 + From //build/config/sanitizers/sanitizers.gni:65 Let Control Flow Integrity continue execution instead of crashing when printing diagnostics (use_cfi_diag = true). -use_chromecast_cdms - Current value (from the default) = true - From //chromecast/chromecast.gni:197 - use_chromeos_protected_av1 Current value (from the default) = false - From //media/gpu/args.gni:49 + From //media/gpu/args.gni:39 Indicates if ChromeOS protected media supports the AV1 codec. By default H.264, VP9 and HEVC are enabled if protected media is enabled; AV1 is @@ -4330,28 +5128,12 @@ use_chromeos_protected_av1 use_chromeos_protected_media Current value (from the default) = false - From //media/gpu/args.gni:40 + From //media/gpu/args.gni:30 Indicates if ChromeOS protected media support exists. This is used to enable the CDM daemon in Chrome OS as well as support for - encrypted content with HW video decoders. - TODO(jkardatzke): Enable this for Lacros always, it is determined at runtime - in that configuration. - -use_chromium_rust_toolchain - Current value (from the default) = false - From //build/config/rust.gni:29 - - Use experimental Rust toolchain built in-tree. See //tools/rust. For now, - only use it for linux targets. The package only has prebuilt libs for linux. - More targets will be added later. - - Ideally this should check `current_os` so that e.g. Android builds will use - the Android toolchain for target artifacts and the Chromium Rust toolchain - for host artifacts. Currently there is an std mixup in //build/rust/std that - prevents this. - - TODO(https://crbug.com/1245714): fix std handling and check `current_os`. + encrypted content with HW video decoders. This is always enabled for Lacros + because it detects support at runtime. use_clang_coverage Current value (from the default) = false @@ -4359,7 +5141,7 @@ use_clang_coverage use_clang_diagnostics_format Current value (from the default) = false - From //build/config/win/BUILD.gn:43 + From //build/config/win/BUILD.gn:45 Set this to use clang-style diagnostics format instead of MSVC-style, which is useful in e.g. Emacs compilation mode. @@ -4375,31 +5157,31 @@ use_clang_profiling use_clang_profiling_inside_sandbox Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:180 + From //build/config/sanitizers/sanitizers.gni:229 use_command_buffer - Current value (from the default) = false - From //device/vr/buildflags/buildflags.gni:14 + Current value (from the default) = true + From //device/vr/buildflags/buildflags.gni:23 use_cras Current value (from the default) = false - From //media/media_options.gni:44 + From //media/media_options.gni:67 Override to dynamically link the cras (ChromeOS audio) library. use_crash_key_stubs Current value (from the default) = false - From //components/crash/core/common/BUILD.gn:11 + From //components/crash/core/common/BUILD.gn:12 If set to true, this will stub out and disable the entire crash key system. use_cups - Current value (from the default) = true - From //printing/buildflags/buildflags.gni:27 + Current value (from the default) = false + From //printing/buildflags/buildflags.gni:40 use_cups_ipp Current value (from the default) = false - From //printing/buildflags/buildflags.gni:51 + From //printing/buildflags/buildflags.gni:74 Enables the CUPS IPP printing backend. TODO(crbug.com/226176): Remove this after CUPS PPD API calls are removed. @@ -4408,9 +5190,15 @@ use_custom_libcxx Current value (from the default) = true From //build/config/c++/c++.gni:15 + Use in-tree libc++ (buildtools/third_party/libc++ and + buildtools/third_party/libc++abi) instead of the system C++ library for C++ + standard library support. + Don't check in changes that set this to false for more platforms; doing so + is not supported. + use_custom_libcxx_for_host Current value (from the default) = false - From //build/config/c++/c++.gni:25 + From //build/config/c++/c++.gni:24 Use libc++ instead of stdlibc++ when using the host_cpu toolchain, even if use_custom_libcxx is false. This is useful for cross-compiles where a custom @@ -4419,22 +5207,30 @@ use_custom_libcxx_for_host expected usage is to set use_custom_libcxx=false and use_custom_libcxx_for_host=true in the passed in buildargs. -use_cxx11 +use_custom_libunwind Current value (from the default) = false - From //build/config/compiler/BUILD.gn:89 + From //build/config/unwind.gni:6 - Allow projects that wish to stay on C++11 to override Chromium's default. + Use in-tree libunwind (buildtools/third_party/libunwind) instead of whatever + system library provides unwind symbols (e.g. libgcc). + +use_cxx17 + Current value (from the default) = false + From //build_overrides/build.gni:58 + + Allow projects that wish to stay on C++17 to override Chromium's default. + TODO(crbug.com/1402249): evaluate removing this end of 2023 use_dawn Current value (from the default) = true From //ui/gl/features.gni:21 Should Dawn support be compiled to back the WebGPU implementation? - Also controls linking Dawn depedencies in such as SPIRV-Tools/SPIRV-Cross. + Also controls linking Dawn dependencies in such as SPIRV-Tools/SPIRV-Cross. use_dbus - Current value (from the default) = true - From //build/config/features.gni:31 + Current value (from the default) = false + From //build/config/features.gni:37 use_debug_fission Current value (from the default) = "default" @@ -4457,7 +5253,7 @@ use_dummy_lastchange use_dwarf5 Current value (from the default) = false - From //build/config/compiler/BUILD.gn:165 + From //build/config/compiler/BUILD.gn:167 Enable DWARF v5. @@ -4467,13 +5263,13 @@ use_egl use_external_fuzzing_engine Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:78 + From //build/config/sanitizers/sanitizers.gni:79 Compile for fuzzing with an external engine (e.g., Grammarinator). use_external_popup_menu Current value (from the default) = false - From //content/common/features.gni:9 + From //content/common/features.gni:11 Whether or not to use external popup menu. @@ -4481,17 +5277,13 @@ use_exynos_minigbm Current value (from the default) = false From //third_party/minigbm/BUILD.gn:18 -use_fake_binary_experiment +use_freeslot_bitmap Current value (from the default) = false - From //base/allocator/allocator.gni:113 - - Registers the binary for a fake binary A/B experiment. The binaries built - with this flag have no behavior difference, except for setting a synthetic - Finch. + From //base/allocator/partition_allocator/partition_alloc.gni:103 use_full_pdb_paths Current value (from the default) = false - From //build/config/compiler/BUILD.gn:173 + From //build/config/compiler/BUILD.gn:175 Override this to put full paths to PDBs in Windows PE files. This helps windbg and Windows Performance Analyzer with finding the PDBs in some local- @@ -4509,41 +5301,34 @@ use_gcm_from_platform use_ghash Current value (from the default) = true - From //build/config/compiler/BUILD.gn:119 + From //build/config/compiler/BUILD.gn:123 Turn this on to use ghash feature of lld for faster debug link on Windows. http://blog.llvm.org/2018/01/improving-link-time-on-windows-with.html use_gio - Current value (from the default) = true - From //build/config/features.gni:33 + Current value (from the default) = false + From //build/config/features.gni:39 use_glib - Current value (from the default) = true - From //build/config/ui.gni:36 - -use_gnome_keyring Current value (from the default) = false - From //components/os_crypt/features.gni:11 - - Whether to use libgnome-keyring (deprecated by libsecret). - See http://crbug.com/466975 and http://crbug.com/355223. + From //build/config/ui.gni:36 use_gold Current value (from the default) = false - From //build/config/compiler/compiler.gni:221 + From //build/config/compiler/compiler.gni:245 Whether to use the gold linker from binutils instead of lld or bfd. use_goma Current value (from the default) = false - From //build/toolchain/goma.gni:9 + From //build/toolchain/goma.gni:11 Set to true to enable distributed compilation using Goma. use_goma_rust Current value (from the default) = false - From //build/config/rust.gni:60 + From //build/config/rust.gni:95 Use goma for Rust builds. Experimental. The only known problem is b/193072381, but then again, we don't expect a build speedup before much @@ -4551,19 +5336,25 @@ use_goma_rust use_goma_thin_lto Current value (from the default) = false - From //build/config/compiler/compiler.gni:95 + From //build/config/compiler/compiler.gni:99 If true, use Goma for ThinLTO code generation where applicable. use_gtk - Current value (from the default) = true + Current value (from the default) = false From //build/config/linux/gtk/gtk.gni:9 Whether or not we should use libgtk. -use_icf +use_hashed_jni_names Current value (from the default) = true - From //build/config/compiler/BUILD.gn:190 + From //third_party/jni_zero/jni_zero.gni:15 + + Use hashed symbol names to reduce JNI symbol overhead. + +use_icf + Current value (from the default) = false + From //build/config/compiler/BUILD.gn:220 Set to true to use icf, Identical Code Folding. @@ -4581,7 +5372,7 @@ use_intel_minigbm use_internal_autofill_patterns Current value (from the default) = false - From //components/autofill/core/browser/BUILD.gn:30 + From //components/autofill/core/browser/BUILD.gn:32 Normally, only branded builds use Google-internal sets of parsing patterns. @@ -4590,10 +5381,10 @@ use_internal_autofill_patterns use_internal_isolated_origins Current value (from the default) = false - From //components/site_isolation/BUILD.gn:18 + From //components/site_isolation/BUILD.gn:21 - Normally, only Google Chrome Android and Fuchsia WebEngine builds will use - a Google-internal list of isolated origins defined below. + Normally, only Google Chrome Android and some Fuchsia WebEngine builds will + use a Google-internal list of isolated origins defined below. If other Fuchsia embedders are added, the associated logic may need to be updated. See crbug.com/1179087. @@ -4608,46 +5399,42 @@ use_jacoco_coverage Enables JaCoCo Java code coverage. -use_java_goma +use_jank_tracker_for_experiments Current value (from the default) = false - From //build/toolchain/goma.gni:26 + From //ui/latency/BUILD.gn:9 - TODO(crbug.com/726475): true if use_goma = true in the future. +use_javascript_coverage + Current value (from the default) = false + From //build/config/coverage/coverage.gni:39 + + Enables TypeScript/JavaScript code coverage. use_kerberos Current value (from the default) = true - From //net/features.gni:19 + From //net/features.gni:21 Enable Kerberos authentication. It is disabled by default on iOS, Fuchsia and Chromecast, at least for now. This feature needs configuration (krb5.conf and so on). TODO(fuchsia): Enable kerberos on Fuchsia when it's implemented there. -use_large_pdbs - Current value (from the default) = false - From //build/config/win/BUILD.gn:48 - - Indicates whether to use /pdbpagesize:8192 to allow PDBs larger than 4 GiB. - This requires updated debugging and profiling tools which are not widely - distributed yet which is why it is currently opt-in. - use_layout_plugin Current value (from the default) = true - From //third_party/blink/renderer/core/BUILD.gn:86 + From //third_party/blink/renderer/core/BUILD.gn:100 Set to true to enable the clang layout plugin that help you to follow the layout-related restrictions during compilation. use_libfuzzer Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:72 + From //build/config/sanitizers/sanitizers.gni:69 Compile for fuzzing with LLVM LibFuzzer. See http://www.chromium.org/developers/testing/libfuzzer use_libgav1_parser Current value (from the default) = true - From //third_party/libgav1/options.gni:14 + From //third_party/libgav1/options.gni:9 use_libinput Current value (from the default) = false @@ -4663,26 +5450,25 @@ use_libjpeg_turbo use_system_libjpeg is set. use_libpci - Current value (from the default) = true - From //third_party/angle/BUILD.gn:28 + Current value (from the default) = false + From //third_party/angle/BUILD.gn:31 Use the PCI lib to collect GPU information on Linux. use_lld Current value = true - From //out/thorium/args.gn:22 + From //out/test/args.gn:33 Overridden from the default = true - From //build/config/compiler/compiler.gni:42 + From //build/config/compiler/compiler.gni:38 Set to true to use lld, the LLVM linker. In late bring-up on macOS (see docs/mac_lld.md). - Tentatively used on iOS, except in cronet builds (cronet still supports - 32-bit builds, which lld doesn't support). + Tentatively used on iOS. The default linker everywhere else. use_locally_built_instrumented_libraries Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:47 + From //build/config/sanitizers/sanitizers.gni:44 Use dynamic libraries instrumented by one of the sanitizers instead of the standard system libraries. Set this flag to build the libraries from source. @@ -4693,16 +5479,6 @@ use_low_quality_image_interpolation If true, defaults image interpolation to low quality. -use_lto_in_rustc_linking - Current value (from the default) = false - From //build/config/rust.gni:55 - - Use LTO when using rustc to link binaries. Experimental. Currently incompatible - with the options we use in our C++ toolchain to split LTO units. - This has no effect on the production of normal Chrome binaries, which are - linked by clang/lld rather than rustc. - https://crbug.com/1229419 - use_marvell_minigbm Current value (from the default) = false From //third_party/minigbm/BUILD.gn:20 @@ -4715,15 +5491,16 @@ use_meson_minigbm Current value (from the default) = false From //third_party/minigbm/BUILD.gn:22 -use_mini_bho +use_ml_inliner Current value (from the default) = false - From //chrome/browser/browser_switcher/bho/BUILD.gn:15 + From //build/config/compiler/compiler.gni:140 - If true, compile a BHO that doesn't depend on the CRT to significantly - minimize binary size. + Set to true to enable using the ML inliner in LLVM. This currently only + enables the ML inliner when targeting Android. + Currently the ML inliner is only supported on linux hosts use_mpris - Current value (from the default) = true + Current value (from the default) = false From //components/system_media_controls/linux/buildflags/buildflags.gni:11 Enables Chromium implementation of the MPRIS D-Bus interface for controlling @@ -4733,19 +5510,15 @@ use_msm_minigbm Current value (from the default) = false From //third_party/minigbm/BUILD.gn:23 -use_mte_checked_ptr - Current value (from the default) = false - From //base/allocator/allocator.gni:91 - use_nss_certs - Current value (from the default) = true + Current value (from the default) = false From //crypto/features.gni:9 True if NSS is used for certificate handling. use_official_enterprise_connectors_api_keys Current value (from the default) = false - From //chrome/browser/BUILD.gn:66 + From //chrome/browser/BUILD.gn:71 You can set the variable 'use_official_enterprise_connectors_api_keys' to true to use the Google-internal file containing official API keys @@ -4759,59 +5532,74 @@ use_official_enterprise_connectors_api_keys use_official_google_api_keys Current value (from the default) = "" - From //google_apis/BUILD.gn:33 + From //google_apis/BUILD.gn:29 - You can set the variable 'use_official_google_api_keys' to true + Set the variable 'use_official_google_api_keys' to true to use the Google-internal file containing official API keys - for Google Chrome even in a developer build. Setting this - variable explicitly to true will cause your build to fail if the - internal file is missing. + even in a developer build. Setting this variable explicitly to + true will cause the build to fail if the internal file is missing. - The variable is documented here, but not handled in this file; - see //google_apis/determine_use_official_keys.gypi for the - implementation. + Set the variable to false to not use the internal file, even for + Chrome-branded builds or when it exists in your checkout. - Set the variable to false to not use the internal file, even when - it exists in your checkout. - - Leave it unset or set to "" to have the variable - implicitly set to true if you have - src/google_apis/internal/google_chrome_api_keys.h in your - checkout, and implicitly set to false if not. - - Note that official builds always behave as if the variable - was explicitly set to true, i.e. they always use official keys, - and will fail to build if the internal file is missing. + Leave it set to "" to have the variable implicitly set to true for + Chrome-branded builds or if + //src/google_apis/internal/google_chrome_api_keys.h is present and false + otherwise. + This does not apply to iOS builds, which use different mechanisms and always + evaluate to use_official_google_api_keys=false. + See https://crbug.com/1183709. use_ozone - Current value (from the default) = true - From //build/config/ozone.gni:13 + Current value (from the default) = false + From //build/config/ozone.gni:12 + + Indicates if Ozone is enabled. Ozone is a low-level library layer for Linux + that does not require X11. use_pangocairo - Current value (from the default) = true + Current value (from the default) = false From //build/config/linux/pangocairo/pangocairo.gni:9 use_partition_alloc Current value (from the default) = true - From //base/allocator/allocator.gni:61 + From //base/allocator/partition_allocator/partition_alloc.gni:58 Whether PartitionAlloc should be available for use or not. true makes PartitionAlloc linked to the executable or shared library and makes it available for use. It doesn't mean that the default allocator - is PartitionAlloc, which is governed by |use_allocator|. + is PartitionAlloc, which is governed by |use_partition_alloc_as_malloc|. - This flag is currently set to false only on Cronet bots, because Cronet - doesn't use PartitionAlloc at all, and doesn't wish to incur the library - size increase (crbug.com/674570). + N.B. generally, embedders should look at this GN arg and at the + corresponding buildflag to determine whether to interact with PA + source at all (pulling the component in via GN, including headers, + etc.). There is nothing stopping a lazy embedder from ignoring this + and unconditionally using PA, but such a setup is inadvisable. + + In Chromium, this is set true, except: + + 1. On Cronet bots, because Cronet doesn't use PartitionAlloc at all, + and doesn't wish to incur the library size increase (crbug.com/674570). + 2. On NaCl (through this declaration), where PartitionAlloc doesn't + build at all. + +use_partition_alloc_as_malloc + Current value (from the default) = true + From //base/allocator/partition_allocator/partition_alloc.gni:85 + + PartitionAlloc-Everywhere (PA-E). Causes allocator_shim.cc to route + calls to PartitionAlloc, rather than some other platform allocator. use_perfetto_client_library - Current value (from the default) = false - From //build_overrides/build.gni:28 + Current value (from the default) = true + From //build_overrides/build.gni:42 - Switches the TRACE_EVENT instrumentation from base's TraceLog implementation - to //third_party/perfetto's client library. Not implemented yet, currently a - no-op to set up trybot infrastructure. - TODO(crbug/1006769): Switch to perfetto's client library. +use_perfetto_trace_processor + Current value (from the default) = true + From //build_overrides/build.gni:65 + + Use Perfetto's trace processor for converting protobuf-encoded traces to + the legacy JSON format in base::TraceLog. use_platform_icu_alternatives Current value (from the default) = false @@ -4820,81 +5608,76 @@ use_platform_icu_alternatives Enables the use of ICU alternatives in lieu of ICU for the target toolchain. The flag is used for Cronet to reduce the size of the Cronet binary. +use_profi + Current value (from the default) = false + From //build/config/compiler/BUILD.gn:184 + + Enable Profi algorithm. Profi can infer block and edge counts. + https://clang.llvm.org/docs/UsersManual.html#using-sampling-profilers + TODO(crbug.com/1375958i:) Possibly enable this for Android too. + use_pulseaudio - Current value (from the default) = true - From //media/media_options.gni:140 + Current value (from the default) = false + From //media/media_options.gni:188 + + Enables runtime selection of PulseAudio library. use_qt Current value (from the default) = false - From //ui/qt/qt.gni:7 + From //ui/qt/qt.gni:12 - https://crbug.com/1317782 enable QT UI by default on Linux. + TODO(https://crbug.com/1424435): Allow QT in MSAN builds once QT is + added to the instrumented libraries. + +use_qt6 + Current value (from the default) = false + From //ui/qt/qt.gni:22 use_radeon_minigbm Current value (from the default) = false From //third_party/minigbm/BUILD.gn:24 -use_rbe - Current value (from the default) = false - From //build/toolchain/rbe.gni:17 - - Set to true to enable remote compilation using reclient (deprecated). - use_real_dbus_clients Current value (from the default) = false From //chromeos/dbus/config/use_real_dbus_clients.gni:9 Instantiate real D-Bus clients instead of fakes. +use_relative_vtables_abi + Current value (from the default) = false + From //build/config/compiler/compiler.gni:155 + + Use offsets rather than pointers in vtables in order to reduce the number of + relocations. This is safe to enable only when all C++ code is built with the + flag set to the same value. + use_remoteexec Current value (from the default) = false From //build/toolchain/rbe.gni:14 Set to true to enable remote compilation using reclient. +use_remoteexec_links + Current value (from the default) = false + From //build/toolchain/rbe.gni:17 + + Set to true to enable remote linking using reclient. + use_rockchip_minigbm Current value (from the default) = false From //third_party/minigbm/BUILD.gn:25 -use_rts - Current value (from the default) = false - From //build/config/rts.gni:4 - - For more info about RTS, please see - //docs/testing/regression-test-selection.md - use_rtti Current value (from the default) = false - From //build/config/compiler/BUILD.gn:80 + From //build/config/compiler/BUILD.gn:82 Build with C++ RTTI enabled. Chromium builds without RTTI by default, but some sanitizers are known to require it, like CFI diagnostics and UBsan variants. -use_runtime_vlog - Current value (from the default) = true - From //build/config/logging.gni:31 - - Use runtime vlog everywhere except for ash-chrome. - When `use_runtime_vlog` is true, - command line switch `--vmodule=xxx` or `--v=x` could be used to - control vlog level at runtime. - when `use_runtime_volog` is false, - verbose log level is controlled by `ENABLE_VLOG_LEVEL` macro. VLOG(n) - is kept and generate output if `n` is less than or equal to the vlog - level defined by the macro. - Command line switch `--vmodule=xxx`, or `--v=x` would have no effect. - - Runtime vlog is used everywhere except on ash-chrome. - Ash-chrome has a few vmodule patterns that need to be used indefinitely - to investigate problems from logs in feedback reports. These vmodule - patterns are using too much cpu cycles (see http://crbug/489441). Turning - off runtime vlog and using build time vlog would avoid paying that cpu tax - and have a nice side effect of a smaller production binary. - use_sanitizer_configs_without_instrumentation Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:105 + From //build/config/sanitizers/sanitizers.gni:102 When enabled, only relevant sanitizer defines are set, but compilation happens with no extra flags. This is useful when in component build @@ -4902,7 +5685,14 @@ use_sanitizer_configs_without_instrumentation use_sanitizer_coverage Current value (from the default) = false - From //build/config/sanitizers/sanitizers.gni:169 + From //build/config/sanitizers/sanitizers.gni:218 + +use_siso + Current value (from the default) = false + From //build/toolchain/siso.gni:6 + + Placeholder to allow having use_siso in args.gn files and to disable + precompiled headers in siso builds. use_static_angle Current value (from the default) = false @@ -4923,17 +5713,7 @@ use_synaptics_minigbm use_sysroot Current value (from the default) = true - From //build/config/sysroot.gni:24 - - Controls default is_linux sysroot. If set to true, and sysroot - is empty, default sysroot is calculated. - -use_system_crash_handler - Current value (from the default) = false - From //chromecast/chromecast.gni:138 - - Set to true to forward crashes to the system's crash handler instead of - handling them internally. This disables the built-in crash handler. + From //build/config/sysroot.gni:23 use_system_freetype Current value (from the default) = false @@ -4959,7 +5739,7 @@ use_system_harfbuzz use_system_lcms2 Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:60 + From //third_party/pdfium/pdfium.gni:69 Don't build against bundled lcms2. @@ -4971,6 +5751,16 @@ use_system_libdrm with the system. In release builds of desktop Linux and Chrome OS we use the system version. Some Chromecast devices use this as well. +use_system_libffi + Current value (from the default) = false + From //build/config/linux/libffi/BUILD.gn:13 + + Controls whether the build should use the version of libffi library shipped + with the system. By default, we only use the system version on Chrome OS: + on Linux, libffi must be statically linked to prevent a situation where the + runtime version of libffi is different from the build-time version from the + sysroot. + use_system_libjpeg Current value (from the default) = false From //third_party/libjpeg.gni:7 @@ -4979,13 +5769,13 @@ use_system_libjpeg use_system_libopenjpeg2 Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:63 + From //third_party/pdfium/pdfium.gni:72 Don't build against bundled libopenjpeg2. use_system_libpng Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:66 + From //third_party/pdfium/pdfium.gni:75 Don't build against bundled libpng. @@ -4998,12 +5788,11 @@ use_system_libsync use the system version, but when building on dev workstations we bundle it because Ubuntu doesn't ship a usable version. -use_system_libwayland - Current value (from the default) = true - From //third_party/wayland/features.gni:12 +use_system_libtiff + Current value (from the default) = false + From //third_party/pdfium/pdfium.gni:78 - Controls whether the build should use the version of Wayland - library shipped with the system or Chromium third_party. + Don't build against bundled libtiff. use_system_minigbm Current value (from the default) = true @@ -5013,16 +5802,9 @@ use_system_minigbm with the system. In release builds of desktop Linux and Chrome OS we use the system version. -use_system_wayland_scanner - Current value (from the default) = false - From //third_party/wayland/features.gni:21 - - This may be set by Chromium packagers who do not wish to use the bundled - wayland scanner. - use_system_zlib Current value (from the default) = false - From //third_party/pdfium/pdfium.gni:57 + From //third_party/pdfium/pdfium.gni:81 Don't build against bundled zlib. @@ -5031,103 +5813,85 @@ use_tegra_minigbm From //third_party/minigbm/BUILD.gn:27 use_text_section_splitting - Current value (from the default) = false - From //build/config/compiler/BUILD.gn:149 + Current value = true + From //out/test/args.gn:89 + Overridden from the default = false + From //build/config/compiler/BUILD.gn:164 This argument is to control whether enabling text section splitting in the final binary. When enabled, the separated text sections with prefix '.text.hot', '.text.unlikely', '.text.startup' and '.text.exit' will not be merged to '.text' section. This allows us to identify the hot code section - ('.text.hot') in the binary which may be mlocked or mapped to huge page to - reduce TLB misses which gives performance improvement on cpu usage. - The gold linker by default has text section splitting enabled. + ('.text.hot') in the binary, which allows our data collection pipelines to + more easily identify code that we assume to be hot/cold that doesn't turn + out to be such in the field. use_thin_lto Current value = true - From //out/thorium/args.gn:58 + From //out/test/args.gn:90 Overridden from the default = true - From //build/config/compiler/compiler.gni:89 + From //build/config/compiler/compiler.gni:92 + +use_typeface_fontations + Current value (from the default) = true + From //build/config/rust.gni:127 + + Enable experimental Fontations Rust font stack. use_udev - Current value (from the default) = true - From //build/config/features.gni:29 + Current value (from the default) = false + From //build/config/features.gni:35 libudev usage. This currently only affects the content layer. -use_unix_sockets - Current value (from the default) = false - From //chromecast/chromecast.gni:125 - - Whether use unix sockets in Cast input/output stream. - use_unofficial_version_number Current value (from the default) = true - From //components/version_info/BUILD.gn:10 + From //base/version_info/use_unofficial_version_number.gni:8 use_v4l2_codec Current value (from the default) = false - From //media/gpu/args.gni:22 - - Indicates if Video4Linux2 codec is used. This is used for all CrOS - platforms which have v4l2 hardware encoder / decoder. - -use_v4l2_codec_aml - Current value (from the default) = false - From //media/gpu/args.gni:26 - - Indicates if Video4Linux2 AML encoder is used. This is used for AML - platforms which have v4l2 hardware encoder + From //media/gpu/args.gni:15 use_v4lplugin Current value (from the default) = false - From //media/gpu/args.gni:18 + From //media/gpu/args.gni:10 Indicates if V4L plugin is used. use_v8_context_snapshot Current value = true - From //out/thorium/args.gn:24 - Overridden from the default = true + From //out/test/args.gn:40 + Overridden from the default = false From //tools/v8_context_snapshot/v8_context_snapshot.gni:19 use_vaapi - Current value (from the default) = true - From //media/gpu/args.gni:32 + Current value (from the default) = false + From //media/gpu/args.gni:21 Indicates if VA-API-based hardware acceleration is to be used. This is typically the case on x86-based ChromeOS devices. - VA-API should also be compiled by default on x11-using linux devices + VA-API should also be compiled by default on x11/wayland linux devices using x86/x64. use_vaapi_image_codecs Current value (from the default) = false - From //media/gpu/args.gni:69 + From //media/gpu/args.gni:62 VA-API also allows decoding of images, but we don't want to use this outside of chromeos, even if video decoding is enabled. -use_vaapi_x11 - Current value (from the default) = true - From //media/gpu/args.gni:12 - use_vc4_minigbm Current value (from the default) = false From //third_party/minigbm/BUILD.gn:28 use_viz_debugger Current value (from the default) = false - From //components/viz/common/debugger/viz_debugger.gni:8 + From //components/viz/common/debugger/viz_debugger.gni:10 Indicates if the Viz Debugger is enabled. This is disabled by default on - official builds due to security and performance reasons. - -use_vr_assets_component - Current value = true - From //out/thorium/args.gn:41 - Overridden from the default = false - From //chrome/browser/vr/features.gni:12 - - Whether to register, download, etc. the VR assets component. + official builds due to security and performance reasons. test + crbug/1466891 Fuchia threading model does not play well with the + visual debugger multithreaded submission mechanism. use_wayland_gbm Current value (from the default) = true @@ -5136,17 +5900,9 @@ use_wayland_gbm Checks if Wayland must be compiled with dmabuf/gbm feature, which allows a multi-process hardware accelerated mode. -use_webaudio_ffmpeg - Current value = false - From //out/thorium/args.gn:39 - Overridden from the default = false - From //third_party/blink/renderer/config.gni:46 - - If true, ffmpeg will be used for computing FFTs for WebAudio - use_webaudio_pffft Current value = true - From //out/thorium/args.gn:40 + From //out/test/args.gn:57 Overridden from the default = true From //third_party/blink/renderer/config.gni:20 @@ -5158,7 +5914,7 @@ use_wuffs_gif_parser From //third_party/wuffs/config.gni:6 use_xkbcommon - Current value (from the default) = true + Current value (from the default) = false From //ui/base/ui_features.gni:10 use_zucchini @@ -5170,7 +5926,7 @@ use_zucchini using_mismatched_sample_profile Current value (from the default) = false - From //build/config/compiler/compiler.gni:102 + From //build/config/compiler/compiler.gni:106 Whether we're using a sample profile collected on an architecture different than the one we're compiling for. @@ -5180,60 +5936,60 @@ using_mismatched_sample_profile v8_advanced_bigint_algorithms Current value (from the default) = true - From //v8/gni/v8.gni:96 + From //v8/gni/v8.gni:139 Enable advanced BigInt algorithms, costing about 10-30 KB binary size depending on platform. Disabled on Android to save binary size. v8_allocation_site_tracking Current value (from the default) = true - From //v8/BUILD.gn:355 + From //v8/BUILD.gn:382 Enable global allocation site tracking. v8_android_log_stdout Current value (from the default) = false - From //v8/BUILD.gn:31 + From //v8/BUILD.gn:29 Print to stdout on Android. v8_annotate_torque_ir Current value (from the default) = false - From //v8/BUILD.gn:277 + From //v8/BUILD.gn:307 Generate comments describing the Torque intermediate representation. v8_builtins_profiling_log_file - Current value (from the default) = "" - From //v8/BUILD.gn:190 + Current value (from the default) = "default" + From //v8/BUILD.gn:218 Provides the given V8 log file as an input to mksnapshot, where it can be used for profile-guided optimization of builtins. To do profile-guided optimizations of builtins: 1. Build with v8_enable_builtins_profiling = true - 2. Run your chosen workload with the --turbo-profiling-log-builtins flag. + 2. Run your chosen workload with the --turbo-profiling-output flag. For Chrome, the invocation might look like this: chrome --no-sandbox --disable-extensions - --js-flags="--turbo-profiling-log-builtins --logfile=path/to/v8.log" + --js-flags="--turbo-profiling-output=v8.builtins.pgo" "http://localhost/test-suite" - 3. Run tools/get_hints.py to produce the branch hints, selecting min_count - and threshold_ratio as you wish. + 3. Run tools/builtins-pgo/get_hints.py to produce the branch hints, + selecting min_count and threshold_ratio as you wish. 4. Optionally repeat steps 2-3 for additional workloads, and use - tools/combine_hints.py to combine the hints produced in step 3 into a - single file. + tools/builtins-pgo/combine_hints.py to combine the hints produced in + step 3 into a single file. 5. Build again with v8_builtins_profiling_log_file set to the file created in step 3 or 4. v8_can_use_fpu_instructions Current value (from the default) = true - From //v8/BUILD.gn:223 + From //v8/BUILD.gn:247 Similar to vfp but on MIPS. v8_check_header_includes Current value (from the default) = false - From //v8/BUILD.gn:238 + From //v8/BUILD.gn:262 Check that each header can be included in isolation (requires also setting the "check_v8_header_includes" gclient variable to run a @@ -5241,58 +5997,48 @@ v8_check_header_includes v8_code_comments Current value (from the default) = "" - From //v8/BUILD.gn:107 + From //v8/BUILD.gn:119 Allow runtime-enabled code comments (with --code-comments). Enabled by default in debug builds. Sets -dV8_CODE_COMMENTS -v8_code_coverage - Current value (from the default) = false - From //v8/gni/v8.gni:14 - - Set flags for tracking code coverage. Uses gcov with gcc and sanitizer - coverage with clang. - v8_context_snapshot_filename Current value (from the default) = "v8_context_snapshot.bin" - From //tools/v8_context_snapshot/v8_context_snapshot.gni:44 + From //tools/v8_context_snapshot/v8_context_snapshot.gni:43 v8_control_flow_integrity Current value (from the default) = false - From //v8/BUILD.gn:286 - - Enable control-flow integrity features, such as pointer authentication for - ARM64. + From //v8/BUILD.gn:318 v8_correctness_fuzzer Current value (from the default) = false - From //v8/gni/v8.gni:17 + From //v8/gni/v8.gni:16 Includes files needed for correctness fuzzing. v8_current_cpu Current value (from the default) = "x64" - From //build/config/v8_target_cpu.gni:60 + From //build/config/v8_target_cpu.gni:63 This argument is declared here so that it can be overridden in toolchains. It should never be explicitly set by the user. v8_custom_deps Current value (from the default) = "" - From //v8/BUILD.gn:34 + From //v8/BUILD.gn:32 Dynamically set an additional dependency from v8/custom_deps. v8_deprecation_warnings Current value (from the default) = true - From //v8/BUILD.gn:56 + From //v8/BUILD.gn:57 Enable compiler warnings when using V8_DEPRECATED apis. v8_dict_property_const_tracking Current value (from the default) = false - From //v8/BUILD.gn:339 + From //v8/BUILD.gn:361 Experimental feature for tracking constness of properties in non-global dictionaries. Enabling this also always keeps prototypes in dict mode, @@ -5301,50 +6047,64 @@ v8_dict_property_const_tracking v8_disable_write_barriers Current value (from the default) = false - From //v8/BUILD.gn:258 + From //v8/BUILD.gn:282 Disable write barriers when GCs are non-incremental and heap has single generation. v8_embed_script Current value (from the default) = "" - From //v8/BUILD.gn:62 + From //v8/BUILD.gn:63 Embeds the given script into the snapshot. v8_embedder_string Current value (from the default) = "" - From //v8/BUILD.gn:65 + From //v8/BUILD.gn:66 Allows the embedder to add a custom suffix to the version string. v8_enable_31bit_smis_on_64bit_arch Current value (from the default) = false - From //v8/BUILD.gn:126 + From //v8/BUILD.gn:145 v8_enable_allocation_folding Current value (from the default) = true - From //v8/BUILD.gn:349 + From //v8/BUILD.gn:376 Enable allocation folding globally (sets -dV8_ALLOCATION_FOLDING). When it's disabled, the --turbo-allocation-folding runtime flag will be ignored. v8_enable_atomic_object_field_writes Current value (from the default) = "" - From //v8/BUILD.gn:147 + From //v8/BUILD.gn:166 Sets -dV8_ATOMIC_OBJECT_FIELD_WRITES and turns all field write operations into relaxed atomic operations. v8_enable_backtrace Current value (from the default) = "" - From //v8/gni/v8.gni:33 + From //v8/gni/v8.gni:32 Support for backtrace_symbols on linux. +v8_enable_builtin_jump_table_switch + Current value (from the default) = true + From //v8/BUILD.gn:422 + + Enable jump table switch for built-in. + +v8_enable_builtins_optimization + Current value = true + From //out/test/args.gn:36 + Overridden from the default = "" + From //v8/gni/v8.gni:39 + + Includes profiles to optimize builtins. + v8_enable_builtins_profiling Current value (from the default) = false - From //v8/BUILD.gn:165 + From //v8/BUILD.gn:184 Runs mksnapshot with --turbo-profiling. After building in this configuration, any subsequent run of d8 will output information about usage @@ -5352,36 +6112,57 @@ v8_enable_builtins_profiling v8_enable_builtins_profiling_verbose Current value (from the default) = false - From //v8/BUILD.gn:171 + From //v8/BUILD.gn:190 Runs mksnapshot with --turbo-profiling-verbose. After building in this configuration, any subsequent run of d8 will output information about usage of basic blocks in builtins, including the schedule and disassembly of all used builtins. +v8_enable_builtins_reordering + Current value (from the default) = true + From //v8/BUILD.gn:199 + + This build flag is used to control whether reorder builtins acoording to + the call graph with C3 algorithm based builtin PGO profiling. + +v8_enable_cet_ibt + Current value (from the default) = false + From //v8/gni/v8.gni:160 + + Emit CET IBT landing pad instructions in JIT generated code (experimental). + v8_enable_cet_shadow_stack Current value (from the default) = false - From //v8/BUILD.gn:365 + From //v8/gni/v8.gni:157 Change code emission and runtime features to be CET shadow-stack compliant (incomplete and experimental). v8_enable_concurrent_marking Current value (from the default) = true - From //v8/BUILD.gn:151 + From //v8/BUILD.gn:170 Controls the default value of v8_enable_concurrent_marking_state. See the default setting code below. v8_enable_conservative_stack_scanning Current value (from the default) = false - From //v8/gni/v8.gni:79 + From //v8/gni/v8.gni:100 Scan the call stack conservatively during garbage collection. +v8_enable_continuation_preserved_embedder_data + Current value (from the default) = true + From //v8/BUILD.gn:372 + + Allow embedder data to be saved on continuations. Used to support + TaskAttribution and `scheduler.yield()`. + The flag enables disabling the feature, to test this data's overhead. + v8_enable_debug_code Current value (from the default) = "" - From //v8/BUILD.gn:112 + From //v8/BUILD.gn:124 Allow runtime-enabled debug code (with --debug-code). Enabled by default in debug builds. @@ -5389,20 +6170,45 @@ v8_enable_debug_code v8_enable_debugging_features Current value (from the default) = false - From //v8/BUILD.gn:38 + From //v8/BUILD.gn:36 Turns on all V8 debug features. Enables running V8 in a pseudo debug mode within a release Chrome. +v8_enable_direct_handle + Current value (from the default) = "" + From //v8/gni/v8.gni:103 + + Use direct pointers in internal (direct) handles. + +v8_enable_direct_local + Current value (from the default) = false + From //v8/gni/v8.gni:106 + + Use direct pointers in local handles. + v8_enable_disassembler Current value (from the default) = "" - From //v8/BUILD.gn:68 + From //v8/BUILD.gn:69 Sets -dENABLE_DISASSEMBLER. +v8_enable_etw_stack_walking + Current value (from the default) = true + From //v8/BUILD.gn:45 + + Sets -DV8_ENABLE_ETW_STACK_WALKING. Enables ETW Stack Walking + +v8_enable_extensible_ro_snapshot + Current value (from the default) = true + From //v8/BUILD.gn:428 + + Whether custom embedder snapshots may extend (= allocate new objects in) + ReadOnlySpace. + v8_enable_external_code_space Current value (from the default) = "" - From //v8/BUILD.gn:202 + From //v8/BUILD.gn:230 Enable support for external code range relative to the pointer compression cage. @@ -5410,60 +6216,62 @@ v8_enable_external_code_space v8_enable_fast_mksnapshot Current value (from the default) = false - From //v8/BUILD.gn:92 + From //v8/BUILD.gn:104 Enable fast mksnapshot runs. v8_enable_fast_torque - Current value (from the default) = "" - From //v8/BUILD.gn:95 + Current value = true + From //out/test/args.gn:35 + Overridden from the default = "" + From //v8/BUILD.gn:107 Optimize code for Torque executable, even during a debug build. v8_enable_future Current value (from the default) = false - From //v8/BUILD.gn:41 + From //v8/BUILD.gn:39 Sets -DV8_ENABLE_FUTURE. v8_enable_gdbjit Current value = false From //.gn:36 - Overridden from the default = true - From //v8/BUILD.gn:231 + Overridden from the default = false + From //v8/BUILD.gn:255 v8_enable_google_benchmark Current value (from the default) = false - From //v8/gni/v8.gni:81 + From //v8/gni/v8.gni:111 v8_enable_handle_zapping - Current value (from the default) = true - From //v8/BUILD.gn:86 + Current value (from the default) = false + From //v8/BUILD.gn:98 Sets -dENABLE_HANDLE_ZAPPING. v8_enable_heap_snapshot_verify Current value (from the default) = "" - From //v8/BUILD.gn:352 + From //v8/BUILD.gn:379 Enable runtime verification of heap snapshots produced for devtools. v8_enable_hugepage Current value (from the default) = false - From //v8/BUILD.gn:83 + From //v8/BUILD.gn:84 Sets -dENABLE_HUGEPAGE v8_enable_i18n_support Current value (from the default) = true - From //v8/gni/v8.gni:41 + From //v8/gni/v8.gni:43 Enable ECMAScript Internationalization API. Enabling this feature will add a dependency on the ICU library. v8_enable_ignition_dispatch_counting Current value (from the default) = false - From //v8/BUILD.gn:160 + From //v8/BUILD.gn:179 Sets -dV8_IGNITION_DISPATCH_COUNTING. Enables counting frequencies of bytecode dispatches. After building in this @@ -5475,360 +6283,445 @@ v8_enable_ignition_dispatch_counting v8_enable_javascript_promise_hooks Current value (from the default) = false - From //v8/BUILD.gn:345 + From //v8/BUILD.gn:367 Allow for JS promise hooks (instead of just C++). v8_enable_lazy_source_positions Current value (from the default) = true - From //v8/BUILD.gn:245 + From //v8/BUILD.gn:269 Enable lazy source positions by default. v8_enable_lite_mode Current value (from the default) = false - From //v8/gni/v8.gni:64 + From //v8/gni/v8.gni:70 Lite mode disables a number of performance optimizations to reduce memory at the cost of performance. Sets -DV8_LITE_MODE. +v8_enable_local_off_stack_check + Current value (from the default) = false + From //v8/gni/v8.gni:109 + + Check for off-stack allocated local handles. + v8_enable_maglev - Current value (from the default) = "" - From //v8/BUILD.gn:206 + Current value = true + From //out/test/args.gn:37 + Overridden from the default = "" + From //v8/gni/v8.gni:78 Enable the Maglev compiler. Sets -dV8_ENABLE_MAGLEV +v8_enable_maglev_graph_printer + Current value (from the default) = false + From //v8/BUILD.gn:415 + + Enable Maglev's graph printer. + Sets -DV8_ENABLE_MAGLEV_GRAPH_PRINTER. + v8_enable_map_packing Current value (from the default) = false - From //v8/BUILD.gn:342 + From //v8/BUILD.gn:364 Enable map packing & unpacking (sets -dV8_MAP_PACKING). v8_enable_object_print Current value (from the default) = "" - From //v8/BUILD.gn:129 + From //v8/BUILD.gn:148 Sets -dOBJECT_PRINT. v8_enable_pointer_compression Current value (from the default) = "" - From //v8/BUILD.gn:124 + From //v8/BUILD.gn:143 Enable pointer compression (sets -dV8_COMPRESS_POINTERS). +v8_enable_pointer_compression_8gb + Current value (from the default) = "" + From //v8/BUILD.gn:392 + + Enables pointer compression for 8GB heaps. + Sets -DV8_COMPRESS_POINTERS_8GB. + v8_enable_pointer_compression_shared_cage Current value (from the default) = "" - From //v8/BUILD.gn:125 + From //v8/BUILD.gn:144 v8_enable_precise_zone_stats Current value (from the default) = false - From //v8/BUILD.gn:325 + From //v8/BUILD.gn:347 Experimental feature for collecting per-class zone memory stats. Requires use_rtti = true +v8_enable_private_mapping_fork_optimization + Current value (from the default) = false + From //v8/BUILD.gn:95 + + Sets -dV8_ENABLE_PRIVATE_MAPPING_FORK_OPTIMIZATION. + + This flag speeds up the performance of fork/execve on Linux systems for + embedders which use it (like Node.js). It works by marking the pages that + V8 allocates as MADV_DONTFORK. Without MADV_DONTFORK, the Linux kernel + spends a long time manipulating page mappings on fork and exec which the + child process doesn't generally need to access. + + See v8:7381 for more details. + v8_enable_regexp_interpreter_threaded_dispatch Current value (from the default) = true - From //v8/BUILD.gn:270 + From //v8/BUILD.gn:294 Use token threaded dispatch for the regular expression interpreter. Use switch-based dispatch if this is false v8_enable_runtime_call_stats Current value (from the default) = true - From //v8/gni/v8.gni:73 - - Enable runtime call stats. + From //v8/gni/v8.gni:94 v8_enable_sandbox Current value (from the default) = "" - From //v8/BUILD.gn:305 + From //v8/BUILD.gn:338 Enable the experimental V8 sandbox. Sets -DV8_ENABLE_SANDBOX. -v8_enable_sandbox_future - Current value (from the default) = false - From //v8/BUILD.gn:316 - - Enable all available sandbox features. Implies v8_enable_sandbox. - -v8_enable_sandboxed_external_pointers - Current value (from the default) = false - From //v8/BUILD.gn:309 - - Enable external pointer sandboxing. Requires v8_enable_sandbox. - Sets -DV8_SANDBOXED_EXTERNAL_POINTERS. - -v8_enable_sandboxed_pointers - Current value (from the default) = false - From //v8/BUILD.gn:313 - - Enable sandboxed pointers. Requires v8_enable_sandbox. - Sets -DV8_SANDBOXED_POINTERS. - v8_enable_shared_ro_heap Current value (from the default) = "" - From //v8/BUILD.gn:242 + From //v8/BUILD.gn:266 Enable sharing read-only space across isolates. Sets -DV8_SHARED_RO_HEAP. v8_enable_short_builtin_calls Current value (from the default) = "" - From //v8/BUILD.gn:197 + From //v8/BUILD.gn:225 Enable short builtins call instruction sequences by un-embedding builtins. Sets -dV8_SHORT_BUILTIN_CALLS v8_enable_single_generation Current value (from the default) = "" - From //v8/BUILD.gn:266 + From //v8/BUILD.gn:290 Redirect allocation in young generation so that there will be only one single generation. v8_enable_slow_dchecks Current value (from the default) = false - From //v8/BUILD.gn:89 + From //v8/BUILD.gn:101 Enable slow dchecks. +v8_enable_slow_tracing + Current value (from the default) = false + From //v8/BUILD.gn:419 + + Enable slow tracing, e.g., tracing on every instruction or Turbofan node. + Sets -DV8_ENABLE_SLOW_TRACING. + v8_enable_snapshot_code_comments Current value (from the default) = false - From //v8/BUILD.gn:102 + From //v8/BUILD.gn:114 Enable code comments for builtins in the snapshot (impacts performance). This also enables v8_code_comments. v8_enable_snapshot_compression Current value (from the default) = false - From //v8/BUILD.gn:281 + From //v8/BUILD.gn:311 v8_enable_snapshot_native_code_counters Current value (from the default) = "" - From //v8/BUILD.gn:118 + From //v8/BUILD.gn:130 Enable native counters from the snapshot (impacts performance, sets -dV8_SNAPSHOT_NATIVE_CODE_COUNTERS). This option will generate extra code in the snapshot to increment counters, as per the --native-code-counters flag. +v8_enable_sparkplug + Current value (from the default) = "" + From //v8/BUILD.gn:411 + + Enable Sparkplug + Sets -DV8_ENABLE_SPARKPLUG. + +v8_enable_static_roots + Current value (from the default) = "" + From //v8/BUILD.gn:133 + + Use pre-generated static root pointer values from static-roots.h. + +v8_enable_static_roots_generation + Current value (from the default) = false + From //v8/BUILD.gn:137 + + Mode used by gen-static-roots.py to have a heap layout which is identical + to when v8_enable_static_roots is enabled. + v8_enable_swiss_name_dictionary Current value (from the default) = false - From //v8/BUILD.gn:329 + From //v8/BUILD.gn:351 Experimental feature that uses SwissNameDictionary instead of NameDictionary as the backing store for all dictionary mode objects. v8_enable_system_instrumentation Current value (from the default) = false - From //v8/BUILD.gn:44 + From //v8/BUILD.gn:42 - Sets -DSYSTEM_INSTRUMENTATION. Enables OS-dependent event tracing + Sets -DENABLE_SYSTEM_INSTRUMENTATION. Enables OS-dependent event tracing v8_enable_test_features Current value (from the default) = "" - From //v8/BUILD.gn:193 + From //v8/BUILD.gn:221 Enables various testing features. v8_enable_third_party_heap Current value (from the default) = false - From //v8/BUILD.gn:248 + From //v8/BUILD.gn:272 Enable third party HEAP library v8_enable_trace_baseline_exec Current value (from the default) = false - From //v8/BUILD.gn:140 + From //v8/BUILD.gn:159 v8_enable_trace_feedback_updates Current value (from the default) = false - From //v8/BUILD.gn:143 + From //v8/BUILD.gn:162 Sets -dV8_TRACE_FEEDBACK_UPDATES. v8_enable_trace_ignition Current value (from the default) = false - From //v8/BUILD.gn:139 + From //v8/BUILD.gn:158 v8_enable_trace_maps Current value (from the default) = "" - From //v8/BUILD.gn:132 + From //v8/BUILD.gn:151 Sets -dV8_TRACE_MAPS. v8_enable_trace_unoptimized Current value (from the default) = "" - From //v8/BUILD.gn:138 + From //v8/BUILD.gn:157 Sets -dV8_TRACE_UNOPTIMIZED. +v8_enable_turbofan + Current value = true + From //out/test/args.gn:38 + Overridden from the default = "" + From //v8/gni/v8.gni:74 + + Enable the Turbofan compiler. + Sets -dV8_ENABLE_TURBOFAN. + v8_enable_unconditional_write_barriers Current value (from the default) = false - From //v8/BUILD.gn:262 + From //v8/BUILD.gn:286 Ensure that write barriers are always used. Useful for debugging purposes. v8_enable_v8_checks Current value (from the default) = "" - From //v8/BUILD.gn:135 + From //v8/BUILD.gn:154 Sets -dV8_ENABLE_CHECKS. v8_enable_verify_csa Current value (from the default) = false - From //v8/BUILD.gn:121 + From //v8/BUILD.gn:140 Enable code-generation-time checking of types in the CodeStubAssembler. v8_enable_verify_heap Current value (from the default) = "" - From //v8/BUILD.gn:50 + From //v8/BUILD.gn:51 Sets -DVERIFY_HEAP. v8_enable_verify_predictable Current value (from the default) = false - From //v8/BUILD.gn:53 + From //v8/BUILD.gn:54 Sets -DVERIFY_PREDICTABLE v8_enable_vtunejit Current value (from the default) = false - From //v8/BUILD.gn:77 + From //v8/BUILD.gn:78 Sets -dENABLE_VTUNE_JIT_INTERFACE. v8_enable_vtunetracemark Current value (from the default) = false - From //v8/BUILD.gn:80 + From //v8/BUILD.gn:81 Sets -dENABLE_VTUNE_TRACEMARK. v8_enable_wasm_gdb_remote_debugging Current value (from the default) = false - From //v8/gni/v8.gni:59 + From //v8/gni/v8.gni:65 Enable WebAssembly debugging via GDB-remote protocol. +v8_enable_wasm_simd256_revec + Current value = true + From //out/test/args.gn:39 + Overridden from the default = false + From //v8/gni/v8.gni:88 + + Enable 256-bit long vector re-vectorization pass in WASM compilation pipeline. + v8_enable_webassembly Current value (from the default) = "" - From //v8/gni/v8.gni:70 + From //v8/gni/v8.gni:85 Include support for WebAssembly. If disabled, the 'WebAssembly' global will not be available, and embedder APIs to generate WebAssembly modules will fail. Also, asm.js will not be translated to WebAssembly and will be executed as standard JavaScript instead. + Sets -dV8_ENABLE_WEBASSEMBLY. v8_enable_zone_compression Current value (from the default) = "" - From //v8/BUILD.gn:301 + From //v8/BUILD.gn:334 Enable V8 zone compression experimental feature. Sets -DV8_COMPRESS_ZONES. v8_etw_guid Current value (from the default) = "" - From //v8/BUILD.gn:47 + From //v8/BUILD.gn:48 Sets the GUID for the ETW provider v8_expose_memory_corruption_api Current value (from the default) = false - From //v8/BUILD.gn:321 + From //v8/BUILD.gn:343 Expose the memory corruption API to JavaScript. Useful for testing the sandbox. WARNING This will expose builtins that (by design) cause memory corruption. Sets -DV8_EXPOSE_MEMORY_CORRUPTION_API +v8_expose_public_symbols + Current value (from the default) = "" + From //v8/gni/v8.gni:53 + + Expose public symbols for native modules of Node.js and Electron. Default + is false. + v8_expose_symbols Current value (from the default) = false - From //v8/gni/v8.gni:50 + From //v8/gni/v8.gni:56 - Expose symbols for dynamic linking. - -v8_fuchsia_use_vmex_resource - Current value (from the default) = false - From //v8/BUILD.gn:372 - - Get VMEX priviledge at startup. - It allows to run V8 without "deprecated-ambient-replace-as-executable". - Sets -DV8_USE_VMEX_RESOURCE. - TODO(victorgomes): Remove this flag once Chormium no longer needs - the deprecated feature. + Deprecated for v8_expose_public_symbols. v8_fuzzilli Current value (from the default) = false - From //v8/gni/v8.gni:76 + From //v8/gni/v8.gni:97 Add fuzzilli fuzzer support. v8_gcmole Current value (from the default) = false - From //v8/gni/v8.gni:27 + From //v8/gni/v8.gni:26 Indicate if gcmole was fetched as a hook to make it available on swarming. v8_generate_external_defines_header Current value (from the default) = false - From //v8/BUILD.gn:333 + From //v8/BUILD.gn:355 If enabled then macro definitions that are used in externally visible header files are placed in a separate header file v8-gn.h. v8_has_valgrind Current value (from the default) = false - From //v8/gni/v8.gni:24 + From //v8/gni/v8.gni:23 Indicate if valgrind was fetched as a custom deps to make it available on swarming. +v8_icu_path + Current value (from the default) = "//third_party/icu" + From //v8/gni/v8.gni:150 + + Location of icu. + v8_imminent_deprecation_warnings Current value = false From //.gn:37 Overridden from the default = true - From //v8/BUILD.gn:59 + From //v8/BUILD.gn:60 Enable compiler warnings when using V8_DEPRECATE_SOON apis. +v8_is_on_release_branch + Current value (from the default) = false + From //v8/gni/release_branch_toggle.gni:9 + +v8_jitless + Current value (from the default) = false + From //v8/BUILD.gn:407 + + Enable jitless mode, including compile-time optimizations. Note that even + when this is set to 'false', one can run V8 in jitless mode at runtime by + passing the `--jitless` flag; but then you miss out on compile-time + optimizations. + iOS (non-simulator) does not have executable pages for 3rd party + applications yet so disable jit. + +v8_log_builtins_block_count_input + Current value (from the default) = "" + From //v8/BUILD.gn:195 + + This build flag is used to input a builtin pgo file containing raw + execution counts (as opposed to branch hints), which are embedded into + the `--trace-turbo` .json file from `mksnapshot`. + v8_monolithic Current value (from the default) = false - From //v8/gni/v8.gni:47 + From //v8/gni/v8.gni:49 Enable monolithic static library for embedders. v8_multi_arch_build Current value (from the default) = false - From //v8/gni/v8.gni:20 + From //v8/gni/v8.gni:19 Adds additional compile target for building multiple architectures at once. v8_no_inline Current value (from the default) = false - From //v8/BUILD.gn:217 + From //v8/BUILD.gn:241 Switches off inlining in V8. v8_optimized_debug Current value (from the default) = true - From //v8/gni/v8.gni:30 + From //v8/gni/v8.gni:29 Turns on compiler optimizations in V8 in Debug build. v8_os_page_size Current value (from the default) = "0" - From //v8/BUILD.gn:220 + From //v8/BUILD.gn:244 Override OS page size when generating snapshot v8_postmortem_support Current value (from the default) = false - From //v8/BUILD.gn:211 + From //v8/BUILD.gn:235 With post mortem support enabled, metadata is embedded into libv8 that describes various parameters of the VM for use by debuggers. See @@ -5836,19 +6729,23 @@ v8_postmortem_support v8_promise_internal_field_count Current value (from the default) = 0 - From //v8/BUILD.gn:71 + From //v8/BUILD.gn:72 Sets the number of internal fields on promise objects. v8_scriptormodule_legacy_lifetime Current value (from the default) = false - From //v8/BUILD.gn:361 + From //v8/BUILD.gn:388 TODO(cbruni, v8:12302): Remove once API is migrated Enable legacy mode for ScriptOrModule's lifetime. By default it's a temporary object, if enabled it will be kept alive by the parent Script. This is only used by nodejs. +v8_shortcut_strings_in_minor_ms + Current value (from the default) = false + From //v8/BUILD.gn:424 + v8_snapshot_toolchain Current value (from the default) = "" From //v8/gni/snapshot_toolchain.gni:34 @@ -5859,15 +6756,15 @@ v8_snapshot_toolchain v8_static_library Current value (from the default) = false - From //v8/gni/v8.gni:44 + From //v8/gni/v8.gni:46 Use static libraries instead of source_sets. v8_symbol_level Current value = 0 - From //out/thorium/args.gn:23 + From //out/test/args.gn:34 Overridden from the default = 0 - From //v8/gni/v8.gni:56 + From //v8/gni/v8.gni:62 Override global symbol level setting for v8. @@ -5903,63 +6800,96 @@ v8_target_cpu v8_third_party_heap_files Current value (from the default) = [] - From //v8/BUILD.gn:254 + From //v8/BUILD.gn:278 Source code used by third party heap v8_third_party_heap_libs Current value (from the default) = [] - From //v8/BUILD.gn:251 + From //v8/BUILD.gn:275 Libaries used by third party heap v8_typed_array_max_size_in_heap Current value (from the default) = 64 - From //v8/BUILD.gn:229 + From //v8/BUILD.gn:253 Controls the threshold for on-heap/off-heap Typed Arrays. v8_use_external_startup_data Current value (from the default) = "" - From //v8/gni/v8.gni:37 + From //v8/gni/v8.gni:36 Use external files for startup data blobs: the JS builtins sources and the start snapshot. +v8_use_libm_trig_functions + Current value (from the default) = true + From //v8/gni/v8.gni:142 + + TODO: macros for determining endian type are clang specific. + v8_use_mips_abi_hardfloat Current value (from the default) = true - From //v8/BUILD.gn:226 + From //v8/BUILD.gn:250 Similar to the ARM hard float ABI but on MIPS. v8_use_perfetto Current value (from the default) = false - From //v8/gni/v8.gni:53 + From //v8/gni/v8.gni:59 Implement tracing using Perfetto (https://perfetto.dev). v8_use_siphash Current value (from the default) = false - From //v8/BUILD.gn:214 + From //v8/BUILD.gn:238 Use Siphash as added protection against hash flooding attacks. +v8_use_zlib + Current value (from the default) = true + From //v8/BUILD.gn:396 + + Compile V8 using zlib as dependency. + Sets -DV8_USE_ZLIB + +v8_value_deserializer_hard_fail + Current value (from the default) = false + From //v8/BUILD.gn:399 + + Make ValueDeserializer crash if the data to deserialize is invalid. + +v8_verify_builtins_compatibility + Current value (from the default) = false + From //v8/BUILD.gn:297 + + Enforce equality of builtins hashes from compatible architectures. + +v8_verify_deterministic_mksnapshot + Current value (from the default) = false + From //v8/BUILD.gn:300 + + Check mksnapshot determinism by running it multiple times. + v8_verify_torque_generation_invariance Current value (from the default) = false - From //v8/BUILD.gn:274 + From //v8/BUILD.gn:304 Enable additional targets necessary for verification of torque file generation v8_win64_unwinding_info Current value (from the default) = true - From //v8/BUILD.gn:98 + From //v8/BUILD.gn:110 Enable the registration of unwinding info for Windows x64 and ARM64. -version_path - Current value (from the default) = "//chrome/chrome_cleaner/constants/VERSION" - From //chrome/chrome_cleaner/constants/args.gni:8 +v8_zlib_path + Current value (from the default) = "//third_party/zlib" + From //v8/gni/v8.gni:153 + + Location of zlib. visual_studio_path Current value (from the default) = "" @@ -5967,14 +6897,15 @@ visual_studio_path Path to Visual Studio. If empty, the default is used which is to use the automatic toolchain in depot_tools. If set, you must also set the - visual_studio_version and wdk_path. + visual_studio_version, wdk_path and windows_sdk_version. visual_studio_version - Current value (from the default) = "" - From //build/config/win/visual_studio_version.gni:13 + Current value = "2022" + From //out/test/args.gn:6 + Overridden from the default = "" + From //build/config/win/visual_studio_version.gni:12 Version of Visual Studio pointed to by the visual_studio_path. - Currently always "2015". vma_vulkan_headers_dir Current value (from the default) = "//third_party/vulkan-deps/vulkan-headers/src" @@ -5982,26 +6913,14 @@ vma_vulkan_headers_dir wdk_path Current value (from the default) = "" - From //build/config/win/visual_studio_version.gni:17 + From //build/config/win/visual_studio_version.gni:16 Directory of the Windows driver kit. If visual_studio_path is empty, this will be auto-filled. -weblayer_in_split - Current value (from the default) = true - From //weblayer/variables.gni:12 - - Whether WebLayer will be included as a DFM. - -webview_includes_weblayer - Current value (from the default) = true - From //weblayer/variables.gni:9 - - Include the //weblayer code in WebView implementation APKs. - widevine_root Current value (from the default) = "." - From //third_party/widevine/cdm/widevine.gni:62 + From //third_party/widevine/cdm/widevine.gni:63 Relative root directory to //third_party/widevine/cdm for CDM files. Can be overridden if the CDM files are located in other places. @@ -6016,7 +6935,9 @@ win_console_app used for development. Only has an effect on Windows builds. win_enable_cfg_guards - Current value (from the default) = true + Current value = true + From //out/test/args.gn:32 + Overridden from the default = true From //build/config/win/control_flow_guard.gni:10 Set this to true to enable generation of CFG indirect call dispatch @@ -6024,15 +6945,58 @@ win_enable_cfg_guards win_linker_timing Current value (from the default) = false - From //build/config/win/BUILD.gn:20 + From //build/config/win/BUILD.gn:22 Turn this on to have the linker output extra timing information. +win_toolchain_data_x64 + Current value (from the default) = { + include_flags_I = "\"/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Include/10.0.22621.0/um\" \"/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Include/10.0.22621.0/shared\" \"/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Include/10.0.22621.0/winrt\" \"/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Include/10.0.22621.0/ucrt\" /I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/include /I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/atlmfc/include" + include_flags_I_list = ["/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Include/10.0.22621.0/um", "/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Include/10.0.22621.0/shared", "/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Include/10.0.22621.0/winrt", "/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Include/10.0.22621.0/ucrt", "/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/include", "/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/atlmfc/include"] + include_flags_imsvc = "/winsysroot../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1" + include_flags_imsvc_list = ["/winsysroot../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1"] + libpath_flags = "-libpath:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/lib/x64 \"-libpath:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Lib/10.0.22621.0/um/x64\" \"-libpath:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Lib/10.0.22621.0/ucrt/x64\" -libpath:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/atlmfc/lib/x64" + libpath_flags_list = ["-libpath:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/lib/x64", "-libpath:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Lib/10.0.22621.0/um/x64", "-libpath:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Lib/10.0.22621.0/ucrt/x64", "-libpath:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/atlmfc/lib/x64"] + libpath_lldlink_flags = "/winsysroot:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1" + libpath_lldlink_flags_list = ["/winsysroot:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1"] + paths = "/home/alex/chromium/src/third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/sys64:/home/alex/chromium/src/third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/sys32:/home/alex/chromium/src/third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/sysarm64:/usr/bin:/home/alex/chromium/src/third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/bin/10.0.22621.0/x64:/home/alex/chromium/src/third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/bin/HostX64/x64:/home/alex/.cargo/bin:/home/alex/.nvm/versions/node/v16.20.2/bin:/home/alex/.local/bin:/home/alex/bin:/home/alex/depot_tools:/home/alex/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin" + vc_bin_dir = "/home/alex/chromium/src/third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/bin/HostX64/x64" +} + From //build/toolchain/win/win_toolchain_data.gni:21 + +win_toolchain_data_x86 + Current value (from the default) = { + include_flags_I = "\"/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Include/10.0.22621.0/um\" \"/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Include/10.0.22621.0/shared\" \"/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Include/10.0.22621.0/winrt\" \"/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Include/10.0.22621.0/ucrt\" /I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/include /I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/atlmfc/include" + include_flags_I_list = ["/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Include/10.0.22621.0/um", "/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Include/10.0.22621.0/shared", "/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Include/10.0.22621.0/winrt", "/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Include/10.0.22621.0/ucrt", "/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/include", "/I../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/atlmfc/include"] + include_flags_imsvc = "/winsysroot../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1" + include_flags_imsvc_list = ["/winsysroot../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1"] + libpath_flags = "-libpath:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/lib/x86 \"-libpath:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Lib/10.0.22621.0/um/x86\" \"-libpath:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Lib/10.0.22621.0/ucrt/x86\" -libpath:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/atlmfc/lib/x86" + libpath_flags_list = ["-libpath:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/lib/x86", "-libpath:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Lib/10.0.22621.0/um/x86", "-libpath:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/Lib/10.0.22621.0/ucrt/x86", "-libpath:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/atlmfc/lib/x86"] + libpath_lldlink_flags = "/winsysroot:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1" + libpath_lldlink_flags_list = ["/winsysroot:../../third_party/depot_tools/win_toolchain/vs_files/cacabf52f1"] + paths = "/home/alex/chromium/src/third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/sys64:/home/alex/chromium/src/third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/sys32:/home/alex/chromium/src/third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/sysarm64:/usr/bin:/home/alex/chromium/src/third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/Windows Kits/10/bin/10.0.22621.0/x64:/home/alex/chromium/src/third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/bin/HostX64/x86:/home/alex/chromium/src/third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/bin/HostX64/x64:/home/alex/.cargo/bin:/home/alex/.nvm/versions/node/v16.20.2/bin:/home/alex/.local/bin:/home/alex/bin:/home/alex/depot_tools:/home/alex/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin" + vc_bin_dir = "/home/alex/chromium/src/third_party/depot_tools/win_toolchain/vs_files/cacabf52f1/VC/Tools/MSVC/14.38.33130/bin/HostX64/x86" +} + From //build/toolchain/win/win_toolchain_data.gni:9 + windows_sdk_path Current value (from the default) = "C:\Program Files (x86)\Windows Kits\10" - From //build/config/win/visual_studio_version.gni:22 + From //build/config/win/visual_studio_version.gni:21 Full path to the Windows SDK, not including a backslash at the end. This value is the default location, override if you have a different installation location. +windows_sdk_version + Current value (from the default) = "" + From //build/config/win/visual_studio_version.gni:24 + + Version of the Windows SDK pointed to by the windows_sdk_path. + +zlib_symbols_visible + Current value (from the default) = false + From //third_party/zlib/BUILD.gn:11 + + Expose zlib's symbols, used by Node.js to provide zlib APIs for its native + modules. + diff --git a/thorium-libjxl b/thorium-libjxl index 7ac2c766..3d536724 160000 --- a/thorium-libjxl +++ b/thorium-libjxl @@ -1 +1 @@ -Subproject commit 7ac2c7664c8f4a9366a901b86b23e0be06977427 +Subproject commit 3d5367246114da48ee032ff3bd2e192707f8ada7