| Index: chrome/browser/about_flags.h
|
| diff --git a/chrome/browser/about_flags.h b/chrome/browser/about_flags.h
|
| index 55859db985106a932db1ab706f74d13f416c2512..420f86acf305f18693a122e83d9c812ce51ce119 100644
|
| --- a/chrome/browser/about_flags.h
|
| +++ b/chrome/browser/about_flags.h
|
| @@ -6,10 +6,12 @@
|
| #define CHROME_BROWSER_ABOUT_FLAGS_H_
|
|
|
| #include <map>
|
| +#include <set>
|
| #include <string>
|
|
|
| #include "base/command_line.h"
|
| #include "base/strings/string16.h"
|
| +#include "chrome/browser/about_flags_switches_histogram_ids.h"
|
|
|
| class PrefService;
|
|
|
| @@ -58,6 +60,12 @@ struct Experiment {
|
| const char* command_line_switch;
|
| // Simple switches that have no value should use "" for command_line_value.
|
| const char* command_line_value;
|
| +
|
| + // ID of command_line_switch in UMA histograms.
|
| + // On ChromeOS experiments lead to chrome process restart when user logs in.
|
| + // IDs of switches that lead to restart are reported.
|
| + // Must be zero for entries without command_line_switches.
|
| + const int command_line_switch_histogram_id;
|
| };
|
|
|
| // The internal name of the experiment. This is never shown to the user.
|
| @@ -85,11 +93,16 @@ struct Experiment {
|
| const char* command_line_switch;
|
| // Simple switches that have no value should use "" for command_line_value.
|
| const char* command_line_value;
|
| + // ID of command_line_switch in UMA histograms.
|
| + // (See Choice::command_line_switch_histogram_id.)
|
| + // Must be zero for entries without command_line_switches.
|
| + const int command_line_switch_histogram_id;
|
|
|
| // For ENABLE_DISABLE_VALUE, the command line switch and value to explictly
|
| // disable the feature.
|
| const char* disable_command_line_switch;
|
| const char* disable_command_line_value;
|
| + const int disable_command_line_switch_histogram_id;
|
|
|
| // This is used if type is MULTI_VALUE.
|
| const Choice* choices;
|
| @@ -115,11 +128,18 @@ void ConvertFlagsToSwitches(FlagsStorage* flags_storage,
|
| base::CommandLine* command_line,
|
| SentinelsMode sentinels);
|
|
|
| +// Returns a map <command_line_switch, switch_histogram_id>.
|
| +// Map is created if it doesn't exist.
|
| +const std::map<std::string, int>& GetSwitchesHistogramId();
|
| +
|
| // Compares a set of switches of the two provided command line objects and
|
| // returns true if they are the same and false otherwise.
|
| +// If |out_difference| is not NULL, it's filled with set_symmetric_difference
|
| +// between sets.
|
| bool AreSwitchesIdenticalToCurrentCommandLine(
|
| const base::CommandLine& new_cmdline,
|
| - const base::CommandLine& active_cmdline);
|
| + const base::CommandLine& active_cmdline,
|
| + std::set<CommandLine::StringType>* out_difference);
|
|
|
| // Differentiate between generic flags available on a per session base and flags
|
| // that influence the whole machine and can be said by the admin only. This flag
|
|
|