webrtc/g3doc/field-trials.md
Artem Titov a617867a45 Reland "Migrate WebRTC documentation to new renderer"
This reverts commit 0f2ce5cc1c.

Reason for revert: Downstream infrastructure should be ready now

Original change's description:
> Revert "Migrate WebRTC documentation to new renderer"
>
> This reverts commit 3eceaf4669.
>
> Reason for revert:
>
> Original change's description:
> > Migrate WebRTC documentation to new renderer
> >
> > Bug: b/258408932
> > Change-Id: Ib96f39fe0c3912f9746bcc09d079097a145d6115
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/290987
> > Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> > Commit-Queue: Artem Titov <titovartem@webrtc.org>
> > Cr-Commit-Position: refs/heads/main@{#39205}
>
> Bug: b/258408932
> Change-Id: I16cb4088bee3fc15c2bb88bd692c592b3a7db9fe
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/291560
> Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
> Owners-Override: Artem Titov <titovartem@webrtc.org>
> Commit-Queue: Artem Titov <titovartem@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#39209}

Bug: b/258408932
Change-Id: Ia172e4a6ad1cc7953b48eed08776e9d1e44eb074
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/291660
Owners-Override: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39231}
2023-01-31 09:30:04 +00:00

2 KiB

Field trials

WebRTC provides some means to alter its default behavior during run-time, colloquially known as field trials. This is foremost used for A/B testing new features and are related to Chromium field trials to facilitate interoperability.

A field trial consist of a key-value pair of strings. By convention, the field trial key is prefixed with WebRTC- and each word is capitalized without spaces. Sometimes the key is further subdivided into a category, for example, WebRTC-MyCategory-MyExperiment. The field trial value is an opaque string and it is up to the author to define what it represents. There are helper functions to use a field trial as a boolean, with the string Enabled representing true and Disabled representing false. You can also use field trial parameters if you wish to encode more elaborate data types.

The set of field trials can be instantiated from a single string with the format <key-1>/<value-1>/<key-2>/<value-2>/. Note the final / at the end! In Chromium you can launch with the --force-fieldtrials flag to instantiate field trials this way, for example:

--force-fieldtrials="WebRTC-Foo/Enabled/WebRTC-Bar/Disabled/"

Policy

The policy for field trials is:

  • A field trial should only be used to test out new code or parameters for a limited time period. It should not be used for configuring persistent behavior.
  • The field trial must have an end date. The end date may be pushed back if necessary, but should not be pushed back indefinitely.
  • A field trial must be associated with a bug that
    • reserves the field trial key,
    • is open,
    • is assigned to an owner, and
    • has the end date specified.