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

Unified Diff: components/autofill/content/renderer/autofill_agent.cc

Issue 2035143002: Basic implementation of showing password fill dialog on page load (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: Fix iOS compile 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/autofill/content/renderer/autofill_agent.cc
diff --git a/components/autofill/content/renderer/autofill_agent.cc b/components/autofill/content/renderer/autofill_agent.cc
index 729cbf60e2317e0c06cb96fdcf5b720886b4652f..737311ddafbe767d495c2272d4370cbe68d8d52d 100644
--- a/components/autofill/content/renderer/autofill_agent.cc
+++ b/components/autofill/content/renderer/autofill_agent.cc
@@ -26,6 +26,7 @@
#include "components/autofill/content/renderer/page_click_tracker.h"
#include "components/autofill/content/renderer/password_autofill_agent.h"
#include "components/autofill/content/renderer/password_generation_agent.h"
+#include "components/autofill/content/renderer/renderer_save_password_progress_logger.h"
#include "components/autofill/core/common/autofill_constants.h"
#include "components/autofill/core/common/autofill_data_validation.h"
#include "components/autofill/core/common/autofill_switches.h"
@@ -34,6 +35,8 @@
#include "components/autofill/core/common/form_data_predictions.h"
#include "components/autofill/core/common/form_field_data.h"
#include "components/autofill/core/common/password_form.h"
+#include "components/autofill/core/common/password_form_fill_data.h"
+#include "components/autofill/core/common/save_password_progress_logger.h"
#include "content/public/common/content_switches.h"
#include "content/public/common/service_registry.h"
#include "content/public/common/ssl_status.h"
@@ -220,6 +223,8 @@ bool AutofillAgent::OnMessageReceived(const IPC::Message& message) {
OnFillPasswordSuggestion)
IPC_MESSAGE_HANDLER(AutofillMsg_PreviewPasswordSuggestion,
OnPreviewPasswordSuggestion)
+ IPC_MESSAGE_HANDLER(AutofillMsg_ShowInitialPasswordAccountSuggestions,
+ OnShowInitialPasswordAccountSuggestions);
IPC_MESSAGE_UNHANDLED(handled = false)
IPC_END_MESSAGE_MAP()
return handled;
@@ -595,6 +600,31 @@ void AutofillAgent::OnPreviewPasswordSuggestion(
DCHECK(handled);
}
+void AutofillAgent::OnShowInitialPasswordAccountSuggestions(
+ int key,
+ const PasswordFormFillData& form_data) {
+ std::vector<blink::WebInputElement> elements;
+ std::unique_ptr<RendererSavePasswordProgressLogger> logger;
+ if (password_autofill_agent_->logging_state_active()) {
+ logger.reset(new RendererSavePasswordProgressLogger(this, routing_id()));
+ logger->LogMessage(SavePasswordProgressLogger::
+ STRING_ON_SHOW_INITIAL_PASSWORD_ACCOUNT_SUGGESTIONS);
+ }
+ password_autofill_agent_->GetFillableElementFromFormData(
+ key, form_data, logger.get(), &elements);
+
+ // If wait_for_username is true, we don't want to initially show form options
+ // until the user types in a valid username.
+ if (form_data.wait_for_username)
+ return;
+
+ ShowSuggestionsOptions options;
+ options.autofill_on_empty_values = true;
+ options.show_full_suggestion_list = true;
+ for (auto element : elements)
+ ShowSuggestions(element, options);
+}
+
void AutofillAgent::OnSamePageNavigationCompleted() {
if (!last_interacted_form_.isNull()) {
// Assume form submission only if the form is now gone, either invisible or
« no previous file with comments | « components/autofill/content/renderer/autofill_agent.h ('k') | components/autofill/content/renderer/password_autofill_agent.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698