New issue
Advanced search Search tips

Issue 850079 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Nov 9
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Chrome , Mac
Pri: 2
Type: Bug



Sign in to add a comment

Editing generated password dismisses menu

Project Member Reported by maxwalker@chromium.org, Jun 6

Issue description

Chrome Version: 69.0.3451.0

What steps will reproduce the problem?
(1) Open amazon.com account creation page (https://goo.gl/mo2VTK) 
(2) Generate a password
(3) Edit the generated password

What is the expected result?
The menu ("Chrome will save this password...") should stay visible so users understand that Chrome will save the edited password.

What happens instead?
The menu is hidden.
 
Edit Password.gif
4.2 MB View Download
Components: -UI>Browser>Passwords
Status: Assigned (was: Untriaged)
Status to 'Assigned', because Max already put Vasilii as the owner.
Owner: kolos@chromium.org
#0  0x000055555d164c8b in PasswordGenerationPopupViewViews::Hide() ()
    at ../../chrome/browser/ui/views/passwords/password_generation_popup_view_views.cc:102
#1  0x000055555c87ccd0 in PasswordGenerationPopupControllerImpl::Hide() ()
    at ../../chrome/browser/ui/passwords/password_generation_popup_controller_impl.cc:239
warning: Could not find DWO CU obj/mojo/public/cpp/bindings/bindings/filter_chain.dwo(0xbf8edecb6de9d046) referenced by CU at offset 0xb8fc [in module /usr/local/google/home/vasilii/chromium/src/out/Default/./libbindings.so]
#2  0x000055555c87cc45 in PasswordGenerationPopupControllerImpl::HideAndDestroy() ()
    at ../../chrome/browser/ui/passwords/password_generation_popup_controller_impl.cc:229
#3  0x0000555558de90bc in ChromePasswordManagerClient::HidePasswordGenerationPopup() ()
    at ../../chrome/browser/password_manager/chrome_password_manager_client.cc:487
warning: Could not find DWO CU obj/mojo/public/cpp/bindings/bindings/multiplex_router.dwo(0x8753aae9429e217c) referenced by CU at offset 0x1497d [in module /usr/local/google/home/vasilii/chromium/src/out/Default/./libbindings.so]
#4  0x000055555c97ad2d in autofill::ChromeAutofillClient::HideAutofillPopup() ()
    at ../../chrome/browser/ui/autofill/chrome_autofill_client.cc:335
#5  0x000055555aa183dd in autofill::AutofillExternalDelegate::DidEndTextFieldEditing() ()
    at ../../components/autofill/core/browser/autofill_external_delegate.cc:283
#6  0x000055555a9f43ec in autofill::AutofillManager::OnDidEndTextFieldEditing() ()
    at ../../components/autofill/core/browser/autofill_manager.cc:1040
warning: Could not find DWO CU obj/mojo/public/cpp/bindings/bindings/connector.dwo(0xd192d6a30dc4f340) referenced by CU at offset 0x4b45 [in module /usr/local/google/home/vasilii/chromium/src/out/Default/./libbindings.so]
#7  0x000055555c071525 in DidEndTextFieldEditing ()
    at ../../components/autofill/content/browser/content_autofill_driver.cc:259

The second field with id "ap_password_check" generates a blur event and Chrome closes the autofill drop-down on DidEndTextFieldEditing event. I think we should ignore the blur events from the fields other than the current one.
Moving to Maxim for further investigation.
Labels: M-70
Vasilii's suggestion to ignore blur events from other fields than the one the user is currently typing into sgtm. Would be great to solve this in M70.
I am afraid the Vasilii's suggestion can cause regressions. Need to think more about that.
Labels: -M-70 M-72
Owner: vasi...@chromium.org
Stack trace in Blink. The "EndEditing" event is triggered by us because we updated the second password field.

#2 0x55664bbeaea7 autofill::AutofillAgent::TextFieldDidEndEditing()
#3 0x7f02800b12b7 blink::ChromeClientImpl::DidEndEditingOnTextField()
#4 0x7f027f934251 blink::HTMLInputElement::EndEditing()
#5 0x7f027f988767 blink::TextFieldInputType::HandleBlurEvent()
#6 0x7f027f934350 blink::HTMLInputElement::HandleBlurEvent()
#7 0x7f027f97f4e1 blink::TextControlElement::DispatchBlurEvent()
#8 0x7f027f63f8db blink::WebFormControlElement::SetAutofillValue()
#9 0x55664bc946d7 autofill::(anonymous namespace)::CopyElementValueToOtherInputElements()
#10 0x55664bc9432e autofill::PasswordGenerationAgent::TextDidChangeInTextField()
#11 0x55664bbeb0ac autofill::AutofillAgent::OnTextFieldDidChange()
#12 0x55664bbf40e7 autofill::AutofillAgent::OnProvisionallySaveForm()
#13 0x55664bc31fea autofill::FormTracker::FormControlDidChangeImpl()
Project Member

Comment 6 by bugdroid1@chromium.org, Nov 9

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/acf9b5dcb5ffe3dbc2fc3d6fd79578dd7066a5b6

commit acf9b5dcb5ffe3dbc2fc3d6fd79578dd7066a5b6
Author: Vasilii Sukhanov <vasilii@chromium.org>
Date: Fri Nov 09 16:18:47 2018

Ignore blur events caused by the password generation.

When PasswordGenerationAgent copies the password value from the password field
to "Confirm Password" filed, a blur event is generated. It hides the currently
open generation prompt. Those events are just side-effects of how the class
works and should be ignored.

Bug:  899756 , 850079 
Change-Id: Ia5d4f0184900fda97118252c48209ffcf1ce3444
Reviewed-on: https://chromium-review.googlesource.com/c/1327205
Commit-Queue: Vasilii Sukhanov <vasilii@chromium.org>
Reviewed-by: Sebastien Seguin-Gagnon <sebsg@chromium.org>
Reviewed-by: Ioana Pandele <ioanap@chromium.org>
Cr-Commit-Position: refs/heads/master@{#606863}
[modify] https://crrev.com/acf9b5dcb5ffe3dbc2fc3d6fd79578dd7066a5b6/chrome/renderer/autofill/fake_password_manager_client.cc
[modify] https://crrev.com/acf9b5dcb5ffe3dbc2fc3d6fd79578dd7066a5b6/chrome/renderer/autofill/fake_password_manager_client.h
[modify] https://crrev.com/acf9b5dcb5ffe3dbc2fc3d6fd79578dd7066a5b6/chrome/renderer/autofill/password_generation_agent_browsertest.cc
[modify] https://crrev.com/acf9b5dcb5ffe3dbc2fc3d6fd79578dd7066a5b6/components/autofill/content/renderer/autofill_agent.cc
[modify] https://crrev.com/acf9b5dcb5ffe3dbc2fc3d6fd79578dd7066a5b6/components/autofill/content/renderer/password_generation_agent.cc
[modify] https://crrev.com/acf9b5dcb5ffe3dbc2fc3d6fd79578dd7066a5b6/components/autofill/content/renderer/password_generation_agent.h

Status: Fixed (was: Assigned)

Sign in to add a comment