| 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..320451b6d71a86e956219db03ee0cc8756921fca 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) {
|
| + if (!AreRulesLoadedForRegion(region_code))
|
| + return std::vector<std::string>();
|
| +
|
| + auto rules = supplier_->GetRulesForRegion(region_code);
|
| + auto rule_iterator = rules.find("data/" + region_code);
|
| +
|
| + if (rule_iterator == rules.end() || !rule_iterator->second)
|
| + return std::vector<std::string>();
|
| +
|
| + return rule_iterator->second->GetSubKeys();
|
| +}
|
| +
|
| AddressValidator::Status AddressValidator::ValidateAddress(
|
| const AddressData& address,
|
| const FieldProblemMap* filter,
|
| @@ -141,7 +157,7 @@ void AddressValidator::RulesLoaded(bool success,
|
| const std::string& region_code,
|
| int) {
|
| if (load_rules_listener_)
|
| - load_rules_listener_->OnAddressValidationRulesLoaded(region_code, success);
|
| + load_rules_listener_->OnAddressRulesLoaded(region_code, success);
|
|
|
| // Count the first failed attempt to load rules as well.
|
| if (success || attempts_number_[region_code] + 1 >= kMaxAttemptsNumber)
|
|
|