Add FieldTrialsRegistry that verifies looked up field trials

This new class implements the existing FieldTrialsView interface,
extending it with the verification functionality. For now, the
verification will only be performed if the rtc_strict_field_trials GN
arg is set.

Most classes extending FieldTrialsView today have been converted to
extend from FieldTrialsRegistry instead to automatically perform
verification.

Bug: webrtc:14154
Change-Id: I4819724cd66a04507e62fcc2bb1019187b6ba8c7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/276270
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Emil Lundmark <lndmrk@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38453}
This commit is contained in:
Emil Lundmark
2022-09-21 15:20:22 +02:00
committed by WebRTC LUCI CQ
parent 9707f579ae
commit 1c8103d4db
20 changed files with 169 additions and 41 deletions

View File

@ -17,7 +17,7 @@
#include <utility>
#include "absl/types/optional.h"
#include "api/transport/field_trial_based_config.h"
#include "api/field_trials_registry.h"
#include "api/units/time_delta.h"
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
#include "modules/rtp_rtcp/source/rtcp_packet.h"
@ -157,7 +157,7 @@ struct TestConfig {
bool with_overhead = false;
};
class FieldTrialConfig : public FieldTrialsView {
class FieldTrialConfig : public FieldTrialsRegistry {
public:
static FieldTrialConfig GetFromTestConfig(const TestConfig& config) {
FieldTrialConfig trials;
@ -170,14 +170,14 @@ class FieldTrialConfig : public FieldTrialsView {
void SetOverHeadEnabled(bool enabled) { overhead_enabled_ = enabled; }
std::string Lookup(absl::string_view key) const override {
private:
std::string GetValue(absl::string_view key) const override {
if (key == "WebRTC-SendSideBwe-WithOverhead") {
return overhead_enabled_ ? "Enabled" : "Disabled";
}
return "";
}
private:
bool overhead_enabled_;
};