summaryrefslogtreecommitdiffstats
path: root/chromeos/network
diff options
context:
space:
mode:
authorstevenjb@chromium.org <stevenjb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-04 18:30:59 +0000
committerstevenjb@chromium.org <stevenjb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-04 18:30:59 +0000
commit01066c98c10b343c18c5c58b74ce4b59c2236a34 (patch)
tree51435a4ed9ab15f627bf14da79c38437e7563ab1 /chromeos/network
parentef9f5ffe4b00cfc6787d9ebfb37f4dcb238571c1 (diff)
downloadchromium_src-01066c98c10b343c18c5c58b74ce4b59c2236a34.zip
chromium_src-01066c98c10b343c18c5c58b74ce4b59c2236a34.tar.gz
chromium_src-01066c98c10b343c18c5c58b74ce4b59c2236a34.tar.bz2
Split onc::IsRecommendedValue into onc_utils.cc
Separate out the Recommended parsing from NetworkPropertyUIData so that it can be used independently. BUG=279351 Review URL: https://codereview.chromium.org/433143002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@287375 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chromeos/network')
-rw-r--r--chromeos/network/onc/onc_utils.cc21
-rw-r--r--chromeos/network/onc/onc_utils.h4
2 files changed, 25 insertions, 0 deletions
diff --git a/chromeos/network/onc/onc_utils.cc b/chromeos/network/onc/onc_utils.cc
index 433054f..73b5deb 100644
--- a/chromeos/network/onc/onc_utils.cc
+++ b/chromeos/network/onc/onc_utils.cc
@@ -672,5 +672,26 @@ NetworkTypePattern NetworkTypePatternFromOncType(const std::string& type) {
return NetworkTypePattern::Default();
}
+bool IsRecommendedValue(const base::DictionaryValue* onc,
+ const std::string& property_key) {
+ std::string property_basename, recommended_property_key;
+ size_t pos = property_key.find_last_of('.');
+ if (pos != std::string::npos) {
+ // 'WiFi.AutoConnect' -> 'AutoConnect', 'WiFi.Recommended'
+ property_basename = property_key.substr(pos + 1);
+ recommended_property_key =
+ property_key.substr(0, pos + 1) + ::onc::kRecommended;
+ } else {
+ // 'Name' -> 'Name', 'Recommended'
+ property_basename = property_key;
+ recommended_property_key = ::onc::kRecommended;
+ }
+
+ const base::ListValue* recommended_keys = NULL;
+ return (onc->GetList(recommended_property_key, &recommended_keys) &&
+ recommended_keys->Find(base::StringValue(property_basename)) !=
+ recommended_keys->end());
+}
+
} // namespace onc
} // namespace chromeos
diff --git a/chromeos/network/onc/onc_utils.h b/chromeos/network/onc/onc_utils.h
index 261ae49..c31cd2e 100644
--- a/chromeos/network/onc/onc_utils.h
+++ b/chromeos/network/onc/onc_utils.h
@@ -130,6 +130,10 @@ CHROMEOS_EXPORT bool ResolveServerCertRefsInNetwork(
CHROMEOS_EXPORT NetworkTypePattern NetworkTypePatternFromOncType(
const std::string& type);
+// Returns true if |property_key| is a recommended value in the ONC dictionary.
+CHROMEOS_EXPORT bool IsRecommendedValue(const base::DictionaryValue* onc,
+ const std::string& property_key);
+
} // namespace onc
} // namespace chromeos