Experiments
Here's how to hide a feature behind a flag that can be changed from the
chrome://flags
page in Chrome, or with a command line flag. We'll use an
example from the following revision
84971 which
hides the compact navigation bar behind such a flag.
- First, you need to add a string for your command line switch. For example: chrome_switches.h & chrome_switches.cc
- Then you need strings to be displayed on the
chrome://flags
page for the name and description of your experiment. For example, the two strings with IDs starting with IDS_FLAGS_ENABLE in: generated_resources.grd - And then add all this info to a new entry in the Experiments array. For
example:
about_flags.cc
- The first string (e.g., "compact-navigation") is an identifier for the
preference that will be saved in the user profile based on the settings
chosen by the user on the
chrome://flags
page. - The the resource IDs for the name and description strings.
- Then which OS should expose it.
- And finally, the access to the command line flag, using one of the following macros:
- SINGLE_VALUE_TYPE_AND_VALUE, SINGLE_VALUE_TYPE, or MULTI_VALUE_TYPE.
- The first string (e.g., "compact-navigation") is an identifier for the
preference that will be saved in the user profile based on the settings
chosen by the user on the
- And finally, use the CommandLine::ForCurrentProcess()->HasSwitch(<your flag>) to check its state. For example: tab_menu_model.cc uses it to decide whether we show the Hide toolbar option in the tab contextual menu or not.