summaryrefslogtreecommitdiffstats
path: root/chromeos/network/network_ui_data.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromeos/network/network_ui_data.cc')
-rw-r--r--chromeos/network/network_ui_data.cc24
1 files changed, 23 insertions, 1 deletions
diff --git a/chromeos/network/network_ui_data.cc b/chromeos/network/network_ui_data.cc
index 3345895..a80ee3e 100644
--- a/chromeos/network/network_ui_data.cc
+++ b/chromeos/network/network_ui_data.cc
@@ -14,6 +14,7 @@ namespace chromeos {
const char NetworkUIData::kKeyONCSource[] = "onc_source";
const char NetworkUIData::kKeyCertificatePattern[] = "certificate_pattern";
const char NetworkUIData::kKeyCertificateType[] = "certificate_type";
+const char NetworkUIData::kKeyUserSettings[] = "user_settings";
namespace {
@@ -61,13 +62,27 @@ Enum StringToEnum(const StringEnumEntry<Enum>(& table)[N],
return fallback;
}
-}
+} // namespace
NetworkUIData::NetworkUIData()
: onc_source_(onc::ONC_SOURCE_NONE),
certificate_type_(CLIENT_CERT_TYPE_NONE) {
}
+NetworkUIData::NetworkUIData(const NetworkUIData& other) {
+ *this = other;
+}
+
+NetworkUIData& NetworkUIData::operator=(const NetworkUIData& other) {
+ certificate_pattern_ = other.certificate_pattern_;
+ onc_source_ = other.onc_source_;
+ certificate_type_ = other.certificate_type_;
+ if (other.user_settings_)
+ user_settings_.reset(other.user_settings_->DeepCopy());
+ policy_guid_ = other.policy_guid_;
+ return *this;
+}
+
NetworkUIData::NetworkUIData(const DictionaryValue& dict) {
std::string source;
dict.GetString(kKeyONCSource, &source);
@@ -88,6 +103,10 @@ NetworkUIData::NetworkUIData(const DictionaryValue& dict) {
certificate_type_ = CLIENT_CERT_TYPE_NONE;
}
}
+
+ const DictionaryValue* user_settings = NULL;
+ if (dict.GetDictionary(kKeyUserSettings, &user_settings))
+ user_settings_.reset(user_settings->DeepCopy());
}
NetworkUIData::~NetworkUIData() {
@@ -110,6 +129,9 @@ void NetworkUIData::FillDictionary(base::DictionaryValue* dict) const {
certificate_pattern_.CreateAsDictionary());
}
}
+ if (user_settings_)
+ dict->SetWithoutPathExpansion(kKeyUserSettings,
+ user_settings_->DeepCopy());
}
namespace {