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 |