New issue
Advanced search Search tips

Issue 794949 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Dec 2017
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac
Pri: 3
Type: Bug



Sign in to add a comment

Deal with changing input type from password to text

Project Member Reported by battre@chromium.org, Dec 14 2017

Issue description

A website may have an <input type="password"> that is dynamically changed to an <input type="text"> when the user clicks on an eye icon to reveal the password.

This means that the text input field now has the user's password which is susceptible to learning for autofill and the Android keyboard.

We should track the past state of input field and prevent learning if a field has ever been a password field.
 

Comment 1 by battre@chromium.org, Dec 14 2017

Components: UI>Browser>Autofill

Comment 2 by battre@chromium.org, Dec 14 2017

Summary: Deal with changing input type from password to text (was: Deal with changing input types for password and text)

Comment 3 by battre@chromium.org, Dec 14 2017

Description: Show this description
Project Member

Comment 4 by bugdroid1@chromium.org, Dec 18 2017

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

commit edeeccc22bfe46cabdc071eae048d9c0f6849c5b
Author: Dominic Battre <battre@chromium.org>
Date: Mon Dec 18 11:59:39 2017

Deal with changing input type from password to text

A website may have an <input type="password"> that is dynamically changed to an
<input type="text"> when the user clicks on an eye icon to reveal the password.

This means that the text input field now has the user's password which is
susceptible to learning for autofill and the Android keyboard.

We should track the past state of input field and prevent learning if a field
has ever been a password field.

Bug:  794949 
Change-Id: I14023dbf9f2e2449bc5155b4432cdb73c7bcc223
Reviewed-on: https://chromium-review.googlesource.com/827075
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Keishi Hattori <keishi@chromium.org>
Reviewed-by: Changwan Ryu <changwan@chromium.org>
Commit-Queue: Dominic Battré <battre@chromium.org>
Cr-Commit-Position: refs/heads/master@{#524684}
[modify] https://crrev.com/edeeccc22bfe46cabdc071eae048d9c0f6849c5b/content/public/android/BUILD.gn
[modify] https://crrev.com/edeeccc22bfe46cabdc071eae048d9c0f6849c5b/content/public/android/java/src/org/chromium/content/browser/input/ImeUtils.java
[modify] https://crrev.com/edeeccc22bfe46cabdc071eae048d9c0f6849c5b/content/public/android/javatests/src/org/chromium/content/browser/input/ImeActivityTestRule.java
[modify] https://crrev.com/edeeccc22bfe46cabdc071eae048d9c0f6849c5b/content/public/android/javatests/src/org/chromium/content/browser/input/ImeLollipopTest.java
[add] https://crrev.com/edeeccc22bfe46cabdc071eae048d9c0f6849c5b/content/public/android/javatests/src/org/chromium/content/browser/input/ImePasswordTest.java
[modify] https://crrev.com/edeeccc22bfe46cabdc071eae048d9c0f6849c5b/content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java
[modify] https://crrev.com/edeeccc22bfe46cabdc071eae048d9c0f6849c5b/content/public/android/javatests/src/org/chromium/content/browser/input/TextSuggestionMenuTest.java
[add] https://crrev.com/edeeccc22bfe46cabdc071eae048d9c0f6849c5b/content/test/data/android/input/password_form.html
[modify] https://crrev.com/edeeccc22bfe46cabdc071eae048d9c0f6849c5b/third_party/WebKit/Source/core/editing/ime/InputMethodController.cpp
[modify] https://crrev.com/edeeccc22bfe46cabdc071eae048d9c0f6849c5b/third_party/WebKit/Source/core/html/forms/HTMLInputElement.cpp
[modify] https://crrev.com/edeeccc22bfe46cabdc071eae048d9c0f6849c5b/third_party/WebKit/Source/core/html/forms/HTMLInputElement.h
[modify] https://crrev.com/edeeccc22bfe46cabdc071eae048d9c0f6849c5b/third_party/WebKit/public/platform/WebTextInputType.h

Comment 5 by kolos@chromium.org, Dec 18 2017

FYI, a one more site for testing https://mail.yandex.com/ => Create account
Project Member

Comment 6 by bugdroid1@chromium.org, Dec 19 2017

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

commit 1bb521c4dce5635a2139c4fec9ef5304f28298f3
Author: Dominic Battre <battre@chromium.org>
Date: Tue Dec 19 21:10:03 2017

Implement stickyness of password type for autofill

Websites now sometimes have buttons that turn <input type="password"> fields
into <input type="text"> to allow the user to view their password. This creates
two problems for autofill and the password manager.
1) Autofill may learn password and suggest them for autofilling.
2) The password manager may fail to offer saving passwords because it does not
recognize the password field as such anymore.

This CL introduces a change such that for text input fields, a field is
considered a password field if it has been one in the past.

Bug:  794949 
Change-Id: I742beae9df91f8bc192c3e9786c4183a97be2b8e
Reviewed-on: https://chromium-review.googlesource.com/829373
Commit-Queue: Roger McFarlane <rogerm@chromium.org>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Maxim Kolosovskiy <kolos@chromium.org>
Reviewed-by: Roger McFarlane <rogerm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#525140}
[add] https://crrev.com/1bb521c4dce5635a2139c4fec9ef5304f28298f3/components/autofill/content/renderer/PRESUBMIT.py
[modify] https://crrev.com/1bb521c4dce5635a2139c4fec9ef5304f28298f3/components/autofill/content/renderer/autofill_agent.cc
[modify] https://crrev.com/1bb521c4dce5635a2139c4fec9ef5304f28298f3/components/autofill/content/renderer/form_autofill_util.cc
[modify] https://crrev.com/1bb521c4dce5635a2139c4fec9ef5304f28298f3/components/autofill/content/renderer/form_classifier.cc
[modify] https://crrev.com/1bb521c4dce5635a2139c4fec9ef5304f28298f3/components/autofill/content/renderer/password_autofill_agent.cc
[modify] https://crrev.com/1bb521c4dce5635a2139c4fec9ef5304f28298f3/components/autofill/content/renderer/password_form_conversion_utils.cc
[modify] https://crrev.com/1bb521c4dce5635a2139c4fec9ef5304f28298f3/components/autofill/content/renderer/password_form_conversion_utils_browsertest.cc
[modify] https://crrev.com/1bb521c4dce5635a2139c4fec9ef5304f28298f3/components/autofill/content/renderer/password_generation_agent.cc
[modify] https://crrev.com/1bb521c4dce5635a2139c4fec9ef5304f28298f3/third_party/WebKit/Source/core/exported/WebFormControlElement.cpp
[modify] https://crrev.com/1bb521c4dce5635a2139c4fec9ef5304f28298f3/third_party/WebKit/Source/core/exported/WebInputElement.cpp
[modify] https://crrev.com/1bb521c4dce5635a2139c4fec9ef5304f28298f3/third_party/WebKit/public/web/WebFormControlElement.h
[modify] https://crrev.com/1bb521c4dce5635a2139c4fec9ef5304f28298f3/third_party/WebKit/public/web/WebInputElement.h

Comment 7 by battre@chromium.org, Dec 20 2017

Status: Fixed (was: Started)

Sign in to add a comment