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 2c48d11bd60520134cfd5c5f5539c0ac1f40105e..93d06956d917760add230ba81f0eb63f860ada7f 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; |
@@ -215,12 +216,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()) |
@@ -229,12 +224,24 @@ 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::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()); |
@@ -783,4 +790,8 @@ void AutofillAgent::LegacyAutofillAgent::FocusedNodeChanged( |
agent_->FocusedNodeChanged(node); |
} |
+void AutofillAgent::LegacyAutofillAgent::FocusChangeComplete() { |
+ agent_->FocusChangeComplete(); |
+} |
+ |
} // namespace autofill |