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 85f4fad689dba9c397ecd85020a124a18a65f86d..f62d7f218ebdefaaccf96a5e6d3c20ee8a2a0bb4 100644 |
--- a/components/autofill/content/renderer/autofill_agent.cc |
+++ b/components/autofill/content/renderer/autofill_agent.cc |
@@ -289,8 +289,15 @@ void AutofillAgent::setIgnoreTextChanges(bool ignore) { |
void AutofillAgent::InputElementClicked(const WebInputElement& element, |
bool was_focused, |
bool is_focused) { |
- if (was_focused) |
- ShowSuggestions(element, true, false, true, false); |
+ bool show_full_suggestion_list = element.isAutofilled(); |
+ bool show_password_suggestions_only = !was_focused; |
+ ShowSuggestions(element, |
+ true, |
+ false, |
+ true, |
+ false, |
+ show_full_suggestion_list, |
+ show_password_suggestions_only); |
} |
void AutofillAgent::InputElementLostFocus() { |
@@ -339,7 +346,7 @@ void AutofillAgent::TextFieldDidChangeImpl(const WebInputElement& element) { |
return; |
} |
- ShowSuggestions(element, false, true, false, false); |
+ ShowSuggestions(element, false, true, false, false, false, false); |
FormData form; |
FormFieldData field; |
@@ -358,11 +365,11 @@ void AutofillAgent::textFieldDidReceiveKeyDown(const WebInputElement& element, |
if (event.windowsKeyCode == ui::VKEY_DOWN || |
event.windowsKeyCode == ui::VKEY_UP) |
- ShowSuggestions(element, true, true, true, false); |
+ ShowSuggestions(element, true, true, true, false, false, false); |
} |
void AutofillAgent::openTextDataListChooser(const WebInputElement& element) { |
- ShowSuggestions(element, true, false, false, true); |
+ ShowSuggestions(element, true, false, false, true, false, false); |
} |
void AutofillAgent::AcceptDataListSuggestion( |
@@ -493,7 +500,9 @@ void AutofillAgent::ShowSuggestions(const WebInputElement& element, |
bool autofill_on_empty_values, |
bool requires_caret_at_end, |
bool display_warning_if_disabled, |
- bool datalist_only) { |
+ bool datalist_only, |
+ bool show_full_suggestion_list, |
+ bool show_password_suggestions_only) { |
if (!element.isEnabled() || element.isReadOnly() || !element.isTextField() || |
element.isPasswordField()) |
return; |
@@ -515,7 +524,9 @@ void AutofillAgent::ShowSuggestions(const WebInputElement& element, |
} |
element_ = element; |
- if (password_autofill_agent_->ShowSuggestions(element)) |
+ if (password_autofill_agent_->ShowSuggestions(element, |
+ show_full_suggestion_list) || |
+ show_password_suggestions_only) |
return; |
// If autocomplete is disabled at the field level, ensure that the native |