Chromium Code Reviews| Index: components/autofill/content/renderer/password_autofill_agent.cc |
| diff --git a/components/autofill/content/renderer/password_autofill_agent.cc b/components/autofill/content/renderer/password_autofill_agent.cc |
| index eb2e06dbe78683c9c03c13020eb30d85bad58718..e9aed41ac28f17333d37044b99b6d7cf1b29a7a6 100644 |
| --- a/components/autofill/content/renderer/password_autofill_agent.cc |
| +++ b/components/autofill/content/renderer/password_autofill_agent.cc |
| @@ -967,6 +967,8 @@ bool PasswordAutofillAgent::OnMessageReceived(const IPC::Message& message) { |
| IPC_MESSAGE_HANDLER(AutofillMsg_SetLoggingState, OnSetLoggingState) |
| IPC_MESSAGE_HANDLER(AutofillMsg_AutofillUsernameDataReceived, |
| OnAutofillUsernameDataReceived) |
| + IPC_MESSAGE_HANDLER(AutofillMsg_FindFocusedPasswordForm, |
| + OnFindFocusedPasswordForm) |
| IPC_MESSAGE_UNHANDLED(handled = false) |
| IPC_END_MESSAGE_MAP() |
| return handled; |
| @@ -1241,6 +1243,25 @@ void PasswordAutofillAgent::OnAutofillUsernameDataReceived( |
| form_predictions_ = predictions; |
| } |
| +void PasswordAutofillAgent::OnFindFocusedPasswordForm() { |
| + scoped_ptr<PasswordForm> password_form; |
| + |
| + blink::WebElement element = render_frame()->GetFocusedElement(); |
| + if (!element.isNull() && element.hasHTMLTagName("input")) { |
| + blink::WebInputElement input = element.to<blink::WebInputElement>(); |
| + if (input.isPasswordField() && !input.form().isNull()) { |
| + password_form = CreatePasswordForm( |
| + input.form(), &nonscript_modified_values_, &form_predictions_); |
| + } |
| + } |
| + |
| + if (!password_form.get()) |
| + password_form.reset(new PasswordForm()); |
|
Mike West
2015/05/29 12:26:53
Optional nit: I'd fold this into line 1247; that i
msramek
2015/05/29 12:38:55
If the WebFormElement is ununderstandable to Creat
|
| + |
| + Send(new AutofillHostMsg_FocusedPasswordFormFound( |
| + routing_id(), *password_form)); |
| +} |
| + |
| //////////////////////////////////////////////////////////////////////////////// |
| // PasswordAutofillAgent, private: |