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/contact_info.h" | 5 #include "chrome/browser/autofill/contact_info.h" |
6 | 6 |
7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "base/string_util.h" | 8 #include "base/string_util.h" |
9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
10 #include "chrome/browser/autofill/autofill_type.h" | 10 #include "chrome/browser/autofill/autofill_type.h" |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
74 if (!last().empty()) | 74 if (!last().empty()) |
75 available_types->insert(NAME_LAST); | 75 available_types->insert(NAME_LAST); |
76 | 76 |
77 if (!MiddleInitial().empty()) | 77 if (!MiddleInitial().empty()) |
78 available_types->insert(NAME_MIDDLE_INITIAL); | 78 available_types->insert(NAME_MIDDLE_INITIAL); |
79 | 79 |
80 if (!FullName().empty()) | 80 if (!FullName().empty()) |
81 available_types->insert(NAME_FULL); | 81 available_types->insert(NAME_FULL); |
82 } | 82 } |
83 | 83 |
84 void NameInfo::FindInfoMatches(const AutofillType& type, | 84 void NameInfo::FindInfoMatches(AutofillFieldType type, |
85 const string16& info, | 85 const string16& info, |
86 std::vector<string16>* matched_text) const { | 86 std::vector<string16>* matched_text) const { |
87 DCHECK(matched_text); | 87 DCHECK(matched_text); |
88 | 88 |
89 string16 match; | 89 string16 match; |
90 if (type.field_type() == UNKNOWN_TYPE) { | 90 if (type == UNKNOWN_TYPE) { |
91 for (size_t i = 0; i < kAutoFillNameInfoLength; i++) { | 91 for (size_t i = 0; i < kAutoFillNameInfoLength; i++) { |
92 if (FindInfoMatchesHelper(kAutoFillNameInfoTypes[i], info, &match)) | 92 if (FindInfoMatchesHelper(kAutoFillNameInfoTypes[i], info, &match)) |
93 matched_text->push_back(match); | 93 matched_text->push_back(match); |
94 } | 94 } |
95 } else if (FindInfoMatchesHelper(type.field_type(), info, &match)) { | 95 } else if (FindInfoMatchesHelper(type, info, &match)) { |
96 matched_text->push_back(match); | 96 matched_text->push_back(match); |
97 } | 97 } |
98 } | 98 } |
99 | 99 |
100 string16 NameInfo::GetFieldText(const AutofillType& type) const { | 100 string16 NameInfo::GetFieldText(AutofillFieldType type) const { |
101 AutofillFieldType field_type = type.field_type(); | 101 if (type == NAME_FIRST) |
102 if (field_type == NAME_FIRST) | |
103 return first(); | 102 return first(); |
104 | 103 |
105 if (field_type == NAME_MIDDLE) | 104 if (type == NAME_MIDDLE) |
106 return middle(); | 105 return middle(); |
107 | 106 |
108 if (field_type == NAME_LAST) | 107 if (type == NAME_LAST) |
109 return last(); | 108 return last(); |
110 | 109 |
111 if (field_type == NAME_MIDDLE_INITIAL) | 110 if (type == NAME_MIDDLE_INITIAL) |
112 return MiddleInitial(); | 111 return MiddleInitial(); |
113 | 112 |
114 if (field_type == NAME_FULL) | 113 if (type == NAME_FULL) |
115 return FullName(); | 114 return FullName(); |
116 | 115 |
117 return string16(); | 116 return string16(); |
118 } | 117 } |
119 | 118 |
120 void NameInfo::SetInfo(const AutofillType& type, const string16& value) { | 119 void NameInfo::SetInfo(AutofillFieldType type, const string16& value) { |
121 AutofillFieldType field_type = type.field_type(); | 120 DCHECK_EQ(AutofillType::NAME, AutofillType(type).group()); |
122 DCHECK_EQ(AutofillType::NAME, type.group()); | 121 if (type == NAME_FIRST) |
123 if (field_type == NAME_FIRST) | |
124 SetFirst(value); | 122 SetFirst(value); |
125 else if (field_type == NAME_MIDDLE || field_type == NAME_MIDDLE_INITIAL) | 123 else if (type == NAME_MIDDLE || type == NAME_MIDDLE_INITIAL) |
126 SetMiddle(value); | 124 SetMiddle(value); |
127 else if (field_type == NAME_LAST) | 125 else if (type == NAME_LAST) |
128 SetLast(value); | 126 SetLast(value); |
129 else if (field_type == NAME_FULL) | 127 else if (type == NAME_FULL) |
130 SetFullName(value); | 128 SetFullName(value); |
131 else | 129 else |
132 NOTREACHED(); | 130 NOTREACHED(); |
133 } | 131 } |
134 | 132 |
135 bool NameInfo::FindInfoMatchesHelper(const AutofillFieldType& field_type, | 133 bool NameInfo::FindInfoMatchesHelper(AutofillFieldType field_type, |
136 const string16& info, | 134 const string16& info, |
137 string16* match) const { | 135 string16* match) const { |
138 if (match == NULL) { | 136 if (match == NULL) { |
139 DLOG(ERROR) << "NULL match string passed in"; | 137 DLOG(ERROR) << "NULL match string passed in"; |
140 return false; | 138 return false; |
141 } | 139 } |
142 | 140 |
143 match->clear(); | 141 match->clear(); |
144 if (field_type == NAME_FIRST && | 142 if (field_type == NAME_FIRST && |
145 StartsWith(first(), info, false)) { | 143 StartsWith(first(), info, false)) { |
146 *match = first(); | 144 *match = first(); |
147 } else if (field_type == NAME_MIDDLE && | 145 } else if (field_type == NAME_MIDDLE && |
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
389 if (email_ == text) | 387 if (email_ == text) |
390 possible_types->insert(EMAIL_ADDRESS); | 388 possible_types->insert(EMAIL_ADDRESS); |
391 } | 389 } |
392 | 390 |
393 void EmailInfo::GetAvailableFieldTypes(FieldTypeSet* available_types) const { | 391 void EmailInfo::GetAvailableFieldTypes(FieldTypeSet* available_types) const { |
394 DCHECK(available_types); | 392 DCHECK(available_types); |
395 if (!email_.empty()) | 393 if (!email_.empty()) |
396 available_types->insert(EMAIL_ADDRESS); | 394 available_types->insert(EMAIL_ADDRESS); |
397 } | 395 } |
398 | 396 |
399 void EmailInfo::FindInfoMatches(const AutofillType& type, | 397 void EmailInfo::FindInfoMatches(AutofillFieldType type, |
400 const string16& info, | 398 const string16& info, |
401 std::vector<string16>* matched_text) const { | 399 std::vector<string16>* matched_text) const { |
402 DCHECK(matched_text); | 400 DCHECK(matched_text); |
403 | 401 |
404 string16 match; | 402 string16 match; |
405 if (type.field_type() == UNKNOWN_TYPE && StartsWith(email_, info, false)) { | 403 if ((type == UNKNOWN_TYPE || type == EMAIL_ADDRESS) && |
| 404 StartsWith(email_, info, false)) { |
406 matched_text->push_back(email_); | 405 matched_text->push_back(email_); |
407 } else if (type.field_type() == EMAIL_ADDRESS && | |
408 StartsWith(email_, info, false)) { | |
409 matched_text->push_back(email_); | |
410 } | 406 } |
411 } | 407 } |
412 | 408 |
413 string16 EmailInfo::GetFieldText(const AutofillType& type) const { | 409 string16 EmailInfo::GetFieldText(AutofillFieldType type) const { |
414 AutofillFieldType field_type = type.field_type(); | 410 if (type == EMAIL_ADDRESS) |
415 if (field_type == EMAIL_ADDRESS) | |
416 return email_; | 411 return email_; |
417 | 412 |
418 return string16(); | 413 return string16(); |
419 } | 414 } |
420 | 415 |
421 void EmailInfo::SetInfo(const AutofillType& type, const string16& value) { | 416 void EmailInfo::SetInfo(AutofillFieldType type, const string16& value) { |
422 DCHECK_EQ(AutofillType::EMAIL, type.group()); | 417 DCHECK_EQ(EMAIL_ADDRESS, type); |
423 email_ = value; | 418 email_ = value; |
424 } | 419 } |
425 | 420 |
426 CompanyInfo::CompanyInfo() {} | 421 CompanyInfo::CompanyInfo() {} |
427 | 422 |
428 CompanyInfo::CompanyInfo(const CompanyInfo& info) : FormGroup() { | 423 CompanyInfo::CompanyInfo(const CompanyInfo& info) : FormGroup() { |
429 *this = info; | 424 *this = info; |
430 } | 425 } |
431 | 426 |
432 CompanyInfo::~CompanyInfo() {} | 427 CompanyInfo::~CompanyInfo() {} |
(...skipping 14 matching lines...) Expand all Loading... |
447 possible_types->insert(COMPANY_NAME); | 442 possible_types->insert(COMPANY_NAME); |
448 } | 443 } |
449 | 444 |
450 void CompanyInfo::GetAvailableFieldTypes(FieldTypeSet* available_types) const { | 445 void CompanyInfo::GetAvailableFieldTypes(FieldTypeSet* available_types) const { |
451 DCHECK(available_types); | 446 DCHECK(available_types); |
452 | 447 |
453 if (!company_name_.empty()) | 448 if (!company_name_.empty()) |
454 available_types->insert(COMPANY_NAME); | 449 available_types->insert(COMPANY_NAME); |
455 } | 450 } |
456 | 451 |
457 void CompanyInfo::FindInfoMatches(const AutofillType& type, | 452 void CompanyInfo::FindInfoMatches(AutofillFieldType type, |
458 const string16& info, | 453 const string16& info, |
459 std::vector<string16>* matched_text) const { | 454 std::vector<string16>* matched_text) const { |
460 DCHECK(matched_text); | 455 DCHECK(matched_text); |
461 | 456 |
462 string16 match; | 457 string16 match; |
463 if (type.field_type() == UNKNOWN_TYPE && | 458 if ((type == UNKNOWN_TYPE || type == COMPANY_NAME) && |
464 StartsWith(company_name_, info, false)) { | |
465 matched_text->push_back(company_name_); | |
466 } else if (type.field_type() == COMPANY_NAME && | |
467 StartsWith(company_name_, info, false)) { | 459 StartsWith(company_name_, info, false)) { |
468 matched_text->push_back(company_name_); | 460 matched_text->push_back(company_name_); |
469 } | 461 } |
470 } | 462 } |
471 | 463 |
472 string16 CompanyInfo::GetFieldText(const AutofillType& type) const { | 464 string16 CompanyInfo::GetFieldText(AutofillFieldType type) const { |
473 AutofillFieldType field_type = type.field_type(); | 465 if (type == COMPANY_NAME) |
474 | |
475 if (field_type == COMPANY_NAME) | |
476 return company_name_; | 466 return company_name_; |
477 | 467 |
478 return string16(); | 468 return string16(); |
479 } | 469 } |
480 | 470 |
481 void CompanyInfo::SetInfo(const AutofillType& type, const string16& value) { | 471 void CompanyInfo::SetInfo(AutofillFieldType type, const string16& value) { |
482 DCHECK_EQ(AutofillType::COMPANY, type.group()); | 472 DCHECK_EQ(COMPANY_NAME, type); |
483 company_name_ = value; | 473 company_name_ = value; |
484 } | 474 } |
OLD | NEW |