tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit a0911a12a1831d74112d830956c309c3db09ed66
parent ce0aa145df55caf3d429599264b02257f37e9074
Author: Dan Baker <dbaker@mozilla.com>
Date:   Wed, 22 Oct 2025 13:21:50 -0600

Bug 1995393 - Vendor libwebrtc from 76ed738ec2

Upstream commit: https://webrtc.googlesource.com/src/+/76ed738ec278b7e67216c41805a79333facdb3b6
    Delete field_trial::FindFullName

    Thus remove support for providing field trials implementation link-time.

    Bug: webrtc:42220378
    Change-Id: Ifd1240d81485820831195ebb915a3037d7dd8986
    Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/396880
    Reviewed-by: Harald Alvestrand <hta@webrtc.org>
    Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
    Cr-Commit-Position: refs/heads/main@{#45273}

Diffstat:
Mthird_party/libwebrtc/README.mozilla.last-vendor | 4++--
Mthird_party/libwebrtc/api/transport/field_trial_based_config.cc | 31++++++++++++++++++++++++++++++-
Mthird_party/libwebrtc/moz-patch-stack/s0001.patch | 4++--
Mthird_party/libwebrtc/moz-patch-stack/s0027.patch | 18+++++++++---------
Mthird_party/libwebrtc/moz-patch-stack/s0034.patch | 4++--
Mthird_party/libwebrtc/moz-patch-stack/s0045.patch | 4++--
Mthird_party/libwebrtc/moz-patch-stack/s0069.patch | 4++--
Mthird_party/libwebrtc/moz-patch-stack/s0101.patch | 4++--
Mthird_party/libwebrtc/moz-patch-stack/s0102.patch | 6+++---
Mthird_party/libwebrtc/moz-patch-stack/s0103.patch | 12++++++------
Mthird_party/libwebrtc/moz-patch-stack/s0104.patch | 8++++----
Mthird_party/libwebrtc/moz-patch-stack/s0108.patch | 6+++---
Mthird_party/libwebrtc/moz-patch-stack/s0117.patch | 4++--
Mthird_party/libwebrtc/system_wrappers/BUILD.gn | 6------
Mthird_party/libwebrtc/system_wrappers/include/field_trial.h | 8--------
Mthird_party/libwebrtc/system_wrappers/source/field_trial.cc | 46----------------------------------------------
Mthird_party/libwebrtc/test/fuzzers/BUILD.gn | 3+--
Mthird_party/libwebrtc/webrtc.gni | 15+++------------
18 files changed, 73 insertions(+), 114 deletions(-)

diff --git a/third_party/libwebrtc/README.mozilla.last-vendor b/third_party/libwebrtc/README.mozilla.last-vendor @@ -1,4 +1,4 @@ # ./mach python dom/media/webrtc/third_party_build/vendor-libwebrtc.py --from-local /Users/danielbaker/elm/.moz-fast-forward/moz-libwebrtc --commit mozpatches libwebrtc -libwebrtc updated from /Users/danielbaker/elm/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2025-10-22T19:19:33.904938+00:00. +libwebrtc updated from /Users/danielbaker/elm/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2025-10-22T19:21:41.059972+00:00. # base of lastest vendoring -3fe6c9abaf +76ed738ec2 diff --git a/third_party/libwebrtc/api/transport/field_trial_based_config.cc b/third_party/libwebrtc/api/transport/field_trial_based_config.cc @@ -9,6 +9,7 @@ */ #include "api/transport/field_trial_based_config.h" +#include <cstddef> #include <string> #include "absl/strings/string_view.h" @@ -18,7 +19,35 @@ namespace webrtc { std::string FieldTrialBasedConfig::GetValue(absl::string_view key) const { #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" - return field_trial::FindFullName(std::string(key)); + const char* global_field_trial_string = field_trial::GetFieldTrialString(); #pragma clang diagnostic pop + + if (global_field_trial_string == nullptr) + return std::string(); + + absl::string_view trials_string(global_field_trial_string); + if (trials_string.empty()) + return std::string(); + + size_t next_item = 0; + while (next_item < trials_string.length()) { + // Find next name/value pair in field trial configuration string. + size_t field_name_end = trials_string.find('/', next_item); + if (field_name_end == trials_string.npos || field_name_end == next_item) + break; + size_t field_value_end = trials_string.find('/', field_name_end + 1); + if (field_value_end == trials_string.npos || + field_value_end == field_name_end + 1) + break; + absl::string_view field_name = + trials_string.substr(next_item, field_name_end - next_item); + absl::string_view field_value = trials_string.substr( + field_name_end + 1, field_value_end - field_name_end - 1); + next_item = field_value_end + 1; + + if (key == field_name) + return std::string(field_value); + } + return std::string(); } } // namespace webrtc diff --git a/third_party/libwebrtc/moz-patch-stack/s0001.patch b/third_party/libwebrtc/moz-patch-stack/s0001.patch @@ -1501,10 +1501,10 @@ index b7933130bd..428fc9615d 100644 vcm_ = nullptr; } diff --git a/webrtc.gni b/webrtc.gni -index 112233b7d3..209cf7656d 100644 +index 481a65231b..4279f259a4 100644 --- a/webrtc.gni +++ b/webrtc.gni -@@ -123,7 +123,7 @@ declare_args() { +@@ -114,7 +114,7 @@ declare_args() { # Selects whether debug dumps for the audio processing module # should be generated. diff --git a/third_party/libwebrtc/moz-patch-stack/s0027.patch b/third_party/libwebrtc/moz-patch-stack/s0027.patch @@ -1280,7 +1280,7 @@ index b9bbf1c3b9..a7aba5f8c9 100644 "../api:sequence_checker", "../api/adaptation:resource_adaptation_api", diff --git a/webrtc.gni b/webrtc.gni -index 209cf7656d..1c85298081 100644 +index 4279f259a4..38e6c12072 100644 --- a/webrtc.gni +++ b/webrtc.gni @@ -35,6 +35,11 @@ if (is_mac) { @@ -1307,7 +1307,7 @@ index 209cf7656d..1c85298081 100644 declare_args() { # Setting this to true will make RTC_EXPORT (see rtc_base/system/rtc_export.h) # expand to code that will manage symbols visibility. -@@ -92,7 +102,7 @@ declare_args() { +@@ -83,7 +93,7 @@ declare_args() { # will tell the pre-processor to remove the default definition of the # SystemTimeNanos() which is defined in rtc_base/system_time.cc. In # that case a new implementation needs to be provided. @@ -1316,7 +1316,7 @@ index 209cf7656d..1c85298081 100644 # Setting this to false will require the API user to pass in their own # SSLCertificateVerifier to verify the certificates presented from a -@@ -115,7 +125,7 @@ declare_args() { +@@ -106,7 +116,7 @@ declare_args() { # Used to specify an external OpenSSL include path when not compiling the # library that comes with WebRTC (i.e. rtc_build_ssl == 0). @@ -1325,7 +1325,7 @@ index 209cf7656d..1c85298081 100644 # Enable when an external authentication mechanism is used for performing # packet authentication for RTP packets instead of libsrtp. -@@ -129,13 +139,13 @@ declare_args() { +@@ -120,13 +130,13 @@ declare_args() { rtc_exclude_audio_processing_module = false # Set this to false to skip building examples. @@ -1342,7 +1342,7 @@ index 209cf7656d..1c85298081 100644 # Set this to use PipeWire on the Wayland display server. # By default it's only enabled on desktop Linux (excludes ChromeOS) and -@@ -146,9 +156,6 @@ declare_args() { +@@ -137,9 +147,6 @@ declare_args() { # Set this to link PipeWire and required libraries directly instead of using the dlopen. rtc_link_pipewire = false @@ -1352,7 +1352,7 @@ index 209cf7656d..1c85298081 100644 # Experimental: enable use of Android AAudio which requires Android SDK 26 or above # and NDK r16 or above. rtc_enable_android_aaudio = false -@@ -290,7 +297,7 @@ declare_args() { +@@ -281,7 +288,7 @@ declare_args() { rtc_build_json = !build_with_mozilla rtc_build_libsrtp = !build_with_mozilla rtc_build_libvpx = !build_with_mozilla @@ -1361,7 +1361,7 @@ index 209cf7656d..1c85298081 100644 rtc_build_opus = !build_with_mozilla rtc_build_ssl = !build_with_mozilla -@@ -299,7 +306,7 @@ declare_args() { +@@ -290,7 +297,7 @@ declare_args() { # Chromium uses its own IO handling, so the internal ADM is only built for # standalone WebRTC. @@ -1370,7 +1370,7 @@ index 209cf7656d..1c85298081 100644 # Set this to true to enable the avx2 support in webrtc. # TODO: Make sure that AVX2 works also for non-clang compilers. -@@ -342,6 +349,9 @@ declare_args() { +@@ -333,6 +340,9 @@ declare_args() { rtc_enable_grpc = rtc_enable_protobuf && (is_linux || is_mac) } @@ -1380,7 +1380,7 @@ index 209cf7656d..1c85298081 100644 # Make it possible to provide custom locations for some libraries (move these # up into declare_args should we need to actually use them for the GN build). rtc_libvpx_dir = "//third_party/libvpx" -@@ -1214,7 +1224,7 @@ if (is_mac || is_ios) { +@@ -1205,7 +1215,7 @@ if (is_mac || is_ios) { } } diff --git a/third_party/libwebrtc/moz-patch-stack/s0034.patch b/third_party/libwebrtc/moz-patch-stack/s0034.patch @@ -276,10 +276,10 @@ index ff3f4d5b93..b95f1aa2d0 100644 config("x11_config") { if (rtc_use_x11_extensions) { diff --git a/webrtc.gni b/webrtc.gni -index 1c85298081..b48581b93e 100644 +index 38e6c12072..adef1881e7 100644 --- a/webrtc.gni +++ b/webrtc.gni -@@ -169,13 +169,13 @@ declare_args() { +@@ -160,13 +160,13 @@ declare_args() { # Selects fixed-point code where possible. rtc_prefer_fixed_point = false diff --git a/third_party/libwebrtc/moz-patch-stack/s0045.patch b/third_party/libwebrtc/moz-patch-stack/s0045.patch @@ -74,10 +74,10 @@ index 20bf4afc44..697bedadb9 100644 #endif // defined(WEBRTC_POSIX) } diff --git a/webrtc.gni b/webrtc.gni -index b48581b93e..091fb4aed8 100644 +index adef1881e7..bf5fec7ba9 100644 --- a/webrtc.gni +++ b/webrtc.gni -@@ -359,7 +359,7 @@ rtc_opus_dir = "//third_party/opus" +@@ -350,7 +350,7 @@ rtc_opus_dir = "//third_party/opus" # Desktop capturer is supported only on Windows, OSX and Linux. rtc_desktop_capture_supported = diff --git a/third_party/libwebrtc/moz-patch-stack/s0069.patch b/third_party/libwebrtc/moz-patch-stack/s0069.patch @@ -10,10 +10,10 @@ Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/46fb51c90709be64c 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webrtc.gni b/webrtc.gni -index 091fb4aed8..c4b66134ce 100644 +index bf5fec7ba9..10cc7468f6 100644 --- a/webrtc.gni +++ b/webrtc.gni -@@ -310,7 +310,7 @@ declare_args() { +@@ -301,7 +301,7 @@ declare_args() { # Set this to true to enable the avx2 support in webrtc. # TODO: Make sure that AVX2 works also for non-clang compilers. diff --git a/third_party/libwebrtc/moz-patch-stack/s0101.patch b/third_party/libwebrtc/moz-patch-stack/s0101.patch @@ -52,10 +52,10 @@ index b100541101..88655146af 100644 rtc_library("encoded_frame") { diff --git a/webrtc.gni b/webrtc.gni -index c4b66134ce..761c0006b8 100644 +index 10cc7468f6..afacae1027 100644 --- a/webrtc.gni +++ b/webrtc.gni -@@ -496,8 +496,8 @@ all_poison_types = [ +@@ -487,8 +487,8 @@ all_poison_types = [ "software_video_codecs", ] diff --git a/third_party/libwebrtc/moz-patch-stack/s0102.patch b/third_party/libwebrtc/moz-patch-stack/s0102.patch @@ -10,10 +10,10 @@ Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/45b99d1ba95b46896 1 file changed, 71 insertions(+) diff --git a/webrtc.gni b/webrtc.gni -index 761c0006b8..8c293ba42c 100644 +index afacae1027..bf4535e14c 100644 --- a/webrtc.gni +++ b/webrtc.gni -@@ -700,6 +700,36 @@ template("rtc_source_set") { +@@ -691,6 +691,36 @@ template("rtc_source_set") { deps += [ "//third_party/abseil-cpp:absl" ] } } @@ -50,7 +50,7 @@ index 761c0006b8..8c293ba42c 100644 } } -@@ -934,6 +964,47 @@ template("rtc_library") { +@@ -925,6 +955,47 @@ template("rtc_library") { deps += [ "//third_party/abseil-cpp:absl" ] } } diff --git a/third_party/libwebrtc/moz-patch-stack/s0103.patch b/third_party/libwebrtc/moz-patch-stack/s0103.patch @@ -741,7 +741,7 @@ index df32a6863d..c394964852 100644 ] } diff --git a/system_wrappers/BUILD.gn b/system_wrappers/BUILD.gn -index 52efbf7c09..7461af4d7b 100644 +index 822b565610..f2ea548824 100644 --- a/system_wrappers/BUILD.gn +++ b/system_wrappers/BUILD.gn @@ -7,8 +7,8 @@ @@ -782,7 +782,7 @@ index 59bd007ce7..0ac1cd374e 100644 deps = [ ":google_test_runner_delegate" ] } diff --git a/test/fuzzers/BUILD.gn b/test/fuzzers/BUILD.gn -index 6bdaf144fb..184f608d1b 100644 +index 9d61ce653a..8d61065eab 100644 --- a/test/fuzzers/BUILD.gn +++ b/test/fuzzers/BUILD.gn @@ -6,7 +6,7 @@ @@ -794,7 +794,7 @@ index 6bdaf144fb..184f608d1b 100644 import("//testing/libfuzzer/fuzzer_test.gni") import("../../webrtc.gni") -@@ -74,7 +74,7 @@ template("webrtc_fuzzer_test") { +@@ -73,7 +73,7 @@ template("webrtc_fuzzer_test") { } if (!build_with_chromium && is_clang) { @@ -804,7 +804,7 @@ index 6bdaf144fb..184f608d1b 100644 } } diff --git a/webrtc.gni b/webrtc.gni -index 8c293ba42c..7759842c6f 100644 +index bf4535e14c..b9c2178996 100644 --- a/webrtc.gni +++ b/webrtc.gni @@ -5,12 +5,12 @@ @@ -852,7 +852,7 @@ index 8c293ba42c..7759842c6f 100644 } if (build_with_chromium) { -@@ -382,8 +382,8 @@ rtc_common_configs = [ webrtc_root + ":common_config" ] +@@ -373,8 +373,8 @@ rtc_common_configs = [ webrtc_root + ":common_config" ] if (is_mac || is_ios) { if (filter_include(default_compiler_configs, @@ -863,7 +863,7 @@ index 8c293ba42c..7759842c6f 100644 } } -@@ -401,7 +401,7 @@ rtc_common_inherited_config = webrtc_root + ":common_inherited_config" +@@ -392,7 +392,7 @@ rtc_common_inherited_config = webrtc_root + ":common_inherited_config" # Common configs to remove or add in all rtc targets. rtc_remove_configs = [] if (!build_with_chromium && is_clang) { diff --git a/third_party/libwebrtc/moz-patch-stack/s0104.patch b/third_party/libwebrtc/moz-patch-stack/s0104.patch @@ -10,10 +10,10 @@ Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/f18c05287ce831369 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/webrtc.gni b/webrtc.gni -index 7759842c6f..86e324ffae 100644 +index b9c2178996..34a8ee592d 100644 --- a/webrtc.gni +++ b/webrtc.gni -@@ -545,7 +545,7 @@ template("rtc_test") { +@@ -536,7 +536,7 @@ template("rtc_test") { min_sdk_version = 21 target_sdk_version = 24 deps += [ @@ -22,7 +22,7 @@ index 7759842c6f..86e324ffae 100644 webrtc_root + "sdk/android:native_test_jni_onload", webrtc_root + "sdk/android:base_java", webrtc_root + "test:native_test_java", -@@ -1000,11 +1000,21 @@ template("rtc_library") { +@@ -991,11 +991,21 @@ template("rtc_library") { modified_deps = [] foreach (dep, deps) { newdep = string_replace(dep, "//third_party/", "//libwebrtc/third_party/") @@ -44,7 +44,7 @@ index 7759842c6f..86e324ffae 100644 } } -@@ -1042,7 +1052,7 @@ template("rtc_executable") { +@@ -1033,7 +1043,7 @@ template("rtc_executable") { if (is_win) { deps += [ # Give executables the default manifest on Windows (a no-op elsewhere). diff --git a/third_party/libwebrtc/moz-patch-stack/s0108.patch b/third_party/libwebrtc/moz-patch-stack/s0108.patch @@ -147,10 +147,10 @@ index 9653fd651f..82b050a559 100644 rtc_library("ssl") { if (!build_with_mozilla) { diff --git a/webrtc.gni b/webrtc.gni -index 86e324ffae..8c270e335e 100644 +index 34a8ee592d..d29a86112b 100644 --- a/webrtc.gni +++ b/webrtc.gni -@@ -125,7 +125,7 @@ declare_args() { +@@ -116,7 +116,7 @@ declare_args() { # Used to specify an external OpenSSL include path when not compiling the # library that comes with WebRTC (i.e. rtc_build_ssl == 0). @@ -159,7 +159,7 @@ index 86e324ffae..8c270e335e 100644 # Enable when an external authentication mechanism is used for performing # packet authentication for RTP packets instead of libsrtp. -@@ -350,7 +350,7 @@ declare_args() { +@@ -341,7 +341,7 @@ declare_args() { } # Enable liboam only on non-mozilla builds. diff --git a/third_party/libwebrtc/moz-patch-stack/s0117.patch b/third_party/libwebrtc/moz-patch-stack/s0117.patch @@ -18,10 +18,10 @@ Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/c8cf67108972d5cae 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webrtc.gni b/webrtc.gni -index 8c270e335e..67079c13e7 100644 +index d29a86112b..ee377f06d0 100644 --- a/webrtc.gni +++ b/webrtc.gni -@@ -145,7 +145,7 @@ declare_args() { +@@ -136,7 +136,7 @@ declare_args() { rtc_build_tools = false # Set this to false to skip building code that requires X11. diff --git a/third_party/libwebrtc/system_wrappers/BUILD.gn b/third_party/libwebrtc/system_wrappers/BUILD.gn @@ -51,16 +51,10 @@ rtc_library("field_trial") { "include/field_trial.h", "source/field_trial.cc", ] - if (rtc_exclude_field_trial_default) { - defines = [ "WEBRTC_EXCLUDE_FIELD_TRIAL_DEFAULT" ] - } deps = [ - "../experiments:registered_field_trials", "../rtc_base:checks", "../rtc_base:logging", "../rtc_base:stringutils", - "../rtc_base/containers:flat_set", - "//third_party/abseil-cpp/absl/algorithm:container", "//third_party/abseil-cpp/absl/strings:string_view", ] } diff --git a/third_party/libwebrtc/system_wrappers/include/field_trial.h b/third_party/libwebrtc/system_wrappers/include/field_trial.h @@ -25,14 +25,6 @@ namespace webrtc { namespace field_trial { -// Returns the group name chosen for the named trial, or the empty string -// if the trial does not exists. -// -// Note: To keep things tidy append all the trial names with WebRTC. -// TODO: bugs.webrtc.org/42220378 - Remove from api after August 1, 2025. -[[deprecated]] -std::string FindFullName(absl::string_view name); - // Optionally initialize field trial from a string. // This method can be called at most once before any other call into webrtc. // E.g. before the peer connection factory is constructed. diff --git a/third_party/libwebrtc/system_wrappers/source/field_trial.cc b/third_party/libwebrtc/system_wrappers/source/field_trial.cc @@ -15,15 +15,11 @@ #include <utility> #include <vector> -#include "absl/algorithm/container.h" // IWYU pragma: keep #include "absl/strings/string_view.h" #include "rtc_base/checks.h" #include "rtc_base/logging.h" #include "rtc_base/string_encode.h" -// Generated file. -#include "experiments/registered_field_trials.h" // IWYU pragma: keep - // Simple field trial implementation, which allows client to // specify desired flags in InitFieldTrialsFromString. namespace webrtc { @@ -110,48 +106,6 @@ std::string MergeFieldTrialsStrings(absl::string_view first, return merged; } -#ifndef WEBRTC_EXCLUDE_FIELD_TRIAL_DEFAULT -std::string FindFullName(absl::string_view name) { -#if WEBRTC_STRICT_FIELD_TRIALS == 1 - RTC_DCHECK(absl::c_linear_search(kRegisteredFieldTrials, name)) - << name << " is not registered, see g3doc/field-trials.md."; -#elif WEBRTC_STRICT_FIELD_TRIALS == 2 - RTC_LOG_IF(LS_WARNING, !absl::c_linear_search(kRegisteredFieldTrials, name)) - << name << " is not registered, see g3doc/field-trials.md."; -#endif - - if (trials_init_string == nullptr) - return std::string(); - - absl::string_view trials_string(trials_init_string); - if (trials_string.empty()) - return std::string(); - - size_t next_item = 0; - while (next_item < trials_string.length()) { - // Find next name/value pair in field trial configuration string. - size_t field_name_end = - trials_string.find(kPersistentStringSeparator, next_item); - if (field_name_end == trials_string.npos || field_name_end == next_item) - break; - size_t field_value_end = - trials_string.find(kPersistentStringSeparator, field_name_end + 1); - if (field_value_end == trials_string.npos || - field_value_end == field_name_end + 1) - break; - absl::string_view field_name = - trials_string.substr(next_item, field_name_end - next_item); - absl::string_view field_value = trials_string.substr( - field_name_end + 1, field_value_end - field_name_end - 1); - next_item = field_value_end + 1; - - if (name == field_name) - return std::string(field_value); - } - return std::string(); -} -#endif // WEBRTC_EXCLUDE_FIELD_TRIAL_DEFAULT - // Optionally initialize field trial from a string. void InitFieldTrialsFromString(const char* trials_string) { RTC_LOG(LS_INFO) << "Setting field trial string:" << trials_string; diff --git a/third_party/libwebrtc/test/fuzzers/BUILD.gn b/third_party/libwebrtc/test/fuzzers/BUILD.gn @@ -19,10 +19,9 @@ rtc_library("webrtc_fuzzer_main") { ] # When WebRTC fuzzer tests are built on Chromium bots they need to link - # with Chromium's implementation of metrics, field trial, and system time. + # with Chromium's implementation of metrics and system time. if (build_with_chromium) { deps += [ - "../../../webrtc_overrides:field_trial", "../../../webrtc_overrides:metrics", "../../../webrtc_overrides:system_time", ] diff --git a/third_party/libwebrtc/webrtc.gni b/third_party/libwebrtc/webrtc.gni @@ -79,18 +79,9 @@ declare_args() { # annotated symbols. rtc_enable_objc_symbol_export = rtc_enable_symbol_export - # Setting this to true will define WEBRTC_EXCLUDE_FIELD_TRIAL_DEFAULT which - # will tell the pre-processor to remove the default definition of symbols - # needed to use field_trial. 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 field_trial unless it is building for NACL or - # Chromecast. - rtc_exclude_field_trial_default = !is_nacl && !is_castos && !is_cast_android - } else { - rtc_exclude_field_trial_default = false - } + # Deprecated, this flag has no effect. + # TODO: bugs.webrtc.org/42220378 - Delete after August 15, 2025. + rtc_exclude_field_trial_default = false # Setting this to true will define WEBRTC_EXCLUDE_METRICS_DEFAULT which # will tell the pre-processor to remove the default definition of symbols