Commit 223c45b1 authored by Maria Kazinova's avatar Maria Kazinova Committed by Commit Bot

Added a metric to record the success of form filling by Autofill on iOS.

This metric is added to ensure that using unique renderer IDs for form
filling will not result in additional filling failures.

Bug: 1131038, 1075444
Change-Id: If3314f265ab0104f1f64297fe1e5cea63c58698d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2506032Reviewed-by: default avatarSteven Holte <holte@chromium.org>
Reviewed-by: default avatarVadym Doroshenko  <dvadym@chromium.org>
Commit-Queue: Maria Kazinova <kazinova@google.com>
Cr-Commit-Position: refs/heads/master@{#822081}
parent c1f4cd57
......@@ -15,6 +15,7 @@
#include "base/mac/foundation_util.h"
#include "base/memory/weak_ptr.h"
#include "base/metrics/field_trial.h"
#include "base/metrics/histogram_macros.h"
#include "base/strings/string16.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/sys_string_conversions.h"
......@@ -107,7 +108,8 @@ void GetFormField(autofill::FormFieldData* field,
void UpdateFieldManagerWithFillingResults(
scoped_refptr<FieldDataManager> fieldDataManager,
NSString* jsonString) {
NSString* jsonString,
size_t numFieldsInFormData) {
std::map<uint32_t, base::string16> fillingResults;
if (autofill::ExtractFillingResults(jsonString, &fillingResults)) {
for (auto& fillData : fillingResults) {
......@@ -116,6 +118,8 @@ void UpdateFieldManagerWithFillingResults(
kAutofilledOnUserTrigger);
}
}
// TODO(crbug/1131038): Remove once the experiment is over.
UMA_HISTOGRAM_BOOLEAN("Autofill.FormFillSuccessIOS", !fillingResults.empty());
}
void UpdateFieldManagerForClearedIDs(
......@@ -944,6 +948,7 @@ autofillManagerFromWebState:(web::WebState*)webState
SuggestionHandledCompletion suggestionHandledCompletionCopy =
[_suggestionHandledCompletion copy];
_suggestionHandledCompletion = nil;
size_t numFieldsInFormData = data->FindPath("fields")->DictSize();
[_jsAutofillManager fillForm:std::move(data)
forceFillFieldIdentifier:SysUTF16ToNSString(_pendingAutocompleteField)
forceFillFieldUniqueID:_pendingAutocompleteFieldID
......@@ -953,7 +958,8 @@ autofillManagerFromWebState:(web::WebState*)webState
if (!strongSelf)
return;
UpdateFieldManagerWithFillingResults(
strongSelf->_fieldDataManager, jsonString);
strongSelf->_fieldDataManager, jsonString,
numFieldsInFormData);
// It is possible that the fill was not initiated by selecting
// a suggestion in this case the callback is nil.
if (suggestionHandledCompletionCopy)
......
......@@ -7319,6 +7319,11 @@ Called by update_bad_message_reasons.py.-->
<int value="1" label="Some data available to fill"/>
</enum>
<enum name="BooleanAutofillFormFillSuccessIOS">
<int value="0" label="Not filled"/>
<int value="1" label="Filled"/>
</enum>
<enum name="BooleanAutofillInteractionAfterParsedAsType">
<int value="0" label="No interaction"/>
<int value="1" label="Interaction observed"/>
......@@ -802,6 +802,15 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
<histogram name="Autofill.FormFillSuccessIOS"
enum="BooleanAutofillFormFillSuccessIOS" expires_after="2021-04-30">
<owner>kazinova@chromium.org</owner>
<owner>chrome-autofill@google.com</owner>
<summary>
Records whether the the form was successfully filled by Autofill on iOS.
</summary>
</histogram>
<histogram name="Autofill.FormSubmittedState" enum="AutofillFormSubmittedState"
expires_after="M95">
<owner>battre@chromium.org</owner>
......
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