ellyjones@ / avi@
This document explains flag ownership in Chromium, and gives some principles and best practices.
See also Chromium Flag Expiry.
Every entry in chrome://flags is required to have at least one listed owner, which can be:
The owners of a flag serve as points of contact for it, and are notified when it expires.
In general, it's a good idea to include:
Three important notes about listing owners:
Some flags do not control UI features, but rather are commonly-used debugging controls, such as ignore-gpu-blocklist
. For these flags, see the instructions at the head of flag-metadata.json
. Please be very judicious about never-expiring flags, since they represent ongoing engineering, test and support burden. The flags team will probably only approve your non-expiring flag if:
If you have a non-expiring flag, the flags team requires a comment in the json file as to the rationale that it be non-expiring. A quick sentence or two will be fine. (Yes, we are aware that, technically, JSON files can‘t have comments. Don’t worry about it.) You'll also need to add your flag to the permitted list in //chrome/browser/flag-never-expire-list.json
which will require approval from the flags team.
A good rule of thumb is that your flag should expire at least one milestone after you expect your feature to have launched to stable. In other words, if your feature will be 100% enabled on Stable in M74, your flag should be marked as expiring in M75 or later. However, you can freely leave yourself lots of slack - the purpose of expiration is to ensure that obsolete flags eventually get cleaned up, but whether that takes one milestone or five for any given flag is not a big deal. It is also very easy to adjust the expiration milestone later if you need to.
One practice is to always set your expirations to the next “round” milestone after you expect to launch, so that your team can batch flag cleanup work - for example, if your feature is planned to go out in M101, you might set the expiration to M105, and then your team might schedule a flag cleanup for the 105 branch time.
Please get in touch with [email protected]
. If you feel like you need to have a Google-internal discussion for some reason, there's also chrome-flags@
.