Password autofill doesn't work on credential-management-sample.appspot.com |
||||||||||||||
Issue descriptionChrome Version: 60.0.3074.0 OS: All but iOS What steps will reproduce the problem? (1) Navigate to https://credential-management-sample.appspot.com/ (2) Register/save a credential with Chrome (3) Load again, sign out (if necessary), try to sign in using the password form (dismiss the account chooser) What is the expected result? A saved credential is offered at least in the drop down What happens instead? Chrome is unable to autofill the credential
,
Apr 21 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/5e87893ed5a96e6ab36de9280c8e647f7f8eb65b commit 5e87893ed5a96e6ab36de9280c8e647f7f8eb65b Author: vasilii <vasilii@chromium.org> Date: Fri Apr 21 08:46:34 2017 Notify PasswordAutofillAgent about dynamic forms after the document was parsed. Previosly the form were reported after the document and all the resources were loaded. BUG= 713645 Review-Url: https://codereview.chromium.org/2832473004 Cr-Commit-Position: refs/heads/master@{#466289} [modify] https://crrev.com/5e87893ed5a96e6ab36de9280c8e647f7f8eb65b/chrome/browser/password_manager/password_manager_browsertest.cc [modify] https://crrev.com/5e87893ed5a96e6ab36de9280c8e647f7f8eb65b/chrome/test/data/password/between_parsing_and_rendering.html [modify] https://crrev.com/5e87893ed5a96e6ab36de9280c8e647f7f8eb65b/third_party/WebKit/Source/core/dom/Document.cpp
,
Apr 24 2017
This sounds impactful. Should we merge this to M59?
,
Apr 24 2017
,
Apr 24 2017
Your change meets the bar and is auto-approved for M59. Please go ahead and merge the CL to branch 3071 manually. Please contact milestone owner if you have questions. Owners: amineer@(Android), cmasso@(iOS), gkihumba@(ChromeOS), Abdul Syed@(Desktop) For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Apr 24 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b738d0182104f66bdcb224dd2a90663b1446e537 commit b738d0182104f66bdcb224dd2a90663b1446e537 Author: Vasilii Sukhanov <vasilii@chromium.org> Date: Mon Apr 24 12:32:45 2017 Notify PasswordAutofillAgent about dynamic forms after the document was parsed. Previosly the form were reported after the document and all the resources were loaded. BUG= 713645 Review-Url: https://codereview.chromium.org/2832473004 Cr-Commit-Position: refs/heads/master@{#466289} (cherry picked from commit 5e87893ed5a96e6ab36de9280c8e647f7f8eb65b) Review-Url: https://codereview.chromium.org/2835933003 . Cr-Commit-Position: refs/branch-heads/3071@{#161} Cr-Branched-From: a106f0abbf69dad349d4aaf4bcc4f5d376dd2377-refs/heads/master@{#464641} [modify] https://crrev.com/b738d0182104f66bdcb224dd2a90663b1446e537/chrome/browser/password_manager/password_manager_browsertest.cc [modify] https://crrev.com/b738d0182104f66bdcb224dd2a90663b1446e537/chrome/test/data/password/between_parsing_and_rendering.html [modify] https://crrev.com/b738d0182104f66bdcb224dd2a90663b1446e537/third_party/WebKit/Source/core/dom/Document.cpp
,
Apr 24 2017
,
Apr 25 2017
Verified this issue on Windows-10, Ubuntu 14.04 and Mac OS 10.12.4 using chrome latest Dev #59.0.3071.25 by following steps mentioned in the original comment. Observed saved credential is offered in the drop down as expected. Hence adding TE-Verified label.
,
Apr 26 2017
I'm still seeing the same issue on (1) MacPro macOS 10.12.4 Chrome Canary Version 60.0.3080.5 (Official Build) canary (64-bit) (2) iMac macOS 10.12.4 Chrome Canary Version 60.0.3080.5 (Official Build) canary (64-bit) Steps to reproduce: (1) Navigate to https://credential-management-sample.appspot.com/ (2) Register/save a credential with Chrome (3) Load again, sign out (if necessary), try to sign in using the password form (dismiss the account chooser) I'm expecting to see both email field and password field are autofilled with yellow-ish background color. But what I'm actually seeing empty fields. By locating cursor I see email candidates for email field, password suggestion for password field. See attached image.
,
Apr 26 2017
I found the culprit, the following is the technical explanation: Credentials API saves credentials without action (and it looks ok), but when Password Manager decides whether to fill on load or postpone until the user clicks it verifies whether actions of the current form the same to the action of a saved form and in case when HTML form has no action, current url is taken. So here actions are different.The code lives here https://cs.chromium.org/chromium/src/components/password_manager/core/browser/password_form_manager.cc?sq=package:chromium&l=635 observed_form_.action.GetWithEmptyPath() != preferred_match_->action.GetWithEmptyPath() The solution is to remove this check, since it's obsolete.
,
Apr 26 2017
Less technical, consequences of this bug: 1.All credentials API saved credentials are filled only on account select 2.Credentials saved on some sign-up forms are filled only on account select on sign-in forms. We will fix this.
,
Apr 26 2017
agektmr@, is password filled when you choose "agektmr@gmail.com"? I didn't promise that it's autofilled on load :)
,
Apr 26 2017
If it doesn't fill the password then I need your chrome://password-manager-internals
,
Apr 27 2017
No. How can I help with chrome://password-manager-internals ?
,
Apr 27 2017
Open chrome://password-manager-internals before navigating to the testing site. After completing the test, upload the content of password-manager-internals here.
,
Apr 27 2017
Captured password manager logs are listed below. Logs are cleared and no longer captured when all password-manager-internals pages are closed. Message: PasswordAutofillAgent::DidStartProvisionalLoad The new state of the UI: 0 Message: PasswordAutofillAgent::SendPasswordForms only_visible: false Security origin: https://credential-management-sample.appspot.com/ Number of all forms: 0 Message: PasswordAutofillAgent::SendPasswordForms only_visible: false Security origin: https://staticxx.facebook.com/ Number of all forms: 0 Message: PasswordAutofillAgent::SendPasswordForms only_visible: false Security origin: https://accounts.google.com/ Message: Webpage is empty Message: PasswordAutofillAgent::SendPasswordForms only_visible: true Security origin: https://accounts.google.com/ Message: Webpage is empty CM API get credentials: origin=https://credential-management-sample.appspot.com/, zero_click_only=1, federations=https://accounts.google.com/, https://www.facebook.com/, SSL errors present: false IsPasswordManagementEnabledForCurrentPage: true SSL errors present: false CM API send a credential: origin=https://credential-management-sample.appspot.com/, CredentialType=CredentialType::CREDENTIAL_TYPE_EMPTY Message: PasswordAutofillAgent::SendPasswordForms only_visible: true Security origin: https://staticxx.facebook.com/ Number of all forms: 0 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): 0 Number of pending login managers (after): 0 Message: PasswordManager::OnPasswordFormsRendered Message: PasswordManager::CanProvisionalManagerSave Message: No provisional save manager Message: PasswordAutofillAgent::SendPasswordForms only_visible: true Security origin: https://credential-management-sample.appspot.com/ Number of all forms: 2 Form found on page: { Action : https://credential-management-sample.appspot.com/ , Form name or ID : } Form is visible: false Form found on page: { Action : https://credential-management-sample.appspot.com/ , Form name or ID : } Form is visible: true Form is a password form: { Action : https://credential-management-sample.appspot.com/ , New password element : password , Origin : https://credential-management-sample.appspot.com/ , PSL match : false, Password element : , Password generated : false, Scheme : HTML , Signon realm : https://credential-management-sample.appspot.com/ , Times used : 0, Username element : email } 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): 0 Adding manager for form: { Signature of form: 7658152542967986450 Signon realm: https://credential-management-sample.appspot.com/ Origin: https://credential-management-sample.appspot.com/ Action: https://credential-management-sample.appspot.com/ Form name: reg-form Form fields: name: 3489289364, text, name email: 1029417091, email, username_email password: 2051817934, password, new-password } Message: FormFetcherImpl::Fetch FormFetcherImpl::state_: 1 Number of pending login managers (after): 1 Message: PasswordManager::OnPasswordFormsRendered Message: PasswordManager::CanProvisionalManagerSave Message: No provisional save manager Generation possible account creation forms: 2 Message: Generation: no non-blacklisted confirmation Message: Generation: no non-blacklisted confirmation Message: FormFetcherImpl::OnGetPasswordStoreResults Number of results from the password store: 1 Message: PasswordFormManager::ProcessMatches SSL errors present: false IsPasswordManagementEnabledForCurrentPage: true Message: Generation disabled: custom passphrase Message: PasswordManager::Autofill wait_for_username: true The new state of the UI: 3 Message: PasswordAutofillAgent::OnFillPasswordForm ambiguous_or_empty_names: false Number of potential forms to fill: 0 form_data's wait_for_username: true CM API get credentials: origin=https://credential-management-sample.appspot.com/, zero_click_only=0, federations=https://accounts.google.com/, https://www.facebook.com/, SSL errors present: false IsPasswordManagementEnabledForCurrentPage: true SSL errors present: false The new state of the UI: 4 CM API send a credential: origin=https://credential-management-sample.appspot.com/, CredentialType=CredentialType::CREDENTIAL_TYPE_EMPTY The new state of the UI: 3
,
Apr 27 2017
I know the bug! You reproduced it because the page loaded slowly on your machine. This is what happened on my machine: - the page was parsed. - the dynamic sign-in form was detected and Document::DidAssociateFormControl starts the timer for 0.3 sec. - the page fully loaded. - the timer fired and the renderer processed and sent the sign-in form to browser. Here is what's happened on your machine: - the page was parsed. - the dynamic sign-in form was detected and Document::DidAssociateFormControl starts the timer for 0.3 sec. - the timer fired and AutofillAgent::DidAssociateFormControlsDynamically() did nothing because it's still loading. - the page fully loaded. I know it because even the autosign-in call from the API happened before the page fully loaded. So the bug is in AutofillAgent::DidAssociateFormControlsDynamically().
,
Apr 28 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/31ba8c6c5838fd6e65f3e341cfb5af0736186dc3 commit 31ba8c6c5838fd6e65f3e341cfb5af0736186dc3 Author: vasilii <vasilii@chromium.org> Date: Fri Apr 28 21:35:08 2017 Password manager should autofill a dynamic form added and processed before the page was loaded. Currently AutofillAgent::DidAssociateFormControlsDynamically ignores the notification if the frame isn't loaded. That makes no sense because the page may never be loaded due to some slow resource. Even if it will, password autofill shouldn't wait for the page load event. It's needed primarily for the successful submission detection. BUG= 713645 Review-Url: https://codereview.chromium.org/2849653003 Cr-Commit-Position: refs/heads/master@{#468136} [modify] https://crrev.com/31ba8c6c5838fd6e65f3e341cfb5af0736186dc3/chrome/browser/password_manager/password_manager_browsertest.cc [add] https://crrev.com/31ba8c6c5838fd6e65f3e341cfb5af0736186dc3/chrome/test/data/password/infinite_password_form.html [modify] https://crrev.com/31ba8c6c5838fd6e65f3e341cfb5af0736186dc3/components/autofill/content/renderer/autofill_agent.cc
,
May 2 2017
I want to merge r468136 to M59. It fixes an important autofill problem for slow networks.
,
May 2 2017
Your change meets the bar and is auto-approved for M59. Please go ahead and merge the CL to branch 3071 manually. Please contact milestone owner if you have questions. Owners: amineer@(Android), cmasso@(iOS), gkihumba@(ChromeOS), Abdul Syed@(Desktop) For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
May 2 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8da0ab3664c77f527e2cc845c5349bf37f79f959 commit 8da0ab3664c77f527e2cc845c5349bf37f79f959 Author: Vasilii Sukhanov <vasilii@chromium.org> Date: Tue May 02 10:39:53 2017 Password manager should autofill a dynamic form added and processed before the page was loaded. Currently AutofillAgent::DidAssociateFormControlsDynamically ignores the notification if the frame isn't loaded. That makes no sense because the page may never be loaded due to some slow resource. Even if it will, password autofill shouldn't wait for the page load event. It's needed primarily for the successful submission detection. BUG= 713645 Review-Url: https://codereview.chromium.org/2849653003 Cr-Commit-Position: refs/heads/master@{#468136} (cherry picked from commit 31ba8c6c5838fd6e65f3e341cfb5af0736186dc3) Review-Url: https://codereview.chromium.org/2854773003 . Cr-Commit-Position: refs/branch-heads/3071@{#342} Cr-Branched-From: a106f0abbf69dad349d4aaf4bcc4f5d376dd2377-refs/heads/master@{#464641} [modify] https://crrev.com/8da0ab3664c77f527e2cc845c5349bf37f79f959/chrome/browser/password_manager/password_manager_browsertest.cc [add] https://crrev.com/8da0ab3664c77f527e2cc845c5349bf37f79f959/chrome/test/data/password/infinite_password_form.html [modify] https://crrev.com/8da0ab3664c77f527e2cc845c5349bf37f79f959/components/autofill/content/renderer/autofill_agent.cc
,
May 2 2017
,
May 3 2017
Rechecked the issue on chrome version 59.0.3071.36 on MAC 10.12.4, Ubuntu 14.04, Windows 10 as per the steps mentioned in comment#9. Fix is working as intended. Able to see the email address and password autofilled with yellow color in background. Screen Shot attached. Adding TE-verified labels. Thanks.!
,
May 3 2017
Note that the latest fix affects the slow networks.
,
May 18 2017
I can still reproduce this issue on stable 59.0.3071.61 on MAC and dev 60.0.3102.0 on MAC on a wifi connection. Here is the chrome://password-manager-internals log from pressing the sign-in button and declining the CM API bubble: Captured password manager logs are listed below. Logs are cleared and no longer captured when all password-manager-internals pages are closed. CM API get credentials: origin=https://credential-management-sample.appspot.com/, zero_click_only=0, federations=https://accounts.google.com/, https://www.facebook.com/, SSL errors present: false IsPasswordManagementEnabledForCurrentPage: true SSL errors present: false The new state of the UI: 4 CM API send a credential: origin=https://credential-management-sample.appspot.com/, CredentialType=CredentialType::CREDENTIAL_TYPE_EMPTY The new state of the UI: 3
,
May 18 2017
I need the full log starting before the page loading.
,
May 18 2017
Not reproducible on the office network. - What kind of network did you use? - Was the password offered in the drop-down when the username field is selected? In other words, is the observed behaviour equivalent to that in Comment #9?
,
May 18 2017
Steps to reproduce: 1) Go to https://credential-management-sample.appspot.com/ 2) Fill form, click on register, save credential 3) Log out 4) Load chrome://password-manager-internals 5) Refresh https://credential-management-sample.appspot.com/ 6) Click login 7) Observe popup dialog with account and decline 8) Observe dialog showing up on the website with non-filled fields Here are the logs starting at step 4 Captured password manager logs are listed below. Logs are cleared and no longer captured when all password-manager-internals pages are closed. Message: PasswordAutofillAgent::DidStartProvisionalLoad The new state of the UI: 0 Message: PasswordAutofillAgent::SendPasswordForms only_visible: false Security origin: https://credential-management-sample.appspot.com/ Number of all forms: 0 Message: PasswordAutofillAgent::SendPasswordForms only_visible: false Security origin: https://staticxx.facebook.com/ Number of all forms: 0 Message: PasswordAutofillAgent::SendPasswordForms only_visible: true Security origin: https://staticxx.facebook.com/ Number of all forms: 0 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): 0 Number of pending login managers (after): 0 Message: PasswordManager::OnPasswordFormsRendered Message: PasswordManager::CanProvisionalManagerSave Message: No provisional save manager Message: PasswordAutofillAgent::SendPasswordForms only_visible: false Security origin: https://accounts.google.com/ Message: Webpage is empty Message: PasswordAutofillAgent::SendPasswordForms only_visible: true Security origin: https://accounts.google.com/ Message: Webpage is empty SSL errors present: false IsPasswordManagementEnabledForCurrentPage: true Message: Generation disabled: no sync Server predictions: { Signature of form: 9098940619517107511 Origin: https://credential-management-sample.appspot.com/ Action: https://credential-management-sample.appspot.com/ Form fields: email: 1029417091, email, username password: 2051817934, password, current-password } Server predictions: { Signature of form: 7658152542967986450 Origin: https://credential-management-sample.appspot.com/ Action: https://credential-management-sample.appspot.com/ Form fields: name: 3489289364, text, name, SERVER_PREDICTION: HTML_TYPE_NAME email: 1029417091, email, username_email, SERVER_PREDICTION: EMAIL_ADDRESS password: 2051817934, password, new-password } Message: PasswordAutofillAgent::SendPasswordForms only_visible: false Security origin: https://credential-management-sample.appspot.com/ Number of all forms: 2 Form is a password form: { Action : https://credential-management-sample.appspot.com/ , New password element : , Origin : https://credential-management-sample.appspot.com/ , PSL match : false, Password element : password , Password generated : false, Scheme : HTML , Signon realm : https://credential-management-sample.appspot.com/ , Times used : 0, Username element : email } Form is a password form: { Action : https://credential-management-sample.appspot.com/ , New password element : password , Origin : https://credential-management-sample.appspot.com/ , PSL match : false, Password element : , Password generated : false, Scheme : HTML , Signon realm : https://credential-management-sample.appspot.com/ , Times used : 0, Username element : email } Message: PasswordManager::CreatePendingLoginManagers SSL errors present: false IsPasswordManagementEnabledForCurrentPage: true Number of pending login managers (before): 0 Adding manager for form: { Signature of form: 9098940619517107511 Signon realm: https://credential-management-sample.appspot.com/ Origin: https://credential-management-sample.appspot.com/ Action: https://credential-management-sample.appspot.com/ Form name: signin-form Form fields: email: 1029417091, email, username password: 2051817934, password, current-password } Message: FormFetcherImpl::Fetch FormFetcherImpl::state_: 1 Adding manager for form: { Signature of form: 7658152542967986450 Signon realm: https://credential-management-sample.appspot.com/ Origin: https://credential-management-sample.appspot.com/ Action: https://credential-management-sample.appspot.com/ Form name: reg-form Form fields: name: 3489289364, text, name email: 1029417091, email, username_email password: 2051817934, password, new-password } Message: FormFetcherImpl::Fetch FormFetcherImpl::state_: 1 Number of pending login managers (after): 2 SSL errors present: false IsPasswordManagementEnabledForCurrentPage: true SSL errors present: false IsPasswordManagementEnabledForCurrentPage: true Generation possible account creation forms: 2 Message: Generation: no non-blacklisted confirmation Message: Generation: no non-blacklisted confirmation Message: PasswordAutofillAgent::SendPasswordForms only_visible: true Security origin: https://credential-management-sample.appspot.com/ Number of all forms: 2 Form found on page: { Action : https://credential-management-sample.appspot.com/ , Form name or ID : } Form is visible: false Form found on page: { Action : https://credential-management-sample.appspot.com/ , Form name or ID : } Form is visible: true Form is a password form: { Action : https://credential-management-sample.appspot.com/ , New password element : password , Origin : https://credential-management-sample.appspot.com/ , PSL match : false, Password element : , Password generated : false, Scheme : HTML , Signon realm : https://credential-management-sample.appspot.com/ , Times used : 0, Username element : email } 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): 2 Number of pending login managers (after): 2 Message: PasswordManager::OnPasswordFormsRendered Message: PasswordManager::CanProvisionalManagerSave Message: No provisional save manager SSL errors present: false IsPasswordManagementEnabledForCurrentPage: true SSL errors present: false IsPasswordManagementEnabledForCurrentPage: true Generation possible account creation forms: 4 Message: Generation: no non-blacklisted confirmation Message: Generation: no non-blacklisted confirmation Message: Generation: no non-blacklisted confirmation Message: Generation: no non-blacklisted confirmation Message: FormFetcherImpl::OnGetPasswordStoreResults Number of results from the password store: 1 Message: PasswordFormManager::ProcessMatches SSL errors present: false IsPasswordManagementEnabledForCurrentPage: true Message: Generation disabled: no sync Message: PasswordManager::Autofill wait_for_username: true The new state of the UI: 3 Message: FormFetcherImpl::OnGetPasswordStoreResults Number of results from the password store: 1 Message: PasswordFormManager::ProcessMatches SSL errors present: false IsPasswordManagementEnabledForCurrentPage: true Message: Generation disabled: no sync Message: PasswordManager::Autofill wait_for_username: true The new state of the UI: 3 Message: PasswordAutofillAgent::OnFillPasswordForm ambiguous_or_empty_names: false Number of potential forms to fill: 1 form_data's wait_for_username: true form_contains_fillable_username_field: true username_field_name empty: false password_field_name empty: false Message: PasswordAutofillAgent::OnFillPasswordForm ambiguous_or_empty_names: false Number of potential forms to fill: 0 form_data's wait_for_username: true CM API get credentials: origin=https://credential-management-sample.appspot.com/, zero_click_only=1, federations=https://accounts.google.com/, https://www.facebook.com/, SSL errors present: false IsPasswordManagementEnabledForCurrentPage: true SSL errors present: false CM API send a credential: origin=https://credential-management-sample.appspot.com/, CredentialType=CredentialType::CREDENTIAL_TYPE_EMPTY CM API get credentials: origin=https://credential-management-sample.appspot.com/, zero_click_only=0, federations=https://accounts.google.com/, https://www.facebook.com/, SSL errors present: false IsPasswordManagementEnabledForCurrentPage: true SSL errors present: false The new state of the UI: 4 CM API send a credential: origin=https://credential-management-sample.appspot.com/, CredentialType=CredentialType::CREDENTIAL_TYPE_EMPTY The new state of the UI: 3
,
May 18 2017
The question is if you get "fill on account select" behavior after step #8 or not? I know that it's not autofilled and it was never claimed in this bug.
,
May 19 2017
The log above says that Chrome saw the sign-in form and created PasswordFormManager for it.
,
May 19 2017
This time, I did get fill on account select. I think last time, I did not. Hm... I cannot reproduce it anymore.
,
May 22 2017
Unlike the log from Comment 16, the log from Comment 28 clearly contains the sign-in form. A similar log I get locally on Canary where everything works. I close the bug until some new data is available. |
||||||||||||||
►
Sign in to add a comment |
||||||||||||||
Comment 1 by vasi...@chromium.org
, Apr 20 2017