Chromium Code Reviews| Index: chromeos/network/network_ui_data.cc |
| diff --git a/chromeos/network/network_ui_data.cc b/chromeos/network/network_ui_data.cc |
| index a80ee3ecd5a47580fe5c09a490ebdd1fd7c2bffa..f2cd5548bb6773a2eaa2c38e2b3ccf50e498a412 100644 |
| --- a/chromeos/network/network_ui_data.cc |
| +++ b/chromeos/network/network_ui_data.cc |
| @@ -4,9 +4,11 @@ |
| #include "chromeos/network/network_ui_data.h" |
| +#include "base/json/json_reader.h" |
| #include "base/logging.h" |
| #include "base/values.h" |
| #include "chromeos/network/onc/onc_signature.h" |
| +#include "third_party/cros_system_api/dbus/service_constants.h" |
| namespace chromeos { |
| @@ -218,7 +220,8 @@ void TranslateONCHierarchy(const onc::OncValueSignature& signature, |
| } // namespace |
| -scoped_ptr<NetworkUIData> CreateUIDataFromONC( |
| +// static |
| +scoped_ptr<NetworkUIData> NetworkUIData::CreateUIDataFromONC( |
| onc::ONCSource onc_source, |
| const base::DictionaryValue& onc_network) { |
| scoped_ptr<NetworkUIData> ui_data(new NetworkUIData()); |
| @@ -230,4 +233,27 @@ scoped_ptr<NetworkUIData> CreateUIDataFromONC( |
| return ui_data.Pass(); |
| } |
| +// static |
| +scoped_ptr<NetworkUIData> NetworkUIData::CreateUIDataFromShill( |
|
pneubeck (no reviews)
2013/05/07 08:46:39
This exists already in the configuration handler (
stevenjb
2013/05/08 01:57:22
Done.
|
| + const base::DictionaryValue& properties) { |
| + scoped_ptr<NetworkUIData> ui_data; |
| + std::string ui_data_json; |
| + if (!properties.GetString(flimflam::kUIDataProperty, &ui_data_json)) { |
| + LOG(WARNING) << "Dictionary has no UIData property: " << properties; |
| + return ui_data.Pass(); |
| + } |
| + scoped_ptr<base::Value> ui_data_value(base::JSONReader::Read(ui_data_json)); |
| + if (!ui_data_value.get()) { |
| + LOG(WARNING) << "Error parsing JSON: " << ui_data_json; |
| + return ui_data.Pass(); |
| + } |
| + base::DictionaryValue* ui_data_dict; |
| + if (!ui_data_value->GetAsDictionary(&ui_data_dict)) { |
| + LOG(WARNING) << "UI Data not a Dictionary: " << ui_data_json; |
| + return ui_data.Pass(); |
| + } |
| + ui_data.reset(new NetworkUIData(*ui_data_dict)); |
| + return ui_data.Pass(); |
| +} |
| + |
| } // namespace chromeos |