Introduce GN arg rtc_exclude_runtime_enabled_features_default.
This GN argument will be used to exclude the default implementation of
runtime_features_enabled in order to allow clients to provide a custom
implementation.
This will allow to land [1] without breaking Chromium.
[1] - https://webrtc-review.googlesource.com/c/src/+/100640
Bug: webrtc:9631
Change-Id: I4ce8ff12e277f81de42e272d8874d5bb3a4a2635
Reviewed-on: https://webrtc-review.googlesource.com/100641
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24753}
diff --git a/webrtc.gni b/webrtc.gni
index 5ed137f..150599f 100644
--- a/webrtc.gni
+++ b/webrtc.gni
@@ -54,6 +54,22 @@
# provided.
rtc_exclude_metrics_default = build_with_chromium
+ # WARNING: This argument doesn't have any effect on the WebRTC build until
+ # https://webrtc-review.googlesource.com/c/src/+/100640 will land.
+ # Setting this to true will define
+ # WEBRTC_EXCLUDE_RUNTIME_ENABLED_FEATURES_DEFAULT which will tell the
+ # pre-processor to remove the default definition of symbols needed to use
+ # runtime_enabled_features. In that case a new implementation needs to be
+ # provided.
+ if (build_with_chromium) {
+ # When WebRTC is built as part of Chromium it should exclude the default
+ # implementation of runtime_enabled_features unless it is building for NACL or
+ # Chromecast.
+ rtc_exclude_runtime_enabled_features_default = !is_nacl && !is_chromecast
+ } else {
+ rtc_exclude_runtime_enabled_features_default = false
+ }
+
# 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.