summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/experiments
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/libwebrtc/experiments')
-rw-r--r--third_party/libwebrtc/experiments/BUILD.gn26
-rwxr-xr-xthird_party/libwebrtc/experiments/field_trials.py114
-rw-r--r--third_party/libwebrtc/experiments/registered_field_trials_gn/moz.build201
-rw-r--r--third_party/libwebrtc/experiments/registered_field_trials_header_gn/moz.build39
4 files changed, 380 insertions, 0 deletions
diff --git a/third_party/libwebrtc/experiments/BUILD.gn b/third_party/libwebrtc/experiments/BUILD.gn
new file mode 100644
index 0000000000..82fce7f08d
--- /dev/null
+++ b/third_party/libwebrtc/experiments/BUILD.gn
@@ -0,0 +1,26 @@
+# Copyright (c) 2022 The WebRTC project authors. All Rights Reserved.
+#
+# Use of this source code is governed by a BSD-style license
+# that can be found in the LICENSE file in the root of the source
+# tree. An additional intellectual property rights grant can be found
+# in the file PATENTS. All contributing project authors may
+# be found in the AUTHORS file in the root of the source tree.
+
+import("../webrtc.gni")
+
+action("registered_field_trials_header") {
+ visibility = [ ":*" ]
+ script = "field_trials.py"
+ args = [
+ "header",
+ "--output",
+ rebase_path(target_gen_dir, root_build_dir) + "/registered_field_trials.h",
+ ]
+ outputs = [ "$target_gen_dir/registered_field_trials.h" ]
+}
+
+rtc_library("registered_field_trials") {
+ visibility = [ "*" ]
+ sources = get_target_outputs(":registered_field_trials_header")
+ deps = [ ":registered_field_trials_header" ]
+}
diff --git a/third_party/libwebrtc/experiments/field_trials.py b/third_party/libwebrtc/experiments/field_trials.py
new file mode 100755
index 0000000000..c9a73ce1f3
--- /dev/null
+++ b/third_party/libwebrtc/experiments/field_trials.py
@@ -0,0 +1,114 @@
+#!/usr/bin/env vpython3
+
+# Copyright (c) 2022 The WebRTC Project Authors. All Rights Reserved.
+#
+# Use of this source code is governed by a BSD-style license
+# that can be found in the LICENSE file in the root of the source
+# tree. An additional intellectual property rights grant can be found
+# in the file PATENTS. All contributing project authors may
+# be found in the AUTHORS file in the root of the source tree.
+
+import sys
+from typing import Set
+
+import argparse
+import dataclasses
+
+
+# TODO(bugs.webrtc.org/14154): End date and bug should also be stored.
+@dataclasses.dataclass(frozen=True)
+class FieldTrial:
+ """Representation of all attributes associated with a field trial.
+
+ Attributes:
+ key: Field trial key.
+ """
+ key: str
+
+
+# As per the policy in `g3doc/field-trials.md`, all field trials should be
+# registered in the container below. Please keep the keys sorted.
+REGISTERED_FIELD_TRIALS: Set[FieldTrial] = {
+ FieldTrial(''), # TODO(bugs.webrtc.org/14154): Populate
+}
+
+
+def RegistryHeader(field_trials: Set[FieldTrial] = None) -> str:
+ """Generates a C++ header with all field trial keys.
+
+ Args:
+ field_trials: Field trials to include in the header.
+
+ Returns:
+ String representation of a C++ header file containing all field trial keys.
+
+ >>> trials = {FieldTrial('B'), FieldTrial('A'), FieldTrial('B')}
+ >>> print(RegistryHeader(trials))
+ // This file was automatically generated. Do not edit.
+ <BLANKLINE>
+ #ifndef GEN_REGISTERED_FIELD_TRIALS_H_
+ #define GEN_REGISTERED_FIELD_TRIALS_H_
+ <BLANKLINE>
+ #include "absl/strings/string_view.h"
+ <BLANKLINE>
+ namespace webrtc {
+ <BLANKLINE>
+ inline constexpr absl::string_view kRegisteredFieldTrials[] = {
+ "A",
+ "B",
+ };
+ <BLANKLINE>
+ } // namespace webrtc
+ <BLANKLINE>
+ #endif // GEN_REGISTERED_FIELD_TRIALS_H_
+ <BLANKLINE>
+ """
+ if not field_trials:
+ field_trials = REGISTERED_FIELD_TRIALS
+ registered_keys = [f.key for f in field_trials]
+ keys = '\n'.join(f' "{k}",' for k in sorted(registered_keys))
+ return ('// This file was automatically generated. Do not edit.\n'
+ '\n'
+ '#ifndef GEN_REGISTERED_FIELD_TRIALS_H_\n'
+ '#define GEN_REGISTERED_FIELD_TRIALS_H_\n'
+ '\n'
+ '#include "absl/strings/string_view.h"\n'
+ '\n'
+ 'namespace webrtc {\n'
+ '\n'
+ 'inline constexpr absl::string_view kRegisteredFieldTrials[] = {\n'
+ f'{keys}\n'
+ '};\n'
+ '\n'
+ '} // namespace webrtc\n'
+ '\n'
+ '#endif // GEN_REGISTERED_FIELD_TRIALS_H_\n')
+
+
+def CmdHeader(args: argparse.Namespace) -> None:
+ args.output.write(RegistryHeader())
+
+
+def main() -> None:
+ parser = argparse.ArgumentParser()
+ subcommand = parser.add_subparsers(dest='cmd')
+ parser_header = subcommand.add_parser(
+ 'header',
+ help='generate C++ header file containing registered field trial keys')
+ parser_header.add_argument('--output',
+ default=sys.stdout,
+ type=argparse.FileType('w'),
+ required=False,
+ help='output file')
+ parser_header.set_defaults(cmd=CmdHeader)
+ args = parser.parse_args()
+
+ if not args.cmd:
+ parser.print_help(sys.stderr)
+ sys.exit(1)
+
+ args.cmd(args)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/third_party/libwebrtc/experiments/registered_field_trials_gn/moz.build b/third_party/libwebrtc/experiments/registered_field_trials_gn/moz.build
new file mode 100644
index 0000000000..2ae645ea74
--- /dev/null
+++ b/third_party/libwebrtc/experiments/registered_field_trials_gn/moz.build
@@ -0,0 +1,201 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+ ### This moz.build was AUTOMATICALLY GENERATED from a GN config, ###
+ ### DO NOT edit it by hand. ###
+
+COMPILE_FLAGS["OS_INCLUDES"] = []
+AllowCompilerWarnings()
+
+DEFINES["ABSL_ALLOCATOR_NOTHROW"] = "1"
+DEFINES["RTC_DAV1D_IN_INTERNAL_DECODER_FACTORY"] = True
+DEFINES["RTC_ENABLE_VP9"] = True
+DEFINES["WEBRTC_ENABLE_PROTOBUF"] = "0"
+DEFINES["WEBRTC_LIBRARY_IMPL"] = True
+DEFINES["WEBRTC_MOZILLA_BUILD"] = True
+DEFINES["WEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS"] = "0"
+DEFINES["WEBRTC_STRICT_FIELD_TRIALS"] = "0"
+
+FINAL_LIBRARY = "webrtc"
+
+
+LOCAL_INCLUDES += [
+ "!/ipc/ipdl/_ipdlheaders",
+ "!/third_party/libwebrtc/gen",
+ "/ipc/chromium/src",
+ "/third_party/libwebrtc/",
+ "/third_party/libwebrtc/third_party/abseil-cpp/",
+ "/tools/profiler/public"
+]
+
+if not CONFIG["MOZ_DEBUG"]:
+
+ DEFINES["DYNAMIC_ANNOTATIONS_ENABLED"] = "0"
+ DEFINES["NDEBUG"] = True
+ DEFINES["NVALGRIND"] = True
+
+if CONFIG["MOZ_DEBUG"] == "1":
+
+ DEFINES["DYNAMIC_ANNOTATIONS_ENABLED"] = "1"
+
+if CONFIG["OS_TARGET"] == "Android":
+
+ DEFINES["ANDROID"] = True
+ DEFINES["ANDROID_NDK_VERSION_ROLL"] = "r22_1"
+ DEFINES["HAVE_SYS_UIO_H"] = True
+ DEFINES["WEBRTC_ANDROID"] = True
+ DEFINES["WEBRTC_ANDROID_OPENSLES"] = True
+ DEFINES["WEBRTC_LINUX"] = True
+ DEFINES["WEBRTC_POSIX"] = True
+ DEFINES["_GNU_SOURCE"] = True
+ DEFINES["__STDC_CONSTANT_MACROS"] = True
+ DEFINES["__STDC_FORMAT_MACROS"] = True
+
+if CONFIG["OS_TARGET"] == "Darwin":
+
+ DEFINES["WEBRTC_MAC"] = True
+ DEFINES["WEBRTC_POSIX"] = True
+ DEFINES["_LIBCPP_HAS_NO_ALIGNED_ALLOCATION"] = True
+ DEFINES["__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES"] = "0"
+ DEFINES["__STDC_CONSTANT_MACROS"] = True
+ DEFINES["__STDC_FORMAT_MACROS"] = True
+
+if CONFIG["OS_TARGET"] == "Linux":
+
+ DEFINES["USE_AURA"] = "1"
+ DEFINES["USE_GLIB"] = "1"
+ DEFINES["USE_NSS_CERTS"] = "1"
+ DEFINES["USE_OZONE"] = "1"
+ DEFINES["USE_UDEV"] = True
+ DEFINES["WEBRTC_LINUX"] = True
+ DEFINES["WEBRTC_POSIX"] = True
+ DEFINES["_FILE_OFFSET_BITS"] = "64"
+ DEFINES["_LARGEFILE64_SOURCE"] = True
+ DEFINES["_LARGEFILE_SOURCE"] = True
+ DEFINES["__STDC_CONSTANT_MACROS"] = True
+ DEFINES["__STDC_FORMAT_MACROS"] = True
+
+if CONFIG["OS_TARGET"] == "OpenBSD":
+
+ DEFINES["USE_GLIB"] = "1"
+ DEFINES["USE_OZONE"] = "1"
+ DEFINES["USE_X11"] = "1"
+ DEFINES["WEBRTC_BSD"] = True
+ DEFINES["WEBRTC_POSIX"] = True
+ DEFINES["_FILE_OFFSET_BITS"] = "64"
+ DEFINES["_LARGEFILE64_SOURCE"] = True
+ DEFINES["_LARGEFILE_SOURCE"] = True
+ DEFINES["__STDC_CONSTANT_MACROS"] = True
+ DEFINES["__STDC_FORMAT_MACROS"] = True
+
+if CONFIG["OS_TARGET"] == "WINNT":
+
+ DEFINES["CERT_CHAIN_PARA_HAS_EXTRA_FIELDS"] = True
+ DEFINES["NOMINMAX"] = True
+ DEFINES["NTDDI_VERSION"] = "0x0A000000"
+ DEFINES["PSAPI_VERSION"] = "2"
+ DEFINES["UNICODE"] = True
+ DEFINES["USE_AURA"] = "1"
+ DEFINES["WEBRTC_WIN"] = True
+ DEFINES["WIN32"] = True
+ DEFINES["WIN32_LEAN_AND_MEAN"] = True
+ DEFINES["WINAPI_FAMILY"] = "WINAPI_FAMILY_DESKTOP_APP"
+ DEFINES["WINVER"] = "0x0A00"
+ DEFINES["_ATL_NO_OPENGL"] = True
+ DEFINES["_CRT_RAND_S"] = True
+ DEFINES["_CRT_SECURE_NO_DEPRECATE"] = True
+ DEFINES["_ENABLE_EXTENDED_ALIGNED_STORAGE"] = True
+ DEFINES["_HAS_EXCEPTIONS"] = "0"
+ DEFINES["_HAS_NODISCARD"] = True
+ DEFINES["_SCL_SECURE_NO_DEPRECATE"] = True
+ DEFINES["_SECURE_ATL"] = True
+ DEFINES["_UNICODE"] = True
+ DEFINES["_WIN32_WINNT"] = "0x0A00"
+ DEFINES["_WINDOWS"] = True
+ DEFINES["__STD_C"] = True
+
+if CONFIG["CPU_ARCH"] == "aarch64":
+
+ DEFINES["WEBRTC_ARCH_ARM64"] = True
+ DEFINES["WEBRTC_HAS_NEON"] = True
+
+if CONFIG["CPU_ARCH"] == "arm":
+
+ DEFINES["WEBRTC_ARCH_ARM"] = True
+ DEFINES["WEBRTC_ARCH_ARM_V7"] = True
+ DEFINES["WEBRTC_HAS_NEON"] = True
+
+if CONFIG["CPU_ARCH"] == "mips32":
+
+ DEFINES["MIPS32_LE"] = True
+ DEFINES["MIPS_FPU_LE"] = True
+ DEFINES["_GNU_SOURCE"] = True
+
+if CONFIG["CPU_ARCH"] == "mips64":
+
+ DEFINES["_GNU_SOURCE"] = True
+
+if CONFIG["CPU_ARCH"] == "x86":
+
+ DEFINES["WEBRTC_ENABLE_AVX2"] = True
+
+if CONFIG["CPU_ARCH"] == "x86_64":
+
+ DEFINES["WEBRTC_ENABLE_AVX2"] = True
+
+if CONFIG["MOZ_DEBUG"] == "1" and CONFIG["OS_TARGET"] == "Android":
+
+ DEFINES["_DEBUG"] = True
+
+if CONFIG["MOZ_DEBUG"] == "1" and CONFIG["OS_TARGET"] == "Darwin":
+
+ DEFINES["_DEBUG"] = True
+
+if CONFIG["MOZ_DEBUG"] == "1" and CONFIG["OS_TARGET"] == "Linux":
+
+ DEFINES["_DEBUG"] = True
+
+if CONFIG["MOZ_DEBUG"] == "1" and CONFIG["OS_TARGET"] == "OpenBSD":
+
+ DEFINES["_DEBUG"] = True
+
+if CONFIG["MOZ_DEBUG"] == "1" and CONFIG["OS_TARGET"] == "WINNT":
+
+ DEFINES["_HAS_ITERATOR_DEBUGGING"] = "0"
+
+if CONFIG["MOZ_X11"] == "1" and CONFIG["OS_TARGET"] == "Linux":
+
+ DEFINES["USE_X11"] = "1"
+
+if CONFIG["CPU_ARCH"] == "arm" and CONFIG["OS_TARGET"] == "Android":
+
+ OS_LIBS += [
+ "android_support",
+ "unwind"
+ ]
+
+if CONFIG["CPU_ARCH"] == "x86" and CONFIG["OS_TARGET"] == "Android":
+
+ OS_LIBS += [
+ "android_support"
+ ]
+
+if CONFIG["CPU_ARCH"] == "aarch64" and CONFIG["OS_TARGET"] == "Linux":
+
+ DEFINES["_GNU_SOURCE"] = True
+
+if CONFIG["CPU_ARCH"] == "arm" and CONFIG["OS_TARGET"] == "Linux":
+
+ DEFINES["_GNU_SOURCE"] = True
+
+if CONFIG["CPU_ARCH"] == "x86" and CONFIG["OS_TARGET"] == "Linux":
+
+ DEFINES["_GNU_SOURCE"] = True
+
+if CONFIG["CPU_ARCH"] == "x86_64" and CONFIG["OS_TARGET"] == "Linux":
+
+ DEFINES["_GNU_SOURCE"] = True
+
+Library("registered_field_trials_gn")
diff --git a/third_party/libwebrtc/experiments/registered_field_trials_header_gn/moz.build b/third_party/libwebrtc/experiments/registered_field_trials_header_gn/moz.build
new file mode 100644
index 0000000000..2f9f14acb4
--- /dev/null
+++ b/third_party/libwebrtc/experiments/registered_field_trials_header_gn/moz.build
@@ -0,0 +1,39 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+ ### This moz.build was AUTOMATICALLY GENERATED from a GN config, ###
+ ### DO NOT edit it by hand. ###
+
+COMPILE_FLAGS["OS_INCLUDES"] = []
+AllowCompilerWarnings()
+
+FINAL_LIBRARY = "webrtc"
+
+
+GeneratedFile(
+ "/third_party/libwebrtc/gen/experiments/registered_field_trials.h",
+ entry_point="action",
+ flags=[
+ "/third_party/libwebrtc/experiments/field_trials.py",
+ "/third_party/libwebrtc/",
+ "header",
+ "--output",
+ "gen/experiments/registered_field_trials.h"
+ ],
+ script="/python/mozbuild/mozbuild/action/file_generate_wrapper.py",
+)
+
+LOCAL_INCLUDES += [
+ "!/ipc/ipdl/_ipdlheaders",
+ "/ipc/chromium/src",
+ "/tools/profiler/public"
+]
+
+if CONFIG["OS_TARGET"] == "WINNT":
+
+ DEFINES["UNICODE"] = True
+ DEFINES["_UNICODE"] = True
+
+Library("registered_field_trials_header_gn")