| 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 6afbd4ca8dd79d0d60c860e2d41e584424cf114d..7b27b8fff54b9cb813bde16cfe22f1f5b8f80387 100644
|
| --- a/components/autofill/content/renderer/autofill_agent.cc
|
| +++ b/components/autofill/content/renderer/autofill_agent.cc
|
| @@ -49,6 +49,7 @@
|
|
|
| using blink::WebAutofillClient;
|
| using blink::WebConsoleMessage;
|
| +using blink::WebDocument;
|
| using blink::WebElement;
|
| using blink::WebElementCollection;
|
| using blink::WebFormControlElement;
|
| @@ -214,12 +215,6 @@ void AutofillAgent::FocusedNodeChanged(const WebNode& node) {
|
| if (node.document().frame() != render_frame()->GetWebFrame())
|
| return;
|
|
|
| - if (password_generation_agent_ &&
|
| - password_generation_agent_->FocusedNodeHasChanged(node)) {
|
| - is_popup_possibly_visible_ = true;
|
| - return;
|
| - }
|
| -
|
| WebElement web_element = node.toConst<WebElement>();
|
|
|
| if (!web_element.document().frame())
|
| @@ -228,16 +223,28 @@ void AutofillAgent::FocusedNodeChanged(const WebNode& node) {
|
| const WebInputElement* element = toWebInputElement(&web_element);
|
|
|
| if (!element || !element->isEnabled() || element->isReadOnly() ||
|
| - !element->isTextField() || element->isPasswordField())
|
| + !element->isTextField())
|
| return;
|
|
|
| element_ = *element;
|
| }
|
|
|
| -void AutofillAgent::Resized() {
|
| +void AutofillAgent::FocusedElementMovedOnResize() {
|
| HidePopup();
|
| }
|
|
|
| +void AutofillAgent::FocusChangeComplete() {
|
| + WebDocument doc = render_frame()->GetWebFrame()->document();
|
| + WebElement focused_element;
|
| + if (!doc.isNull())
|
| + focused_element = doc.focusedElement();
|
| +
|
| + if (!focused_element.isNull() && password_generation_agent_ &&
|
| + password_generation_agent_->FocusedNodeHasChanged(focused_element)) {
|
| + is_popup_possibly_visible_ = true;
|
| + }
|
| +}
|
| +
|
| void AutofillAgent::didRequestAutocomplete(
|
| const WebFormElement& form) {
|
| DCHECK_EQ(form.document().frame(), render_frame()->GetWebFrame());
|
| @@ -316,12 +323,6 @@ void AutofillAgent::FormControlElementClicked(
|
| switches::kEnableSingleClickAutofill)) {
|
| // Show full suggestions when clicking on an already-focused form field. On
|
| // the initial click (not focused yet), only show password suggestions.
|
| -#if defined(OS_ANDROID)
|
| - // TODO(gcasto): Remove after crbug.com/430318 has been fixed.
|
| - if (!was_focused)
|
| - return;
|
| -#endif
|
| -
|
| options.show_full_suggestion_list =
|
| options.show_full_suggestion_list || was_focused;
|
| options.show_password_suggestions_only = !was_focused;
|
| @@ -785,8 +786,12 @@ void AutofillAgent::LegacyAutofillAgent::FocusedNodeChanged(
|
| agent_->FocusedNodeChanged(node);
|
| }
|
|
|
| -void AutofillAgent::LegacyAutofillAgent::Resized() {
|
| - agent_->Resized();
|
| +void AutofillAgent::LegacyAutofillAgent::FocusedElementMovedOnResize() {
|
| + agent_->FocusedElementMovedOnResize();
|
| +}
|
| +
|
| +void AutofillAgent::LegacyAutofillAgent::FocusChangeComplete() {
|
| + agent_->FocusChangeComplete();
|
| }
|
|
|
| } // namespace autofill
|
|
|