Commit a773dfdc authored by Nikunj Bhagat's avatar Nikunj Bhagat Committed by Commit Bot

Add FormSignature to TextFieldDidChange

Bug: 842370
Change-Id: I5ecc2536c6f205c2d6974c555a46e227488d26e3
Reviewed-on: https://chromium-review.googlesource.com/1108551Reviewed-by: default avatarSebastien Seguin-Gagnon <sebsg@chromium.org>
Reviewed-by: default avatarSteven Holte <holte@chromium.org>
Commit-Queue: Nik Bhagat <nikunjb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569511}
parent e58ad2f7
......@@ -501,8 +501,8 @@ void AutofillManager::OnTextFieldDidChangeImpl(const FormData& form,
UpdatePendingForm(form);
if (!user_did_type_ || autofill_field->is_autofilled)
form_interactions_ukm_logger_->LogTextFieldDidChange(
*autofill_field, form_structure->form_parsed_timestamp());
form_interactions_ukm_logger_->LogTextFieldDidChange(*form_structure,
*autofill_field);
if (!user_did_type_) {
user_did_type_ = true;
......
......@@ -1796,12 +1796,14 @@ void AutofillMetrics::FormInteractionsUkmLogger::LogDidFillSuggestion(
}
void AutofillMetrics::FormInteractionsUkmLogger::LogTextFieldDidChange(
const AutofillField& field,
const base::TimeTicks& form_parsed_timestamp) {
const FormStructure& form,
const AutofillField& field) {
if (!CanLog())
return;
ukm::builders::Autofill_TextFieldDidChange(source_id_)
.SetFormSignature(HashFormSignature(form.form_signature()))
.SetFieldSignature(HashFieldSignature(field.GetFieldSignature()))
.SetFieldTypeGroup(static_cast<int>(field.Type().group()))
.SetHeuristicType(static_cast<int>(field.heuristic_type()))
.SetServerType(static_cast<int>(field.server_type()))
......@@ -1810,7 +1812,7 @@ void AutofillMetrics::FormInteractionsUkmLogger::LogTextFieldDidChange(
.SetIsAutofilled(field.is_autofilled)
.SetIsEmpty(field.IsEmpty())
.SetMillisecondsSinceFormParsed(
MillisecondsSinceFormParsed(form_parsed_timestamp))
MillisecondsSinceFormParsed(form.form_parsed_timestamp()))
.Record(ukm_recorder_);
}
......
......@@ -692,8 +692,8 @@ class AutofillMetrics {
void LogDidFillSuggestion(int record_type,
const FormStructure& form,
const AutofillField& field);
void LogTextFieldDidChange(const AutofillField& field,
const base::TimeTicks& form_parsed_timestamp);
void LogTextFieldDidChange(const FormStructure& form,
const AutofillField& field);
void LogFieldFillStatus(const FormStructure& form,
const AutofillField& field,
QualityMetricType metric_type);
......
......@@ -6307,7 +6307,11 @@ TEST_F(AutofillMetricsTest, UserHappinessFormInteraction_AddressForm) {
{UkmTextFieldDidChangeType::kHtmlFieldModeName, HTML_MODE_NONE},
{UkmTextFieldDidChangeType::kIsAutofilledName, false},
{UkmTextFieldDidChangeType::kIsEmptyName, true},
{UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0}},
{UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0},
{UkmTextFieldDidChangeType::kFieldSignatureName,
Collapse(CalculateFieldSignatureForField(form.fields[0]))},
{UkmTextFieldDidChangeType::kFormSignatureName,
Collapse(CalculateFormSignature(form))}},
{{UkmTextFieldDidChangeType::kFieldTypeGroupName, NAME},
{UkmTextFieldDidChangeType::kHeuristicTypeName, NAME_FULL},
{UkmTextFieldDidChangeType::kServerTypeName, NO_SERVER_DATA},
......@@ -6315,7 +6319,11 @@ TEST_F(AutofillMetricsTest, UserHappinessFormInteraction_AddressForm) {
{UkmTextFieldDidChangeType::kHtmlFieldModeName, HTML_MODE_NONE},
{UkmTextFieldDidChangeType::kIsAutofilledName, true},
{UkmTextFieldDidChangeType::kIsEmptyName, true},
{UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0}},
{UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0},
{UkmTextFieldDidChangeType::kFieldSignatureName,
Collapse(CalculateFieldSignatureForField(form.fields[0]))},
{UkmTextFieldDidChangeType::kFormSignatureName,
Collapse(CalculateFormSignature(form))}},
{{UkmTextFieldDidChangeType::kFieldTypeGroupName, EMAIL},
{UkmTextFieldDidChangeType::kHeuristicTypeName, EMAIL_ADDRESS},
{UkmTextFieldDidChangeType::kServerTypeName, NO_SERVER_DATA},
......@@ -6323,7 +6331,11 @@ TEST_F(AutofillMetricsTest, UserHappinessFormInteraction_AddressForm) {
{UkmTextFieldDidChangeType::kHtmlFieldModeName, HTML_MODE_NONE},
{UkmTextFieldDidChangeType::kIsAutofilledName, true},
{UkmTextFieldDidChangeType::kIsEmptyName, true},
{UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0}}});
{UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0},
{UkmTextFieldDidChangeType::kFieldSignatureName,
Collapse(CalculateFieldSignatureForField(form.fields[1]))},
{UkmTextFieldDidChangeType::kFormSignatureName,
Collapse(CalculateFormSignature(form))}}});
}
// Verify that we correctly log metrics tracking the duration of form fill.
......
......@@ -374,11 +374,21 @@ be describing additional metrics about the same event.
Recorded when user edits a text field. The text field may have been
autofilled.
</summary>
<metric name="FieldSignature">
<summary>
The signature of the field
</summary>
</metric>
<metric name="FieldTypeGroup">
<summary>
Field's |FieldTypeGroup|. See |AutofillType.group()|.
</summary>
</metric>
<metric name="FormSignature">
<summary>
The signature of the form.
</summary>
</metric>
<metric name="HeuristicType">
<summary>
Field's |ServerFieldType| based on heuristics. See
......
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