| Index: chrome/browser/about_flags.cc
|
| diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
| index 0aeb725b9c378af1fb1afa8850405a38e5e4b095..008e67e45d3ec1e4e325f25674be8fa5dcaedb9e 100644
|
| --- a/chrome/browser/about_flags.cc
|
| +++ b/chrome/browser/about_flags.cc
|
| @@ -2180,6 +2180,27 @@ void GetSanitizedEnabledFlagsForCurrentPlatform(
|
| result->swap(new_enabled_experiments);
|
| }
|
|
|
| +// Returns true if none of this experiment's options have been enabled.
|
| +bool IsDefaultValue(
|
| + const Experiment& experiment,
|
| + const std::set<std::string>& enabled_experiments) {
|
| + switch (experiment.type) {
|
| + case Experiment::SINGLE_VALUE:
|
| + case Experiment::SINGLE_DISABLE_VALUE:
|
| + return enabled_experiments.count(experiment.internal_name) == 0;
|
| + case Experiment::MULTI_VALUE:
|
| + case Experiment::ENABLE_DISABLE_VALUE:
|
| + for (int i = 0; i < experiment.num_choices; ++i) {
|
| + if (enabled_experiments.count(experiment.NameForChoice(i)) > 0)
|
| + return false;
|
| + }
|
| + break;
|
| + default:
|
| + NOTREACHED();
|
| + }
|
| + return true;
|
| +}
|
| +
|
| // Returns the Value representing the choice data in the specified experiment.
|
| base::Value* CreateChoiceData(
|
| const Experiment& experiment,
|
| @@ -2288,14 +2309,12 @@ void GetFlagsExperimentsData(FlagsStorage* flags_storage,
|
| AddOsStrings(experiment.supported_platforms, supported_platforms);
|
| data->Set("supported_platforms", supported_platforms);
|
| // True if the switch is not currently passed.
|
| - bool is_default_value =
|
| - enabled_experiments.count(experiment.internal_name) == 0;
|
| + bool is_default_value = IsDefaultValue(experiment, enabled_experiments);
|
| + data->SetBoolean("is_default", is_default_value);
|
|
|
| switch (experiment.type) {
|
| case Experiment::SINGLE_VALUE:
|
| case Experiment::SINGLE_DISABLE_VALUE:
|
| - data->SetBoolean("is_default", is_default_value);
|
| -
|
| data->SetBoolean(
|
| "enabled",
|
| (!is_default_value &&
|
|
|