Chromium Code Reviews| Index: chrome/browser/about_flags.h |
| diff --git a/chrome/browser/about_flags.h b/chrome/browser/about_flags.h |
| index 55859db985106a932db1ab706f74d13f416c2512..5197dfbaa01b864edaad0fb7b9b13e2e062dfd78 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>& GetSwitchesHistogramIds(); |
|
Lei Zhang
2014/06/27 19:46:44
Having "typedef std::map<std::string, int> Switche
Alexander Alekseev
2014/06/30 15:06:01
Done.
|
| + |
| // 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 |