Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(372)

Unified Diff: trunk/src/components/autofill/core/browser/phone_number_i18n.cc

Issue 383123011: Revert 282761 "Change PhoneNumber::SetInfo to only apply formatt..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: trunk/src/components/autofill/core/browser/phone_number_i18n.cc
===================================================================
--- trunk/src/components/autofill/core/browser/phone_number_i18n.cc (revision 282777)
+++ trunk/src/components/autofill/core/browser/phone_number_i18n.cc (working copy)
@@ -100,9 +100,8 @@
// The |default_region| should already be sanitized.
DCHECK_EQ(2U, default_region.size());
- if (phone_util->ParseAndKeepRawInput(
- number_text, default_region, i18n_number) !=
- PhoneNumberUtil::NO_PARSING_ERROR) {
+ if (phone_util->Parse(number_text, default_region, i18n_number) !=
+ PhoneNumberUtil::NO_PARSING_ERROR) {
return false;
}
@@ -132,13 +131,21 @@
}
*number = base::UTF8ToUTF16(subscriber_number);
*city_code = base::UTF8ToUTF16(area_code);
+ *country_code = base::string16();
+ phone_util->NormalizeDigitsOnly(&number_text);
+ base::string16 normalized_number(base::UTF8ToUTF16(number_text));
+
// Check if parsed number has a country code that was not inferred from the
// region.
- if (i18n_number->has_country_code() &&
- i18n_number->country_code_source() != PhoneNumber::FROM_DEFAULT_COUNTRY) {
+ if (i18n_number->has_country_code()) {
*country_code = base::UTF8ToUTF16(
base::StringPrintf("%d", i18n_number->country_code()));
+ if (normalized_number.length() <= national_significant_number.length() &&
+ !StartsWith(normalized_number, *country_code,
+ true /* case_sensitive */)) {
+ country_code->clear();
+ }
}
// The region might be different from what we started with.

Powered by Google App Engine
This is Rietveld 408576698