Chromium Code Reviews| Index: chrome/browser/autofill/personal_data_manager.cc |
| diff --git a/chrome/browser/autofill/personal_data_manager.cc b/chrome/browser/autofill/personal_data_manager.cc |
| index 52b4ca7dd233d3b19e47e6e1b443c57f2a4ddb2d..3082c333f64062cad4e0701e9bd08461c80ecec3 100644 |
| --- a/chrome/browser/autofill/personal_data_manager.cc |
| +++ b/chrome/browser/autofill/personal_data_manager.cc |
| @@ -19,6 +19,8 @@ |
| #include "chrome/browser/webdata/web_data_service.h" |
| #include "chrome/browser/prefs/pref_service.h" |
| #include "chrome/common/pref_names.h" |
| +#include "third_party/WebKit/Source/WebKit/chromium/public/WebRegularExpression.h" |
|
Ilya Sherman
2011/02/03 04:24:20
nit: 80-col? I'm not exactly sure what our style
dhollowa
2011/02/03 16:23:02
Nothing to be done. Can't be split.
|
| +#include "third_party/WebKit/Source/WebKit/chromium/public/WebString.h" |
| namespace { |
| @@ -69,6 +71,18 @@ T* address_of(T& v) { |
| return &v; |
| } |
| +bool IsValidEmail(const string16& value) { |
| + // This regex is more permissive than the official rfc2822 spec on the |
| + // subject, but it does reject obvious non-email addresses. |
|
Ilya Sherman
2011/02/03 04:24:20
nit: I find raw regexes hard to read; it would be
dhollowa
2011/02/03 16:23:02
I can't think of a comment that does any better th
|
| + const string16 kEmailPattern = |
| + ASCIIToUTF16("^[^@]+@.+\\.[a-z]{2,4}$"); |
|
Ilya Sherman
2011/02/03 04:24:20
nit: Looks like ".museum" and ".travel" are valid
dhollowa
2011/02/03 16:23:02
Done.
|
| + WebKit::WebRegularExpression re(WebKit::WebString(kEmailPattern), |
| + WebKit::WebTextCaseInsensitive); |
| + bool match = re.match( |
| + WebKit::WebString(StringToLowerASCII(value))) != -1; |
|
Ilya Sherman
2011/02/03 04:24:20
nit: I would skip the local variable and just "ret
dhollowa
2011/02/03 16:23:02
Done.
|
| + return match; |
| +} |
| + |
| } // namespace |
| PersonalDataManager::~PersonalDataManager() { |
| @@ -220,6 +234,9 @@ bool PersonalDataManager::ImportFormData( |
| } |
| } |
| + if (field_type.field_type() == EMAIL_ADDRESS && !IsValidEmail(value)) |
| + continue; |
| + |
| imported_profile_->SetInfo(AutoFillType(field_type.field_type()), |
| value); |
| ++importable_fields; |