| Index: third_party/libaddressinput/chromium/libaddressinput_util.cc | 
| diff --git a/third_party/libaddressinput/chromium/addressinput_util.cc b/third_party/libaddressinput/chromium/libaddressinput_util.cc | 
| similarity index 54% | 
| copy from third_party/libaddressinput/chromium/addressinput_util.cc | 
| copy to third_party/libaddressinput/chromium/libaddressinput_util.cc | 
| index 3af6137de46c2334f9550813b2e32eb996c3a3b4..11f675fce5ff3b42c43d525ec7b69eab58742328 100644 | 
| --- a/third_party/libaddressinput/chromium/addressinput_util.cc | 
| +++ b/third_party/libaddressinput/chromium/libaddressinput_util.cc | 
| @@ -2,14 +2,14 @@ | 
| // Use of this source code is governed by a BSD-style license that can be | 
| // found in the LICENSE file. | 
|  | 
| -#include "third_party/libaddressinput/chromium/addressinput_util.h" | 
| +#include "third_party/libaddressinput/chromium/libaddressinput_util.h" | 
|  | 
| #include <algorithm> | 
|  | 
| #include "base/logging.h" | 
| #include "base/macros.h" | 
| -#include "third_party/libaddressinput/chromium/cpp/include/libaddressinput/address_data.h" | 
| -#include "third_party/libaddressinput/chromium/cpp/include/libaddressinput/address_metadata.h" | 
| +#include "third_party/libaddressinput/src/cpp/include/libaddressinput/address_data.h" | 
| +#include "third_party/libaddressinput/src/cpp/include/libaddressinput/address_metadata.h" | 
|  | 
| namespace autofill { | 
| namespace addressinput { | 
| @@ -21,32 +21,31 @@ using ::i18n::addressinput::AddressField; | 
| using ::i18n::addressinput::AddressProblem; | 
| using ::i18n::addressinput::IsFieldRequired; | 
|  | 
| -// Returns true if the |problem| should not be reported for the |field| because | 
| -// the |filter| excludes it. | 
| -bool FilterExcludes( | 
| -    const std::multimap<AddressField, AddressProblem::Type>* filter, | 
| -    AddressField field, | 
| -    AddressProblem::Type problem) { | 
| -  return filter != NULL && !filter->empty() && | 
| -         std::find( | 
| -             filter->begin(), | 
| -             filter->end(), | 
| -             std::multimap<AddressField, AddressProblem::Type>::value_type( | 
| -                 field, problem)) == filter->end(); | 
| +using ::i18n::addressinput::MISSING_REQUIRED_FIELD; | 
| + | 
| +// Based on ::i18n::addressinput::ValidationTask::ShouldReport(). | 
| +bool ShouldReport(const std::multimap<AddressField, AddressProblem>* filter, | 
| +                  AddressField field, | 
| +                  AddressProblem problem) { | 
| +  return filter == NULL || filter->empty() || | 
| +         std::find(filter->begin(), | 
| +                   filter->end(), | 
| +                   std::multimap<AddressField, AddressProblem>::value_type( | 
| +                       field, problem)) != filter->end(); | 
| } | 
|  | 
| }  // namespace | 
|  | 
| bool HasAllRequiredFields(const AddressData& address_to_check) { | 
| -  std::multimap<AddressField, AddressProblem::Type> problems; | 
| +  std::multimap<AddressField, AddressProblem> problems; | 
| ValidateRequiredFields(address_to_check, NULL, &problems); | 
| return problems.empty(); | 
| } | 
|  | 
| void ValidateRequiredFields( | 
| const AddressData& address_to_check, | 
| -    const std::multimap<AddressField, AddressProblem::Type>* filter, | 
| -    std::multimap<AddressField, AddressProblem::Type>* problems) { | 
| +    const std::multimap<AddressField, AddressProblem>* filter, | 
| +    std::multimap<AddressField, AddressProblem>* problems) { | 
| DCHECK(problems); | 
|  | 
| static const AddressField kFields[] = { | 
| @@ -63,10 +62,8 @@ void ValidateRequiredFields( | 
| AddressField field = kFields[i]; | 
| if (address_to_check.IsFieldEmpty(field) && | 
| IsFieldRequired(field, address_to_check.region_code) && | 
| -        !FilterExcludes( | 
| -            filter, field, AddressProblem::MISSING_REQUIRED_FIELD)) { | 
| -      problems->insert( | 
| -          std::make_pair(field, AddressProblem::MISSING_REQUIRED_FIELD)); | 
| +        ShouldReport(filter, field, MISSING_REQUIRED_FIELD)) { | 
| +      problems->insert(std::make_pair(field, MISSING_REQUIRED_FIELD)); | 
| } | 
| } | 
| } | 
|  |