diff options
author | stevenjb@chromium.org <stevenjb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-04 18:30:59 +0000 |
---|---|---|
committer | stevenjb@chromium.org <stevenjb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-04 18:30:59 +0000 |
commit | 01066c98c10b343c18c5c58b74ce4b59c2236a34 (patch) | |
tree | 51435a4ed9ab15f627bf14da79c38437e7563ab1 /chromeos/network | |
parent | ef9f5ffe4b00cfc6787d9ebfb37f4dcb238571c1 (diff) | |
download | chromium_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.cc | 21 | ||||
-rw-r--r-- | chromeos/network/onc/onc_utils.h | 4 |
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 |