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 |