Index: chromeos/network/network_ui_data.cc |
diff --git a/chromeos/network/network_ui_data.cc b/chromeos/network/network_ui_data.cc |
index 9d384fb6e4ac168567c14d1ef9f5a35715722d82..9139d3a54db0d9161b5565b8336bdb3b863b1fba 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 { |
@@ -56,13 +57,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; |
if (dict.GetString(kKeyONCSource, &source)) { |
@@ -84,6 +99,9 @@ NetworkUIData::NetworkUIData(const DictionaryValue& dict) { |
DCHECK(certificate_type_ != CLIENT_CERT_TYPE_PATTERN || |
(certificate_type_ == CLIENT_CERT_TYPE_PATTERN && |
!certificate_pattern_.Empty())); |
+ const DictionaryValue* user_settings = NULL; |
+ if (dict.GetDictionary(kKeyUserSettings, &user_settings)) |
+ user_settings_.reset(user_settings->DeepCopy()); |
} |
NetworkUIData::~NetworkUIData() { |
@@ -106,6 +124,9 @@ void NetworkUIData::FillDictionary(base::DictionaryValue* dict) const { |
certificate_pattern_.CreateAsDictionary()); |
} |
} |
+ if (user_settings_) |
+ dict->SetWithoutPathExpansion(kKeyUserSettings, |
+ user_settings_->DeepCopy()); |
} |
namespace { |