Decide whether to ignore readonly password fields when parsing FormData |
|||
Issue descriptionThis discussion was spun up in bug 883633. The new FormData->PasswordForm parser (--enable-features=new-password-form-parsing,new-password-form-parsing-for-saving) currently ignores fields with 'readonly' attributes, unless they are specified by server hints, autocomplete attributes, or have been typed into or filled previously. vabr@ proposes to stop caring about readonly and to treat readonly fields the same as those without readonly. This bug tracks obtaining information on the impact of this change: * Overall impact. * Examples of pages where filling/saving of passwords improves with the proposed change. * Examples of making things worse with the proposed changes. That data should be used to make a decision to whether to implement the proposal or not. This decision will also be recorded here, as well as the implementation, if applicable.
,
Nov 15
Case 1: https://cibnext.icicibank.com/corp/AuthenticationController?FORMSGROUP_ID__=AuthenticationFG&__START_TRAN_FLAG__=Y&FG_BUTTONS__=LOAD&ACTION.LOAD=Y&AuthenticationFG.LOGIN_FLAG=1&BANK_ID=ICI With old parser, manual fallbacks for saving and filling (from password field) work. With the new parser ignoring readonly, fallbacks stop working (saving one appears, but fails silently). With the new parser with readonly, fallbacks work again.
,
Nov 15
Case 2: https://velocity.ocbc.com/login.html With old parser, manual fallbacks for saving and filling (from password field) work. With the new parser ignoring readonly, fallbacks stop working (saving one appears, but fails silently). With the new parser with readonly, fallbacks work again.
,
Nov 15
Case 3: https://aliorbank.pl/hades/do/LoginAlias Page has a one-field-per-character set of "password" fields to enter some parts of a PIN. Password manager cannot help here. In no setting (old, new, new+ignore-readonly) there is any unwanted interference, except for a save prompt, which pops-up on reloading the page in all settings.
,
Nov 15
Case 3: https://www.youtube.com/live_dashboard -> accounts.google.com Seems to work fine and the same in all three situations.
,
Nov 15
Case 4: https://escritorio11.hinode.com.br/ Seems to work fine and the same in all three situations.
,
Nov 15
Case 5: https://www4.bfc.com.ve/IBFCPersonas/ Virtual keyboard, breaks password manager completely in all three situations.
,
Nov 15
More analysis of case 2: The password form has one visible and one invisible password field. The new parser (with considering readonly fields) is better in that it correctly detects the visible password field as "current password" and ignores the invisible one, whereas the old parser thinks that the visible one is "new password", whereas one invisible one is "current password". This is how the old parser arrives at its conclusion: (1) Because there are visible fields, ignores the invisible ones, leaving just the visible password in the shortlist. (2) Because the visible password is readonly, eliminates it as well, emptying the shortlist. (3) Because there were some passwords initially, but all got shortlisted, defaults to a Plan B: considering all passwords. Among those, the invisible is the first (-> current) and the visible the second (-> new). The hack in step (3) was not carried over to the new parser on purpose, to keep the design clear and predictable. The situation of case 1 looks to be the same.
,
Nov 15
The 5 cases from above were selected arbitrarily among those flagged as concerning readonly fields, but with a bias towards frequently hit pages. Out of those, in 2 cases, the proposed change in the new parser led to fixing a regression and overall improving over what the old parser did. In the other 3 cases, there was no change.
,
Nov 19
I just spotted that I had two "case 3". So the statisitics is 2 improvements and 4 no changes.
,
Nov 19
Also highlighting: There is an independent block against filling readonly fields in PasswordAutofillAgent, so even if the new parser starts using readonly fields, the forms will not start to get filled on load because of that. The parsing (and hence the result of fill on account select) might get better, though, because of server hints applied.
,
Nov 27
The current state stays that the new parser accepts disabled fields and not readonly fields (in base heuristics). I documented this in the design doc [1]. If we want to change this, we should add an appropriate metric (follow the pattern of https://crrev.com/c/1261984), check the impact and then make the change. I am marking this bug as Available, because I leave the team this week. [1] https://docs.google.com/document/d/1KxWnt3-Pykz4ut4P1IHxNhn6Ef64v3VMyGobUWyLnDg/edit#heading=h.azxb6xacxjq2 |
|||
►
Sign in to add a comment |
|||
Comment 1 by vabr@chromium.org
, Nov 15