Index: third_party/libaddressinput/chromium/chrome_address_validator.h |
diff --git a/third_party/libaddressinput/chromium/preload_address_validator.h b/third_party/libaddressinput/chromium/chrome_address_validator.h |
similarity index 68% |
rename from third_party/libaddressinput/chromium/preload_address_validator.h |
rename to third_party/libaddressinput/chromium/chrome_address_validator.h |
index 8b22040b912a95e5bbb60569bb6f160855d0a039..f85bf379b65adf3cde897d588525787178186059 100644 |
--- a/third_party/libaddressinput/chromium/preload_address_validator.h |
+++ b/third_party/libaddressinput/chromium/chrome_address_validator.h |
@@ -2,8 +2,8 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#ifndef THIRD_PARTY_LIBADDRESSINPUT_CHROMIUM_PRELOAD_ADDRESS_VALIDATOR_H_ |
-#define THIRD_PARTY_LIBADDRESSINPUT_CHROMIUM_PRELOAD_ADDRESS_VALIDATOR_H_ |
+#ifndef THIRD_PARTY_LIBADDRESSINPUT_CHROMIUM_CHROME_ADDRESS_VALIDATOR_H_ |
+#define THIRD_PARTY_LIBADDRESSINPUT_CHROMIUM_CHROME_ADDRESS_VALIDATOR_H_ |
#include <cstddef> |
#include <string> |
@@ -14,28 +14,34 @@ |
#include "third_party/libaddressinput/src/cpp/include/libaddressinput/address_field.h" |
#include "third_party/libaddressinput/src/cpp/include/libaddressinput/address_validator.h" |
#include "third_party/libaddressinput/src/cpp/include/libaddressinput/callback.h" |
+#include "third_party/libaddressinput/src/cpp/include/libaddressinput/preload_supplier.h" |
namespace i18n { |
namespace addressinput { |
- |
+class AddressNormalizer; |
class Downloader; |
-class PreloadSupplier; |
class Storage; |
-class Synonyms; |
struct AddressData; |
- |
-} // namespace addressinput |
-} // namespace i18n |
+struct AddressInputHelper; |
+} |
+} |
namespace autofill { |
-class Suggestions; |
- |
-// Interface to the libaddressinput AddressValidator for Chromium Autofill. |
-class PreloadAddressValidator { |
+class InputSuggester; |
+class LoadRulesDelegate; |
+ |
+// Interface to the libaddressinput AddressValidator for Chromium Autofill. The |
+// class is named AddressValidator to simplify switching between libaddressinput |
+// and this version. |
+// |
+// It's not possible to name this file address_validator.h because some |
+// compilers do not handle multiple files with the same name (although in |
+// different directories) gracefully. This class is a shim between upstream |
+// libaddressinput API and the API that Chrome expects, hence the file name |
+// chrome_address_validator.h. |
+class AddressValidator { |
public: |
- typedef ::i18n::addressinput::Callback<std::string, int> Callback; |
- |
// The status of address validation. |
enum Status { |
// Address validation completed successfully. Check |problems| to see if any |
@@ -51,12 +57,12 @@ class PreloadAddressValidator { |
}; |
// Takes ownership of |downloader| and |storage|. |
- PreloadAddressValidator( |
- const std::string& validation_data_url, |
- scoped_ptr< ::i18n::addressinput::Downloader> downloader, |
- scoped_ptr< ::i18n::addressinput::Storage> storage); |
+ AddressValidator(const std::string& validation_data_url, |
+ scoped_ptr< ::i18n::addressinput::Downloader> downloader, |
+ scoped_ptr< ::i18n::addressinput::Storage> storage, |
+ LoadRulesDelegate* load_rules_delegate); |
- virtual ~PreloadAddressValidator(); |
+ virtual ~AddressValidator(); |
// Loads the generic validation rules for |region_code| and specific rules |
// for the regions's administrative areas, localities, and dependent |
@@ -67,9 +73,8 @@ class PreloadAddressValidator { |
// https://i18napis.appspot.com/ssl-aggregate-address/data/US |
// |
// If the rules are already in progress of being loaded, it does nothing. |
- // Calls |loaded| when the loading has finished. |
- virtual void LoadRules(const std::string& region_code, |
- const Callback& loaded); |
+ // Invokes |load_rules_delegate| when the loading has finished. |
+ virtual void LoadRules(const std::string& region_code); |
// Validates the |address| and populates |problems| with the validation |
// problems, filtered according to the |filter| parameter. |
@@ -77,7 +82,7 @@ class PreloadAddressValidator { |
// If the |filter| is empty, then all discovered validation problems are |
// returned. If the |filter| contains problem elements, then only the problems |
// in the |filter| may be returned. |
- virtual Status Validate( |
+ virtual Status ValidateAddress( |
const ::i18n::addressinput::AddressData& address, |
const ::i18n::addressinput::FieldProblemMap* filter, |
::i18n::addressinput::FieldProblemMap* problems) const; |
@@ -123,19 +128,26 @@ class PreloadAddressValidator { |
const ::i18n::addressinput::AddressData&, |
const ::i18n::addressinput::FieldProblemMap&); |
+ void RulesLoaded(bool success, const std::string& country_code, int); |
+ |
const scoped_ptr< ::i18n::addressinput::PreloadSupplier> supplier_; |
- const scoped_ptr<Suggestions> suggestions_; |
- const scoped_ptr< ::i18n::addressinput::Synonyms> synonyms_; |
+ const scoped_ptr<InputSuggester> input_suggester_; |
+ const scoped_ptr< ::i18n::addressinput::AddressNormalizer> normalizer_; |
const scoped_ptr<const ::i18n::addressinput::AddressValidator> validator_; |
+ const scoped_ptr<const ::i18n::addressinput::AddressInputHelper> |
+ input_helper_; |
const scoped_ptr<const ::i18n::addressinput::AddressValidator::Callback> |
validated_; |
+ const scoped_ptr<const ::i18n::addressinput::PreloadSupplier::Callback> |
+ rules_loaded_; |
+ LoadRulesDelegate* const load_rules_delegate_; // Not owned. |
friend class MockAddressValidator; |
- PreloadAddressValidator(); |
+ AddressValidator(); |
- DISALLOW_COPY_AND_ASSIGN(PreloadAddressValidator); |
+ DISALLOW_COPY_AND_ASSIGN(AddressValidator); |
}; |
} // namespace autofill |
-#endif // THIRD_PARTY_LIBADDRESSINPUT_CHROMIUM_PRELOAD_ADDRESS_VALIDATOR_H_ |
+#endif // THIRD_PARTY_LIBADDRESSINPUT_CHROMIUM_CHROME_ADDRESS_VALIDATOR_H_ |