Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(128)

Unified Diff: chromeos/network/network_ui_data.cc

Issue 14566009: Add NetworkConnectionHandler class (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Modify Shill stubs Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698