Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(254)

Unified Diff: components/password_manager/core/browser/password_form_manager.cc

Issue 2055633003: [Password Generation] Sends form classifier vote to autofill server (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@pg_form_classification
Patch Set: replaced " DCHECK(client_->IsSavingAndFillingEnabledForCurrentPage()) Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/password_manager/core/browser/password_form_manager.cc
diff --git a/components/password_manager/core/browser/password_form_manager.cc b/components/password_manager/core/browser/password_form_manager.cc
index 934f291a2f90d203890ea0e43dde18b26c0f722a..4b8dc17badfc0736abf1aeb16e42f3443eb349d2 100644
--- a/components/password_manager/core/browser/password_form_manager.cc
+++ b/components/password_manager/core/browser/password_form_manager.cc
@@ -158,6 +158,7 @@ PasswordFormManager::PasswordFormManager(
has_generated_password_(false),
is_manual_generation_(false),
generation_popup_was_shown_(false),
+ form_classifier_outcome_(kNoOutcome),
password_overridden_(false),
retry_password_form_password_update_(false),
generation_available_(false),
@@ -910,6 +911,8 @@ bool PasswordFormManager::UploadPasswordForm(
if (generation_popup_was_shown_)
AddGeneratedVote(&form_structure);
+ if (form_classifier_outcome_ != kNoOutcome)
+ AddFormClassifierVote(&form_structure);
// Force uploading as these events are relatively rare and we want to make
// sure to receive them.
@@ -990,6 +993,8 @@ bool PasswordFormManager::UploadChangePasswordForm(
if (generation_popup_was_shown_)
AddGeneratedVote(&form_structure);
+ if (form_classifier_outcome_ != kNoOutcome)
+ AddFormClassifierVote(&form_structure);
// Force uploading as these events are relatively rare and we want to make
// sure to receive them. It also makes testing easier if these requests
@@ -1038,6 +1043,24 @@ void PasswordFormManager::AddGeneratedVote(
}
}
+void PasswordFormManager::AddFormClassifierVote(
+ autofill::FormStructure* form_structure) {
+ DCHECK(form_structure);
+ DCHECK(form_classifier_outcome_ != kNoOutcome);
+
+ for (size_t i = 0; i < form_structure->field_count(); ++i) {
+ autofill::AutofillField* field = form_structure->field(i);
+ if (form_classifier_outcome_ == kFoundGenerationElement &&
+ field->name == generation_element_detected_by_classifier_) {
+ field->set_form_classifier_outcome(
+ autofill::AutofillUploadContents::Field::GENERATION_ELEMENT);
+ } else {
+ field->set_form_classifier_outcome(
+ autofill::AutofillUploadContents::Field::NON_GENERATION_ELEMENT);
+ }
+ }
+}
+
void PasswordFormManager::CreatePendingCredentials() {
DCHECK(provisionally_saved_form_);
base::string16 password_to_save(PasswordToSave(*provisionally_saved_form_));
@@ -1462,4 +1485,11 @@ void PasswordFormManager::ReplacePresavedPasswordWithPendingCredentials(
presaved_form_.reset();
}
+void PasswordFormManager::SaveGenerationFieldDetectedByClassifier(
+ const base::string16& generation_field) {
+ form_classifier_outcome_ =
+ generation_field.empty() ? kNoGenerationElement : kFoundGenerationElement;
+ generation_element_detected_by_classifier_ = generation_field;
+}
+
} // namespace password_manager

Powered by Google App Engine
This is Rietveld 408576698