Chromium Code Reviews| Index: third_party/libaddressinput/chromium/chrome_address_validator.cc |
| diff --git a/third_party/libaddressinput/chromium/chrome_address_validator.cc b/third_party/libaddressinput/chromium/chrome_address_validator.cc |
| index b0bd189d8f0542de34bc185ab102e1cee1d2b28d..26e6fa537dd63703aebb74902393818c7c412860 100644 |
| --- a/third_party/libaddressinput/chromium/chrome_address_validator.cc |
| +++ b/third_party/libaddressinput/chromium/chrome_address_validator.cc |
| @@ -17,6 +17,7 @@ |
| #include "third_party/libaddressinput/src/cpp/include/libaddressinput/address_normalizer.h" |
| #include "third_party/libaddressinput/src/cpp/include/libaddressinput/source.h" |
| #include "third_party/libaddressinput/src/cpp/include/libaddressinput/storage.h" |
| +#include "third_party/libaddressinput/src/cpp/src/rule.h" |
| namespace autofill { |
| namespace { |
| @@ -27,6 +28,7 @@ using ::i18n::addressinput::AddressNormalizer; |
| using ::i18n::addressinput::BuildCallback; |
| using ::i18n::addressinput::FieldProblemMap; |
| using ::i18n::addressinput::PreloadSupplier; |
| +using ::i18n::addressinput::Rule; |
| using ::i18n::addressinput::Source; |
| using ::i18n::addressinput::Storage; |
| @@ -58,6 +60,20 @@ void AddressValidator::LoadRules(const std::string& region_code) { |
| supplier_->LoadRules(region_code, *rules_loaded_); |
| } |
| +std::vector<std::string> AddressValidator::GetRegionSubKeys( |
| + const std::string& region_code) const { |
| + auto rules = supplier_->GetRulesForRegion(region_code); |
|
sebsg
2017/02/10 16:00:32
Can you add DCHECK(AreRulesLoadedForRegion(region_
Parastoo
2017/02/13 21:57:23
Done.
|
| + auto rule_iterator = rules.find("data/" + region_code); |
| + |
| + if (rule_iterator != rules.end()) { |
| + if (rule_iterator->second) |
| + return (rule_iterator->second)->GetSubKeys(); |
| + return std::vector<std::string>(); |
| + } else { |
| + return std::vector<std::string>(); |
| + } |
| +} |
| + |
| AddressValidator::Status AddressValidator::ValidateAddress( |
| const AddressData& address, |
| const FieldProblemMap* filter, |
| @@ -140,8 +156,10 @@ void AddressValidator::Validated(bool success, |
| void AddressValidator::RulesLoaded(bool success, |
| const std::string& region_code, |
| int) { |
| - if (load_rules_listener_) |
| + if (load_rules_listener_) { |
| load_rules_listener_->OnAddressValidationRulesLoaded(region_code, success); |
| + load_rules_listener_->OnGettingSubKeysRulesLoaded(region_code, success); |
| + } |
| // Count the first failed attempt to load rules as well. |
| if (success || attempts_number_[region_code] + 1 >= kMaxAttemptsNumber) |