Commit 940101c4 authored by Elizabeth Popova's avatar Elizabeth Popova Committed by Chromium LUCI CQ

[Autofill] Recognize contact name/person field as full name

Add regexes for found on Russian websites names/labels.

Bug: 1154727
Change-Id: I3eba2c09559ee8bb0ec42af488cd4c210fb0e155
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2599806Reviewed-by: default avatarMatthias Körber <koerber@google.com>
Reviewed-by: default avatarChristoph Schwering <schwering@google.com>
Commit-Queue: Elizabeth Popova <lizapopova@google.com>
Cr-Commit-Position: refs/heads/master@{#842003}
parent 45d5d199
...@@ -334,13 +334,14 @@ const char kNameIgnoredRe[] = ...@@ -334,13 +334,14 @@ const char kNameIgnoredRe[] =
"|(?:사용자.?)?아이디|사용자.?ID"; // ko-KR "|(?:사용자.?)?아이디|사용자.?ID"; // ko-KR
const char kNameRe[] = const char kNameRe[] =
"^name|full.?name|your.?name|customer.?name|bill.?name|ship.?name" "^name|full.?name|your.?name|customer.?name|bill.?name|ship.?name"
"|name.*first.*last|firstandlastname" "|name.*first.*last|firstandlastname|contact.?(name|person)"
"|nombre.*y.*apellidos" // es "|nombre.*y.*apellidos" // es
"|^nom(?![a-zA-Z])" // fr-FR "|^nom(?![a-zA-Z])" // fr-FR
"|お名前|氏名" // ja-JP "|お名前|氏名" // ja-JP
"|^nome" // pt-BR, pt-PT "|^nome" // pt-BR, pt-PT
"|نام.*نام.*خانوادگی" // fa "|نام.*نام.*خانوادگی" // fa
"|姓名" // zh-CN "|姓名" // zh-CN
"|контактное.?лицо" // ru
"|(\\b|_|\\*)ad[ı]? soyad[ı]?(\\b|_|\\*)" // tr "|(\\b|_|\\*)ad[ı]? soyad[ı]?(\\b|_|\\*)" // tr
"|성명" // ko-KR "|성명" // ko-KR
"|nama.?(lengkap|penerima|kamu)"; // id "|nama.?(lengkap|penerima|kamu)"; // id
......
...@@ -567,4 +567,23 @@ TEST_F(NameFieldTest, NotAddressName) { ...@@ -567,4 +567,23 @@ TEST_F(NameFieldTest, NotAddressName) {
ASSERT_EQ(nullptr, field_.get()); ASSERT_EQ(nullptr, field_.get());
} }
// Tests that contact name is classified as full name.
TEST_F(NameFieldTest, ContactNameFull) {
FormFieldData field;
field.form_control_type = "text";
field.label = base::UTF8ToUTF16("Контактное лицо");
field.name = base::UTF8ToUTF16("contact person");
field.unique_renderer_id = MakeFieldRendererId();
list_.push_back(std::make_unique<AutofillField>(field));
FieldRendererId name = list_.back()->unique_renderer_id;
AutofillScanner scanner(list_);
field_ = Parse(&scanner);
ASSERT_NE(nullptr, field_.get());
field_->AddClassificationsForTesting(&field_candidates_map_);
ASSERT_TRUE(field_candidates_map_.find(name) != field_candidates_map_.end());
EXPECT_EQ(NAME_FULL, field_candidates_map_[name].BestHeuristicType());
}
} // namespace autofill } // namespace autofill
...@@ -2223,7 +2223,7 @@ ...@@ -2223,7 +2223,7 @@
"en": [ "en": [
{ {
"pattern_identifier": "en_full_name_preserving", "pattern_identifier": "en_full_name_preserving",
"positive_pattern": "^name|full.?name|your.?name|customer.?name|bill.?name|ship.?name|name.*first.*last|firstandlastname", "positive_pattern": "^name|full.?name|your.?name|customer.?name|bill.?name|ship.?name|name.*first.*last|firstandlastname|contact.?(name|person)",
"positive_score": 0.9, "positive_score": 0.9,
"negative_pattern": null, "negative_pattern": null,
"match_field_attributes": 3, "match_field_attributes": 3,
...@@ -2290,6 +2290,16 @@ ...@@ -2290,6 +2290,16 @@
"match_field_input_types": 1 "match_field_input_types": 1
} }
], ],
"ru": [
{
"pattern_identifier": "ru_full_name_preserving",
"positive_pattern": "контактное.?лицо",
"positive_score": 0.9,
"negative_pattern": null,
"match_field_attributes": 3,
"match_field_input_types": 1
}
],
"tr": [ "tr": [
{ {
"pattern_identifier": "tr_full_name_preserving", "pattern_identifier": "tr_full_name_preserving",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment