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..a70a86a89b787bda8ae5340b4877aac3ea086b19 100644 |
| --- a/components/autofill/content/renderer/password_autofill_agent.cc |
| +++ b/components/autofill/content/renderer/password_autofill_agent.cc |
| @@ -967,6 +967,7 @@ bool PasswordAutofillAgent::OnMessageReceived(const IPC::Message& message) { |
| IPC_MESSAGE_HANDLER(AutofillMsg_SetLoggingState, OnSetLoggingState) |
| IPC_MESSAGE_HANDLER(AutofillMsg_AutofillUsernameDataReceived, |
| OnAutofillUsernameDataReceived) |
| + IPC_MESSAGE_HANDLER(AutofillMsg_ForceSavePassword, OnForceSavePassword) |
| IPC_MESSAGE_UNHANDLED(handled = false) |
| IPC_END_MESSAGE_MAP() |
| return handled; |
| @@ -1241,6 +1242,20 @@ void PasswordAutofillAgent::OnAutofillUsernameDataReceived( |
| form_predictions_ = predictions; |
| } |
| +void PasswordAutofillAgent::OnForceSavePassword() { |
| + blink::WebElement element = render_frame()->GetFocusedElement(); |
| + |
| + DCHECK(!element.isNull()); |
| + DCHECK(element.hasHTMLTagName("input")); |
|
vabr (Chromium)
2015/05/28 19:41:23
optional: Consider adding
<< element.tagName()
to
msramek
2015/05/28 20:28:28
Done.
|
| + |
| + blink::WebInputElement input = element.to<blink::WebInputElement>(); |
| + DCHECK(input.isPasswordField()); |
| + |
| + ProvisionallySavePassword(input.form(), RESTRICTION_NONE); |
|
vabr (Chromium)
2015/05/28 19:41:23
Why do we need to provisionally save the password,
msramek
2015/05/28 20:28:28
Here, ProvisionallySavePassword() is used to trans
vabr (Chromium)
2015/05/29 06:48:50
Acknowledged.
|
| + Send(new AutofillHostMsg_PasswordFormForceSaveRequested( |
| + routing_id(), *provisionally_saved_form_)); |
| +} |
| + |
| //////////////////////////////////////////////////////////////////////////////// |
| // PasswordAutofillAgent, private: |