New issue
Advanced search Search tips

Issue 606736 link

Starred by 0 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac
Pri: 3
Type: Bug

Blocking:
issue 770175



Sign in to add a comment

Password Manager doesn't fill password for http://webchat.freenode.net/

Project Member Reported by vabr@chromium.org, Apr 26 2016

Issue description

1. Visit http://webchat.freenode.net/.
2. Check "Auth to services".
3. Save a password:
  3a. Either by typing it in and submitting,
  3b. or by force-saving it (chrome://flags/#enable-password-force-saving)
4. Redo steps 1. and 2.
5. Click into the username field.

Expected:
Password manager should autofill or at least offer to fill the saved password.

Actual:
Nothing gets filled, yet the key icon in the omnibox identifies the presence of fillable passwords.
 

Comment 1 by vabr@chromium.org, Apr 26 2016

This was observed on GNU/Linux with Chromium 52.0.2718.0 (Developer Build) (64-bit) and some older Chrome version (50?), but is likely platform-independent.

Looking at the password manager internals logs (attached), PasswordManager::Autofill executes, but it never reaches the renderer side.

Comment 2 by vabr@chromium.org, Apr 26 2016

Better format of the log attached.

Comment 3 by vabr@chromium.org, Apr 26 2016

Actually, taking back the claim about the renderer side not receiving anything. We apparently do not have logging inside PasswordAutofillAgent::OnFillPasswordForm. :(

Comment 4 by vabr@chromium.org, Apr 26 2016

I improved the logging in https://codereview.chromium.org/1918823005 and now it shows that PasswordAutofillAgent fails to find potential forms to fill. This is likely connected to the password field being added dynamically.
Project Member

Comment 5 by bugdroid1@chromium.org, Apr 26 2016

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

commit 4b06ffc533f2c176a235caa7ef0e0975b3c6f4c3
Author: vabr <vabr@chromium.org>
Date: Tue Apr 26 17:00:28 2016

Extend logging for password manager internals page

This CL adds logging for the internals page during filling passwords in the
renderer code. Those have been missing and would have been helpful for
investigating the associated bug.

BUG=606736

Review URL: https://codereview.chromium.org/1918823005

Cr-Commit-Position: refs/heads/master@{#389810}

[modify] https://crrev.com/4b06ffc533f2c176a235caa7ef0e0975b3c6f4c3/components/autofill/content/renderer/password_autofill_agent.cc
[modify] https://crrev.com/4b06ffc533f2c176a235caa7ef0e0975b3c6f4c3/components/autofill/core/common/save_password_progress_logger.cc
[modify] https://crrev.com/4b06ffc533f2c176a235caa7ef0e0975b3c6f4c3/components/autofill/core/common/save_password_progress_logger.h

Project Member

Comment 6 by bugdroid1@chromium.org, Apr 27 2016

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

commit 48c8ef0f7d7dccfbf818c289c771ca2ddaece9aa
Author: vabr <vabr@chromium.org>
Date: Wed Apr 27 13:38:06 2016

Password internals page logs names of filled elements

This adds a method to the renderer version of the password mangaer internals
logger to log form element names, and applies it to some code in
PasswordAutofillAgent.

The CL also fixes include guards in renderer_save_password_progress_logger.h

R=dvadym@chromium.org
BUG=606736

Review URL: https://codereview.chromium.org/1923283002

Cr-Commit-Position: refs/heads/master@{#390059}

[modify] https://crrev.com/48c8ef0f7d7dccfbf818c289c771ca2ddaece9aa/components/autofill/content/renderer/password_autofill_agent.cc
[modify] https://crrev.com/48c8ef0f7d7dccfbf818c289c771ca2ddaece9aa/components/autofill/content/renderer/renderer_save_password_progress_logger.cc
[modify] https://crrev.com/48c8ef0f7d7dccfbf818c289c771ca2ddaece9aa/components/autofill/content/renderer/renderer_save_password_progress_logger.h
[modify] https://crrev.com/48c8ef0f7d7dccfbf818c289c771ca2ddaece9aa/components/autofill/core/common/save_password_progress_logger.cc

Cc: serg...@chromium.org

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

Blockedon: 710374
At this point, it is possible to fill password. Username should be filled manually.

Partially fixed.
Just tried - doesn't propose to enter password.
I was testing this with Version 57.0.2987.133 (64-bit). Perhaps it was fixed in ToT...
Project Member

Comment 11 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.
Status: Verified (was: Fixed)
Awesome!
Blockedon: -710374
Status: Available (was: Verified)
There is one more possible improvement here. Still, when the user interacts with the *username* field, they don't get suggestions drop-down. It would be nice to have this fallback when clicking on a "suspicious" username field (determined by the same heuristic as on clicking the password field).

Another thing is autofilling u/p straight on navigation. But I don't think we should do it for sites like this, because there is a risk to incorrectly detect a username field. It's better to leave this as a fallback, when the user has more context and really intent to autofill the form.

Reopening the bug for the sake of the first improvement.
Project Member

Comment 16 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: vabr@chromium.org
Owner: ----
Isn't fix in stable yet? If so, we should probably close the issue as fixed, shouldn't we?
Actually, just tested this and looks like this isn't working in stable yet. I get auto-completion for the password, but not for the username.
And it looks like this CL is in stable: https://chromiumdash.appspot.com/commit/4afdcc3b649fd9e056ccfe078890c39419e62d08, so it appears like heuristic doesn't work for the site.

Comment 21 by vabr@chromium.org, Oct 24 2017

Blocking: 770175
Labels: OS-Android OS-Chrome OS-Linux OS-Mac OS-Windows
The problem here is that there are 3 text fields without id or name attributes (which is used for identifiers), and Password Manager can't distinguish them.

There is a mechanism for dealing with fields without identifiers, but it's supposed that both username and password fields don't have identifiers, but here the password field has valid identifier. 

A minimal example for reproducing this is

<form>
<input type="text">    /// <- no id or name
<input type="password" id="pw">
</form>
Cc: -vabr@chromium.org
vabr going hobby only -> reducing involvement.
Please contact me directly in urgent matters.

Sign in to add a comment