| Index: chrome/renderer/autofill/password_autofill_manager.cc
|
| diff --git a/chrome/renderer/autofill/password_autofill_manager.cc b/chrome/renderer/autofill/password_autofill_manager.cc
|
| index 65dba44df5f7d4a1758b58f49681c7aabdfacc10..a38aada604c3987ab4d8c6efb31852c54974b066 100644
|
| --- a/chrome/renderer/autofill/password_autofill_manager.cc
|
| +++ b/chrome/renderer/autofill/password_autofill_manager.cc
|
| @@ -8,6 +8,7 @@
|
| #include "base/memory/scoped_ptr.h"
|
| #include "base/message_loop.h"
|
| #include "chrome/common/autofill_messages.h"
|
| +#include "chrome/renderer/autofill/form_autofill_util.h"
|
| #include "content/public/renderer/render_view.h"
|
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebDocument.h"
|
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebElement.h"
|
| @@ -204,6 +205,7 @@ namespace autofill {
|
| PasswordAutofillManager::PasswordAutofillManager(
|
| content::RenderView* render_view)
|
| : content::RenderViewObserver(render_view),
|
| + disable_popup_(false),
|
| ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_(this)) {
|
| }
|
|
|
| @@ -410,7 +412,10 @@ bool PasswordAutofillManager::InputElementLostFocus() {
|
| }
|
|
|
| void PasswordAutofillManager::OnFillPasswordForm(
|
| - const webkit::forms::PasswordFormFillData& form_data) {
|
| + const webkit::forms::PasswordFormFillData& form_data,
|
| + bool disable_popup) {
|
| + disable_popup_ = disable_popup;
|
| +
|
| FormElementsList forms;
|
| // We own the FormElements* in forms.
|
| FindFormElements(render_view()->GetWebView(), form_data.basic_data, &forms);
|
| @@ -443,6 +448,15 @@ void PasswordAutofillManager::OnFillPasswordForm(
|
| password_info.fill_data = form_data;
|
| password_info.password_field = password_element;
|
| login_to_password_info_[username_element] = password_info;
|
| +
|
| + webkit::forms::FormData form;
|
| + webkit::forms::FormField field;
|
| + FindFormAndFieldForInputElement(
|
| + username_element, &form, &field, REQUIRE_NONE);
|
| + Send(new AutofillHostMsg_AddPasswordFormMapping(
|
| + routing_id(),
|
| + field,
|
| + form_data));
|
| }
|
| }
|
|
|
| @@ -467,6 +481,9 @@ void PasswordAutofillManager::GetSuggestions(
|
| bool PasswordAutofillManager::ShowSuggestionPopup(
|
| const webkit::forms::PasswordFormFillData& fill_data,
|
| const WebKit::WebInputElement& user_input) {
|
| + if (disable_popup_)
|
| + return false;
|
| +
|
| WebKit::WebFrame* frame = user_input.document().frame();
|
| if (!frame)
|
| return false;
|
|
|