Index: components/autofill/core/browser/phone_number.cc |
diff --git a/components/autofill/core/browser/phone_number.cc b/components/autofill/core/browser/phone_number.cc |
index 66971ae05f5892286d11496557ca233f549cc025..6783677e3e77644882418e3098d1b94727ed3b56 100644 |
--- a/components/autofill/core/browser/phone_number.cc |
+++ b/components/autofill/core/browser/phone_number.cc |
@@ -134,9 +134,16 @@ bool PhoneNumber::SetInfo(const AutofillType& type, |
if (number_.empty()) |
return true; |
- // Store a formatted (i.e., pretty printed) version of the number. |
+ // Store a formatted (i.e., pretty printed) version of the number if either |
+ // the number doesn't contain formatting marks. |
UpdateCacheIfNeeded(app_locale); |
- number_ = cached_parsed_phone_.GetFormattedNumber(); |
+ if (base::ContainsOnlyChars(number_, base::ASCIIToUTF16("+0123456789"))) { |
+ number_ = cached_parsed_phone_.GetFormattedNumber(); |
+ } else if (i18n::NormalizePhoneNumber( |
+ number_, GetRegion(*profile_, app_locale)).empty()) { |
+ // The number doesn't make sense for this region; clear it. |
+ number_.clear(); |
+ } |
return !number_.empty(); |
} |