| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/autofill/credit_card_field.h" | 5 #include "chrome/browser/autofill/credit_card_field.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 115 // Toolbar Bug 51451: indeed, simply matching "month" is too general for | 115 // Toolbar Bug 51451: indeed, simply matching "month" is too general for |
| 116 // https://rps.fidelity.com/ftgw/rps/RtlCust/CreatePIN/Init. | 116 // https://rps.fidelity.com/ftgw/rps/RtlCust/CreatePIN/Init. |
| 117 // Instead, we match only words beginning with "month". | 117 // Instead, we match only words beginning with "month". |
| 118 if (is_ecml) | 118 if (is_ecml) |
| 119 pattern = GetEcmlPattern(kEcmlCardExpireMonth); | 119 pattern = GetEcmlPattern(kEcmlCardExpireMonth); |
| 120 else | 120 else |
| 121 pattern = l10n_util::GetStringUTF16(IDS_AUTOFILL_EXPIRATION_MONTH_RE); | 121 pattern = l10n_util::GetStringUTF16(IDS_AUTOFILL_EXPIRATION_MONTH_RE); |
| 122 | 122 |
| 123 if ((!credit_card_field->expiration_month_ || | 123 if ((!credit_card_field->expiration_month_ || |
| 124 credit_card_field->expiration_month_->IsEmpty()) && | 124 credit_card_field->expiration_month_->IsEmpty()) && |
| 125 ParseField(scanner, pattern, &credit_card_field->expiration_month_)) { | 125 ParseFieldSpecifics(scanner, pattern, MATCH_DEFAULT | MATCH_SELECT, |
| 126 &credit_card_field->expiration_month_)) { |
| 126 if (is_ecml) | 127 if (is_ecml) |
| 127 pattern = GetEcmlPattern(kEcmlCardExpireYear); | 128 pattern = GetEcmlPattern(kEcmlCardExpireYear); |
| 128 else | 129 else |
| 129 pattern = l10n_util::GetStringUTF16(IDS_AUTOFILL_EXPIRATION_DATE_RE); | 130 pattern = l10n_util::GetStringUTF16(IDS_AUTOFILL_EXPIRATION_DATE_RE); |
| 130 | 131 |
| 131 if (!ParseField(scanner, pattern, | 132 if (!ParseFieldSpecifics(scanner, pattern, MATCH_DEFAULT | MATCH_SELECT, |
| 132 &credit_card_field->expiration_year_)) { | 133 &credit_card_field->expiration_year_)) { |
| 133 scanner->Rewind(); | 134 scanner->Rewind(); |
| 134 return NULL; | 135 return NULL; |
| 135 } | 136 } |
| 136 continue; | 137 continue; |
| 137 } | 138 } |
| 138 } | 139 } |
| 139 | 140 |
| 140 if (ParseField(scanner, GetEcmlPattern(kEcmlCardExpireDay), NULL)) | 141 if (ParseFieldSpecifics(scanner, GetEcmlPattern(kEcmlCardExpireDay), |
| 142 MATCH_DEFAULT | MATCH_SELECT, NULL)) { |
| 141 continue; | 143 continue; |
| 144 } |
| 142 | 145 |
| 143 // Some pages (e.g. ExpediaBilling.html) have a "card description" | 146 // Some pages (e.g. ExpediaBilling.html) have a "card description" |
| 144 // field; we parse this field but ignore it. | 147 // field; we parse this field but ignore it. |
| 145 // We also ignore any other fields within a credit card block that | 148 // We also ignore any other fields within a credit card block that |
| 146 // start with "card", under the assumption that they are related to | 149 // start with "card", under the assumption that they are related to |
| 147 // the credit card section being processed but are uninteresting to us. | 150 // the credit card section being processed but are uninteresting to us. |
| 148 if (ParseField(scanner, | 151 if (ParseField(scanner, |
| 149 l10n_util::GetStringUTF16(IDS_AUTOFILL_CARD_IGNORED_RE), | 152 l10n_util::GetStringUTF16(IDS_AUTOFILL_CARD_IGNORED_RE), |
| 150 NULL)) { | 153 NULL)) { |
| 151 continue; | 154 continue; |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 200 if (cardholder_last_ == NULL) | 203 if (cardholder_last_ == NULL) |
| 201 ok = ok && AddClassification(cardholder_, CREDIT_CARD_NAME, map); | 204 ok = ok && AddClassification(cardholder_, CREDIT_CARD_NAME, map); |
| 202 | 205 |
| 203 ok = ok && AddClassification(type_, CREDIT_CARD_TYPE, map); | 206 ok = ok && AddClassification(type_, CREDIT_CARD_TYPE, map); |
| 204 ok = ok && AddClassification(expiration_month_, CREDIT_CARD_EXP_MONTH, map); | 207 ok = ok && AddClassification(expiration_month_, CREDIT_CARD_EXP_MONTH, map); |
| 205 ok = ok && AddClassification(expiration_year_, | 208 ok = ok && AddClassification(expiration_year_, |
| 206 CREDIT_CARD_EXP_4_DIGIT_YEAR, | 209 CREDIT_CARD_EXP_4_DIGIT_YEAR, |
| 207 map); | 210 map); |
| 208 return ok; | 211 return ok; |
| 209 } | 212 } |
| OLD | NEW |