New issue
Advanced search Search tips

Issue 710003 link

Starred by 0 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Bug

Blocking:
issue 770175



Sign in to add a comment

Passwords not filled on namecheap.com

Project Member Reported by vabr@chromium.org, Apr 10 2017

Issue description

Repro steps:
(1) Save a password on https://www.namecheap.com (e.g., via chrome://flags/#enable-password-force-saving and context-menu).
(2) Load https://www.namecheap.com/myaccount/login.aspx

Expected: The saved password is filled.

Actual: Nothing is filled, not even the password field alone can be filled on demand.

Looking at the logs (below), PasswordAutofillAgent detects the form, asks browser to dig up the saved passwords, browser does and sends back, and then PasswordAutofillAgent cannot find the form again.





Message: PasswordAutofillAgent::DidStartProvisionalLoad 
The new state of the UI: 0
Message: PasswordAutofillAgent::SendPasswordForms 
only_visible: false
Security origin: https://www.namecheap.com/ 
Number of all forms: 2
Form is a password form: {
Action : https://www.namecheap.com/ ,
New password element : ,
Origin : https://www.namecheap.com/ ,
PSL match : false,
Password element : LoginPassword ,
Password generated : false,
Scheme : HTML ,
Signon realm : https://www.namecheap.com/ ,
Times used : 0,
Username element : LoginUserName 
}
Message: PasswordManager::CreatePendingLoginManagers 
SSL errors present: false
IsPasswordManagementEnabledForCurrentPage: true
Number of pending login managers (before): 0
Adding manager for form: {
Signature of form: 14675362245278660348
Signon realm: https://www.namecheap.com/
Origin: https://www.namecheap.com/
Action: https://www.namecheap.com/
Form name: aspnetForm
Form fields: 
ctl00 ctl00 ctl00 ctl00 base_content web_base_content siteSearchQuery: 2373247994, search
LoginUserName: 966024577, text
LoginPassword: 3285376859, password
LoginUserName: 966024577, text, on
LoginPassword: 3285376859, password, on
email: 1029417091, email
ctl00 ctl00 ctl00 ctl00 base_content web_base_content siteSearchQuery: 2373247994, search
}
Message: FormFetcherImpl::Fetch 
FormFetcherImpl::state_: 1
Number of pending login managers (after): 1
SSL errors present: false
IsPasswordManagementEnabledForCurrentPage: true
Server predictions: {
Signature of form: 14675362245278660348
Origin: https://www.namecheap.com/
Action: https://www.namecheap.com/
Form fields: 
ctl00 ctl00 ctl00 ctl00 base_content web_base_content siteSearchQuery: 2373247994, search
LoginUserName: 966024577, text
LoginPassword: 3285376859, password
LoginUserName: 966024577, text, on
LoginPassword: 3285376859, password, on
email: 1029417091, email, SERVER_PREDICTION: EMAIL_ADDRESS
ctl00 ctl00 ctl00 ctl00 base_content web_base_content siteSearchQuery: 2373247994, search
}
Message: FormFetcherImpl::OnGetPasswordStoreResults 
Number of results from the password store: 2
Message: PasswordFormManager::ProcessMatches 
SSL errors present: false
IsPasswordManagementEnabledForCurrentPage: true
Message: PasswordManager::ShowInitialPasswordAccountSuggestions 
wait_for_username: false
Message: AutofillAgent::OnShowInitialPasswordAccountSuggestions 
ambiguous_or_empty_names: false
Number of potential forms to fill: 0
form_data's wait_for_username: false
Message: PasswordAutofillAgent::SendPasswordForms 
only_visible: true
Security origin: https://www.namecheap.com/ 
Number of all forms: 2
Form found on page: {
Action : ,
Form name or ID : aspnetForm 
}
Form is visible: true
Form is a password form: {
Action : https://www.namecheap.com/ ,
New password element : ,
Origin : https://www.namecheap.com/ ,
PSL match : false,
Password element : LoginPassword ,
Password generated : false,
Scheme : HTML ,
Signon realm : https://www.namecheap.com/ ,
Times used : 0,
Username element : LoginUserName 
}
Form found on page: {
Action : ,
Form name or ID : 
}
Form is visible: false
Some control elements not associated to a form element are visible: false
Message: PasswordManager::CreatePendingLoginManagers 
SSL errors present: false
IsPasswordManagementEnabledForCurrentPage: true
Number of pending login managers (before): 1
SSL errors present: false
IsPasswordManagementEnabledForCurrentPage: true
Message: PasswordManager::ShowInitialPasswordAccountSuggestions 
wait_for_username: false
Number of pending login managers (after): 1
Message: PasswordManager::OnPasswordFormsRendered 
Message: PasswordManager::CanProvisionalManagerSave 
Message: No provisional save manager 
Message: AutofillAgent::OnShowInitialPasswordAccountSuggestions 
ambiguous_or_empty_names: false
Number of potential forms to fill: 0
form_data's wait_for_username: false
 

Comment 1 by vabr@chromium.org, Apr 10 2017

I should have said that this was seen in Chrome 57.0.2987.137 (on Chrome OS).
dvadym@ tells me that from 58 clicking the password field allows at least filling the password. That's good news!

Still, we need to find out and fix why Chrome cannot find the form.

Comment 2 by dvadym@chromium.org, Apr 10 2017

The problem here is that there are 2 pairs of Username/Passwords with the same ids. And here https://cs.chromium.org/chromium/src/components/autofill/content/renderer/password_autofill_agent.cc?q=password_autofill_agent.cc&sq=package:chromium&dr&l=213 such elements are skipped. We can remove this skipping, but it wouldn't help here, since the first password field would be taken as password field, but the second password field is correct.

Comment 3 by kolos@chromium.org, Apr 11 2017

Blockedon: 710374
Since M58, password could be filed by click. Username should be filled manually. 

Block this issue on meta  bug 710374 .
Project Member

Comment 4 by bugdroid1@chromium.org, May 30 2017

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

commit 4afdcc3b649fd9e056ccfe078890c39419e62d08
Author: pkalinnikov <pkalinnikov@chromium.org>
Date: Tue May 30 09:51:14 2017

Add username field discovery heuristic.

There are some cases when autofill can't find a username field for
autocompletion. For example, if the field is created dynamically in JavaScript.
This CL introduces a heuristic which is used as a fallback in such cases to
find a username field.

When password form autocompletion is about to happen with unknown username
field, the heuristic searches for the closest visible autocompletable
non-password text element preceding the password element. If one found, it is
believed to be the username field.

BUG= 710374 ,606736, 586465 ,710003

Review-Url: https://codereview.chromium.org/2889393002
Cr-Commit-Position: refs/heads/master@{#475481}

[modify] https://crrev.com/4afdcc3b649fd9e056ccfe078890c39419e62d08/chrome/renderer/autofill/password_autofill_agent_browsertest.cc
[modify] https://crrev.com/4afdcc3b649fd9e056ccfe078890c39419e62d08/components/autofill/content/renderer/password_autofill_agent.cc
[modify] https://crrev.com/4afdcc3b649fd9e056ccfe078890c39419e62d08/components/autofill/content/renderer/password_autofill_agent.h

Owner: pkalinnikov@chromium.org
Status: Fixed (was: Available)
After https://codereview.chromium.org/2889393002 this issue seems to be solved. The username field gets autofilled together with the password field when the user interacts with the latter.
Blockedon: -710374
Owner: ----
Status: Available (was: Fixed)
Reopening the bug, because the implemented fallback fixes only one aspect of the problem. Still, there are 2 possible improvements: 1. autofilling on navigation; 2. showing suggestions popup when the user clicks on the username field.
Project Member

Comment 8 by bugdroid1@chromium.org, May 31 2017

Labels: merge-merged-3112
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/525e06d30faf3fdbfb85e2b0e1e7c0c1bdc031e5

commit 525e06d30faf3fdbfb85e2b0e1e7c0c1bdc031e5
Author: Pavel Kalinnikov <pkalinnikov@chromium.org>
Date: Wed May 31 13:49:43 2017

Add username field discovery heuristic.

There are some cases when autofill can't find a username field for
autocompletion. For example, if the field is created dynamically in JavaScript.
This CL introduces a heuristic which is used as a fallback in such cases to
find a username field.

When password form autocompletion is about to happen with unknown username
field, the heuristic searches for the closest visible autocompletable
non-password text element preceding the password element. If one found, it is
believed to be the username field.

BUG= 710374 ,606736, 586465 ,710003

Review-Url: https://codereview.chromium.org/2889393002
Cr-Original-Commit-Position: refs/heads/master@{#475481}
Review-Url: https://codereview.chromium.org/2918543002 .
Cr-Commit-Position: refs/branch-heads/3112@{#52}
Cr-Branched-From: b6460e24cf59f429d69de255538d0fc7a425ccf9-refs/heads/master@{#474897}

[modify] https://crrev.com/525e06d30faf3fdbfb85e2b0e1e7c0c1bdc031e5/chrome/renderer/autofill/password_autofill_agent_browsertest.cc
[modify] https://crrev.com/525e06d30faf3fdbfb85e2b0e1e7c0c1bdc031e5/components/autofill/content/renderer/password_autofill_agent.cc
[modify] https://crrev.com/525e06d30faf3fdbfb85e2b0e1e7c0c1bdc031e5/components/autofill/content/renderer/password_autofill_agent.h

Cc: jmukthavaram@chromium.org
Labels: Needs-Feedback
Tested this issue on Windows 7, Mac 10.12.4 & Ubuntu 14.04 using chrome#60.0.3112.10 as per steps mentioned in comment#0.

Observations:
-----------
1. Username is not auto filled by clicking on username field even after saving username & password

2. Saved password is auto filled upon selecting/ hovering username from the password field. (username - blank & click on password field to select/ hover on username )

Pavel Kalinnikov@ Please find the attached screencast for reference & confirm us on the fix on above observation & expected behavior for the same.

Thanks in advance..!!

710003.mp4
1.3 MB View Download

Comment 10 by vabr@chromium.org, Jun 12 2017

Labels: -Needs-Feedback
#9 seems to confirm what pkalinnikov@ says: The fix already done is that choosing a pop-up value in the password field also fills the username. The absence of autofill and no filling from the username are as described in #7.

Comment 11 by kolos@chromium.org, Jan 26 2018

Blocking: 770175

Sign in to add a comment