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

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

Issue 208453002: Add "previewing on hover" support for password field. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update code as per further review comments. Created 6 years, 7 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_autofill_manager.cc
diff --git a/components/password_manager/core/browser/password_autofill_manager.cc b/components/password_manager/core/browser/password_autofill_manager.cc
index e306b4df2e24d4f97883b6ac82ac187b7b4ea0d1..bd078dc22bc23fea4d557eadd2a8ce2147e38d75 100644
--- a/components/password_manager/core/browser/password_autofill_manager.cc
+++ b/components/password_manager/core/browser/password_autofill_manager.cc
@@ -26,7 +26,7 @@ PasswordAutofillManager::PasswordAutofillManager(
PasswordAutofillManager::~PasswordAutofillManager() {
}
-bool PasswordAutofillManager::AcceptSuggestion(
+bool PasswordAutofillManager::FillSuggestion(
const autofill::FormFieldData& field,
const base::string16& username) {
autofill::PasswordFormFillData fill_data;
@@ -34,7 +34,21 @@ bool PasswordAutofillManager::AcceptSuggestion(
if (FindLoginInfo(field, &fill_data) &&
GetPasswordForUsername(username, fill_data, &password)) {
PasswordManagerDriver* driver = password_manager_client_->GetDriver();
- driver->AcceptPasswordAutofillSuggestion(username, password);
+ driver->FillSuggestion(username, password);
+ return true;
+ }
+ return false;
+}
+
+bool PasswordAutofillManager::PreviewSuggestion(
+ const autofill::FormFieldData& field,
+ const base::string16& username) {
+ autofill::PasswordFormFillData fill_data;
+ base::string16 password;
+ if (FindLoginInfo(field, &fill_data) &&
+ GetPasswordForUsername(username, fill_data, &password)) {
+ PasswordManagerDriver* driver = password_manager_client_->GetDriver();
+ driver->PreviewSuggestion(username, password);
return true;
}
return false;
@@ -84,10 +98,16 @@ void PasswordAutofillManager::Reset() {
login_to_password_info_.clear();
}
-bool PasswordAutofillManager::AcceptSuggestionForTest(
+bool PasswordAutofillManager::FillSuggestionForTest(
+ const autofill::FormFieldData& field,
+ const base::string16& username) {
+ return FillSuggestion(field, username);
+}
+
+bool PasswordAutofillManager::PreviewSuggestionForTest(
const autofill::FormFieldData& field,
const base::string16& username) {
- return AcceptSuggestion(field, username);
+ return PreviewSuggestion(field, username);
}
void PasswordAutofillManager::OnPopupShown() {
@@ -98,15 +118,15 @@ void PasswordAutofillManager::OnPopupHidden() {
void PasswordAutofillManager::DidSelectSuggestion(const base::string16& value,
int identifier) {
- // This is called to preview an autofill suggestion, but we don't currently
- // do that for password forms (crbug.com/63421). If it is ever implemented,
- // ClearPreviewedForm() must also be implemented().
+ ClearPreviewedForm();
+ bool success = PreviewSuggestion(form_field_, value);
+ DCHECK(success);
}
void PasswordAutofillManager::DidAcceptSuggestion(const base::string16& value,
int identifier) {
- if (!AcceptSuggestion(form_field_, value))
- NOTREACHED();
+ bool success = FillSuggestion(form_field_, value);
+ DCHECK(success);
autofill_manager_delegate_->HideAutofillPopup();
}
@@ -116,8 +136,8 @@ void PasswordAutofillManager::RemoveSuggestion(const base::string16& value,
}
void PasswordAutofillManager::ClearPreviewedForm() {
- // There is currently no preview for password autofill (crbug.com/63421).
- // This function needs an implemention if preview is ever implemented.
+ PasswordManagerDriver* driver = password_manager_client_->GetDriver();
+ driver->ClearPreviewedForm();
}
////////////////////////////////////////////////////////////////////////////////

Powered by Google App Engine
This is Rietveld 408576698