Index: chrome/browser/autofill/contact_info.cc |
diff --git a/chrome/browser/autofill/contact_info.cc b/chrome/browser/autofill/contact_info.cc |
index 8d4a08fdc25fa7f81c4288ae778a74fd58ecdab7..44e878a3bda7775298784dee1515dc46abddd7ee 100644 |
--- a/chrome/browser/autofill/contact_info.cc |
+++ b/chrome/browser/autofill/contact_info.cc |
@@ -112,7 +112,27 @@ void ContactInfo::SetInfo(const AutoFillType& type, const string16& value) { |
SetLast(value); |
else if (field_type == NAME_SUFFIX) |
set_suffix(value); |
- else if (field_type == EMAIL_ADDRESS) |
+ else if (field_type == NAME_FULL) { |
+ // TODO(dhollowa): This needs formal spec on how names are split from |
+ // unstructured string to structured fields. |
+ std::vector<string16> values; |
+ SplitStringAlongWhitespace(value, &values); |
+ if (values.size() == 1) { |
+ SetInfo(AutoFillType(NAME_FIRST), values[0]); |
+ } else if (values.size() == 2) { |
+ SetInfo(AutoFillType(NAME_FIRST), values[0]); |
+ SetInfo(AutoFillType(NAME_LAST), values[1]); |
+ } else if (values.size() == 3) { |
+ SetInfo(AutoFillType(NAME_FIRST), values[0]); |
+ SetInfo(AutoFillType(NAME_MIDDLE), values[1]); |
+ SetInfo(AutoFillType(NAME_LAST), values[2]); |
+ } else if (values.size() >= 4) { |
+ SetInfo(AutoFillType(NAME_FIRST), values[0]); |
+ SetInfo(AutoFillType(NAME_MIDDLE), values[1]); |
+ SetInfo(AutoFillType(NAME_LAST), values[2]); |
+ SetInfo(AutoFillType(NAME_SUFFIX), values[3]); |
+ } |
+ } else if (field_type == EMAIL_ADDRESS) |
email_ = value; |
else if (field_type == COMPANY_NAME) |
company_name_ = value; |