Chromium Code Reviews| Index: chrome/browser/chromeos/options/network_property_ui_data.cc |
| diff --git a/chrome/browser/chromeos/options/network_property_ui_data.cc b/chrome/browser/chromeos/options/network_property_ui_data.cc |
| index e93369cd078a650750a0bd4473c895142d408fa9..bbfdf8119e7eb566e202c664019bfdf2fa2ca50c 100644 |
| --- a/chrome/browser/chromeos/options/network_property_ui_data.cc |
| +++ b/chrome/browser/chromeos/options/network_property_ui_data.cc |
| @@ -4,22 +4,24 @@ |
| #include "chrome/browser/chromeos/options/network_property_ui_data.h" |
| +#include "base/logging.h" |
| #include "base/values.h" |
| +#include "chromeos/network/onc/onc_utils.h" |
| namespace chromeos { |
| NetworkPropertyUIData::NetworkPropertyUIData() |
| - : onc_source_(onc::ONC_SOURCE_NONE) { |
| + : onc_source_(::onc::ONC_SOURCE_NONE) { |
| } |
| -NetworkPropertyUIData::NetworkPropertyUIData(onc::ONCSource onc_source) |
| +NetworkPropertyUIData::NetworkPropertyUIData(::onc::ONCSource onc_source) |
| : onc_source_(onc_source) { |
| } |
| NetworkPropertyUIData::~NetworkPropertyUIData() { |
| } |
| -void NetworkPropertyUIData::ParseOncProperty(onc::ONCSource onc_source, |
| +void NetworkPropertyUIData::ParseOncProperty(::onc::ONCSource onc_source, |
| const base::DictionaryValue* onc, |
| const std::string& property_key) { |
| default_value_.reset(); |
| @@ -28,25 +30,19 @@ void NetworkPropertyUIData::ParseOncProperty(onc::ONCSource onc_source, |
| if (!onc || !IsManaged()) |
| return; |
| - size_t pos = property_key.find_last_of('.'); |
| - std::string recommended_property_key; |
| - std::string property_basename(property_key); |
| - if (pos != std::string::npos) { |
| - recommended_property_key = property_key.substr(0, pos + 1); |
| - property_basename = property_key.substr(pos + 1); |
| - } |
| - recommended_property_key += "Recommended"; |
| - |
| - const base::ListValue* recommended_keys = NULL; |
| - if (onc->GetList(recommended_property_key, &recommended_keys)) { |
| - base::StringValue basename_value(property_basename); |
| - if (recommended_keys->Find(basename_value) != recommended_keys->end()) { |
| - onc_source_ = onc::ONC_SOURCE_NONE; |
| - const base::Value* default_value = NULL; |
| - if (onc->Get(property_key, &default_value)) |
| - default_value_.reset(default_value->DeepCopy()); |
| - } |
| + if (!onc::IsRecommendedValue(onc, property_key)) |
| + return; |
| + |
| + // Set onc_source_ to NONE to indicate that the value is recommended. |
| + onc_source_ = ::onc::ONC_SOURCE_NONE; |
| + // Set the recommended (default) value. |
| + const base::Value* default_value = NULL; |
| + if (!onc->Get(property_key, &default_value)) { |
| + LOG(ERROR) << "ONC dictionary recommends key but has no value: " |
|
pneubeck (no reviews)
2014/08/04 10:14:30
This is not an error, it means that the default va
stevenjb
2014/08/04 15:12:32
Could you explain that a bit more? Why would a pro
pneubeck (no reviews)
2014/08/04 15:17:49
For example username, should be editable but there
|
| + << property_key; |
| + return; |
| } |
| + default_value_.reset(default_value->DeepCopy()); |
| } |
| } // namespace chromeos |