Index: third_party/libaddressinput/chromium/cpp/src/rule.cc |
diff --git a/third_party/libaddressinput/chromium/cpp/src/rule.cc b/third_party/libaddressinput/chromium/cpp/src/rule.cc |
index a8aba1d8101c63c72ae133dbfaa8e1b0b02599cf..5a4048fce90eece99435f9f546c0240dab61b472 100644 |
--- a/third_party/libaddressinput/chromium/cpp/src/rule.cc |
+++ b/third_party/libaddressinput/chromium/cpp/src/rule.cc |
@@ -39,7 +39,11 @@ const char kAdminAreaNameTypeKey[] = "state_name_type"; |
const char kFormatKey[] = "fmt"; |
const char kLanguageKey[] = "lang"; |
const char kLanguagesKey[] = "languages"; |
+const char kPostalCodeExamplesKey[] = "zipex"; |
+const char kPostalCodeFormatKey[] = "zip"; |
const char kPostalCodeNameTypeKey[] = "zip_name_type"; |
+const char kPostalCodesUrlKey[] = "posturl"; |
+const char kRequiredKey[] = "require"; |
const char kSubKeysKey[] = "sub_keys"; |
// Used as a separator in a list of items. For example, the list of supported |
@@ -112,9 +116,13 @@ const Rule& InitDefaultRule() { |
Rule::Rule() |
: format_(), |
+ required_(), |
sub_keys_(), |
languages_(), |
language_(), |
+ postal_code_examples_(), |
+ postal_code_format_(), |
+ postal_codes_url_(), |
admin_area_name_message_id_(INVALID_MESSAGE_ID), |
postal_code_name_message_id_(INVALID_MESSAGE_ID) {} |
@@ -132,9 +140,13 @@ const Rule& Rule::GetDefault() { |
void Rule::CopyFrom(const Rule& rule) { |
format_ = rule.format_; |
+ required_ = rule.required_; |
sub_keys_ = rule.sub_keys_; |
languages_ = rule.languages_; |
language_ = rule.language_; |
+ postal_code_examples_ = rule.postal_code_examples_; |
+ postal_code_format_ = rule.postal_code_format_; |
+ postal_codes_url_ = rule.postal_codes_url_; |
admin_area_name_message_id_ = rule.admin_area_name_message_id_; |
postal_code_name_message_id_ = rule.postal_code_name_message_id_; |
} |
@@ -149,6 +161,11 @@ bool Rule::ParseSerializedRule(const std::string& serialized_rule) { |
ParseAddressFieldsFormat(json->GetStringValueForKey(kFormatKey), &format_); |
} |
+ if (json->HasStringValueForKey(kRequiredKey)) { |
+ ParseAddressFieldsRequired( |
+ json->GetStringValueForKey(kRequiredKey), &required_); |
+ } |
+ |
if (json->HasStringValueForKey(kSubKeysKey)) { |
SplitString( |
json->GetStringValueForKey(kSubKeysKey), kSeparator, &sub_keys_); |
@@ -163,6 +180,18 @@ bool Rule::ParseSerializedRule(const std::string& serialized_rule) { |
language_ = json->GetStringValueForKey(kLanguageKey); |
} |
+ if (json->HasStringValueForKey(kPostalCodeExamplesKey)) { |
+ postal_code_examples_ = json->GetStringValueForKey(kPostalCodeExamplesKey); |
+ } |
+ |
+ if (json->HasStringValueForKey(kPostalCodeFormatKey)) { |
+ postal_code_format_ = json->GetStringValueForKey(kPostalCodeFormatKey); |
+ } |
+ |
+ if (json->HasStringValueForKey(kPostalCodesUrlKey)) { |
+ postal_codes_url_ = json->GetStringValueForKey(kPostalCodesUrlKey); |
+ } |
+ |
if (json->HasStringValueForKey(kAdminAreaNameTypeKey)) { |
admin_area_name_message_id_ = |
GetMessageIdFromName(json->GetStringValueForKey(kAdminAreaNameTypeKey), |