Feature to enable system AEC.
This lets users enable the system AEC for testing purposes.
If there is no system echo canceller available, getUserMedia with echo cancellation enabled will fail.
Bug: 776327
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: Ie041bc1d205762875f9ad4817d8d3441d967256e
Reviewed-on: https://chromium-review.googlesource.com/c/1113440
Commit-Queue: Henrik Grunell <[email protected]>
Reviewed-by: Olga Sharonova <[email protected]>
Reviewed-by: Avi Drissman <[email protected]>
Reviewed-by: Guido Urdaneta <[email protected]>
Cr-Commit-Position: refs/heads/master@{#614397}
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index e79636d..98ff7b17 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -4432,6 +4432,12 @@
FEATURE_VALUE_TYPE(
chromeos::assistant::features::kEnableStereoAudioInput)},
#endif // defined(OS_CHROMEOS)
+
+#if defined(OS_MACOSX) || defined(OS_CHROMEOS)
+ {"force-enable-system-aec", flag_descriptions::kForceEnableSystemAecName,
+ flag_descriptions::kForceEnableSystemAecDescription, kOsMac | kOsCrOS,
+ FEATURE_VALUE_TYPE(features::kForceEnableSystemAec)},
+#endif // defined(OS_MACOSX) || defined(OS_CHROMEOS)
};
class FlagsStateSingleton {
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
index 6d82db86..b58efe6 100644
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -2215,6 +2215,11 @@
"expiry_milestone": 76
},
{
+ "name": "force-enable-system-aec",
+ "owners": [ "grunell" ],
+ "expiry_milestone": 80
+ },
+ {
"name": "force-pnacl-subzero",
// "owners": [ "your-team" ],
"expiry_milestone": 76
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index c513ac9..68bc4da 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -3704,6 +3704,16 @@
#endif // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
+#if defined(OS_MACOSX) || defined(OS_CHROMEOS)
+
+const char kForceEnableSystemAecName[] = "Force enable system AEC";
+const char kForceEnableSystemAecDescription[] =
+ "Use system echo canceller instead of WebRTC echo canceller. If there is "
+ "no system echo canceller available, getUserMedia with echo cancellation "
+ "enabled will fail.";
+
+#endif // defined(OS_MACOSX) || defined(OS_CHROMEOS)
+
const char kExperimentalUiName[] = "Use all upcoming UI features";
const char kExperimentalUiDescription[] = "Use all upcoming UI features.";
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index 7ea856de..28ddd9b 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -2231,6 +2231,13 @@
#endif // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
+#if defined(OS_MACOSX) || defined(OS_CHROMEOS)
+
+extern const char kForceEnableSystemAecName[];
+extern const char kForceEnableSystemAecDescription[];
+
+#endif // defined(OS_MACOSX) || defined(OS_CHROMEOS)
+
// Feature flags --------------------------------------------------------------
#if defined(DCHECK_IS_CONFIGURABLE)