Back in April, we announced:
Beginning in October 2017, Chrome will show the “Not secure” warning in two additional situations: when users enter data on an HTTP page, and on all HTTP pages visited in Incognito mode.
This is true, but it’s perhaps a little misleading, based on some of the tweets we’ve seen:
What isn’t mentioned in the blog post is exactly how this feature will roll out– many readers naturally assume that it’s as simple as: “If you have Chrome 62, then this feature is present.” After all, that’s how software usually works.
In Chrome, things are more interesting. Where possible, Chrome rolls out new features dynamically using the Field Trials platform. You can think of Field Trials as a set of server-controlled flags that allow Google to change Chrome’s behavior dynamically, at runtime, without shipping a new version. (Update: Google codenames their experimental system “Finch” while Microsoft Edge codenames theirs “ECS“- Experimental Configuration System).
We use Field Trials for two major purposes– for experimentation, and for feature rollouts.
Experimentally, we run many experiments where we create one or more experimental groups and then compare telemetry from those clients against a control group. If a feature isn’t performing as expected (e.g. its usage declines vs. the feature it replaces, or browser crashes increase, or memory usage increases or page load slows, etc), the feature is tuned or removed before it officially “ships.” Experiments are often conducted on the pre-release channels (e.g. Canary, Dev, and Beta) before deciding whether or not a feature should be rolled out to the Stable channel.
After a feature has proven itself via experiments, it’s ready to roll out to users in the Stable channel. Unfortunately, pre-release channels don’t get coverage nearly as broad as we’d like, so we have to take care when a feature is first rolled out to Stable. By using a field trial, we can enable the new feature for a huge number of Stable users while still keeping it at a low percentage of the Stable user base (e.g. 1% of a billion installs == 10 million clients). We keep an eagle eye on telemetry and user-feedback reports to spot any unexpected problems, and assuming we don’t find any, we can quickly ramp up the new feature rollout to 100% of users. If we discover the feature wasn’t fit to ship for whatever reason (e.g. introduces some serious bug), we can dial it back to 0% until a fix can be created.
Unfortunately, field trials are one of the very few inscrutable parts of the otherwise very–open Chrome– Google does not publish information about the current percentage of users in a trial, and while chrome://version/?show-variations-cmd shows which trials are currently enabled for a given client, there’s no public explanation of what the experiments actually do. Update: Here is a tool to grab the configuration data from Google directly.
Rest assured that I’m eager to push the new Not Secure warnings to 100% and I expect to get to do so very soon. If you just can’t wait, you can override the field trial and turn it on yourself by changing chrome://flags/#mark-non-secure-as and restarting Chrome.
Note that there’s not a 1:1 correspondence between Flags and Field Trials– while many trials can be overridden by flags, not all experiments have user-toggleable flags. If a feature is controlled by a flag and a field trial, when a flag hasn’t been manually configured, the field trial’s setting (if any) is not reflected in chrome://flags… the flag entry will just show Default.
Protecting your web traffic as fast as we can,
UPDATE: See https://textslashplain.com/2019/07/16/updating-browsers-quickly-flags-respins-and-components/ for more discussion related to this topic.
2 thoughts on “Chrome Field Trials”
Chrome’s Field Trial system is codenamed “Finch”.
Edge’s system is called “ECS” (Experimental Control System)