diff options
Diffstat (limited to 'chrome/browser/about_flags.h')
-rw-r--r-- | chrome/browser/about_flags.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/chrome/browser/about_flags.h b/chrome/browser/about_flags.h index 81b0c2a..0fcb3b9 100644 --- a/chrome/browser/about_flags.h +++ b/chrome/browser/about_flags.h @@ -16,6 +16,35 @@ class PrefService; namespace about_flags { +// Enumeration of OSs. +// This is exposed only for testing. +enum { kOsMac = 1 << 0, kOsWin = 1 << 1, kOsLinux = 1 << 2 , kOsCrOS = 1 << 3 }; + +// Experiment is used internally by about_flags to describe an experiment (and +// for testing). +// This is exposed only for testing. +struct Experiment { + // The internal name of the experiment. This is never shown to the user. + // It _is_ however stored in the prefs file, so you shouldn't change the + // name of existing flags. + const char* internal_name; + + // String id of the message containing the experiment's name. + int visible_name_id; + + // String id of the message containing the experiment's description. + int visible_description_id; + + // The platforms the experiment is available on + // Needs to be more than a compile-time #ifdef because of profile sync. + unsigned supported_platforms; // bitmask + + // The commandline parameter that's added when this lab is active. This is + // different from |internal_name| so that the commandline flag can be + // renamed without breaking the prefs file. + const char* command_line; +}; + // Reads the Labs |prefs| (called "Labs" for historical reasons) and adds the // commandline flags belonging to the active experiments to |command_line|. void ConvertFlagsToSwitches(PrefService* prefs, CommandLine* command_line); @@ -35,9 +64,18 @@ void SetExperimentEnabled( void RemoveFlagsSwitches( std::map<std::string, CommandLine::StringType>* switch_list); +// Returns the value for the current platform. This is one of the values defined +// by the OS enum above. +// This is exposed only for testing. +int GetCurrentPlatform(); + namespace testing { // Clears internal global state, for unit tests. void ClearState(); + +// Sets the list of experiments. Pass in NULL to use the default set. This does +// NOT take ownership of the supplied Experiments. +void SetExperiments(const Experiment* e, size_t count); } // namespace testing } // namespace about_flags |