Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(710)

Unified Diff: components/autofill/content/renderer/password_autofill_agent.cc

Issue 214823011: Autofill/rAc: dispatch "input"/"change" on <input>, <textarea>, and <select> (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: simpler Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/autofill/content/renderer/password_autofill_agent.cc
diff --git a/components/autofill/content/renderer/password_autofill_agent.cc b/components/autofill/content/renderer/password_autofill_agent.cc
index 6a3c2b45d2dbe3f0a50a837fe6e669c4e8a4a0df..91fc888f970f1f9595201e92cb0a40d0b24a11a8 100644
--- a/components/autofill/content/renderer/password_autofill_agent.cc
+++ b/components/autofill/content/renderer/password_autofill_agent.cc
@@ -166,14 +166,6 @@ bool IsElementEditable(const blink::WebInputElement& element) {
return element.isEnabled() && !element.isReadOnly();
}
-void SetElementAutofilled(blink::WebInputElement* element, bool autofilled) {
- if (element->isAutofilled() == autofilled)
- return;
- element->setAutofilled(autofilled);
- // Notify any changeEvent listeners.
- element->dispatchFormControlChangeEvent();
-}
Ilya Sherman 2014/03/29 00:07:07 Why is this function safe to remove? Does setAuto
Dan Beam 2014/03/29 00:51:14 no, passing true to setValue() dispatches a change
-
bool DoUsernamesMatch(const base::string16& username1,
const base::string16& username2,
bool exact_match) {
@@ -297,11 +289,12 @@ bool PasswordAutofillAgent::TextDidChangeInTextField(
// The input text is being changed, so any autofilled password is now
// outdated.
Dan Beam 2014/03/29 00:51:14 ^ there should already be a change dispatched in t
blink::WebInputElement username = element; // We need a non-const.
+ username.setAutofilled(false);
+
blink::WebInputElement password = iter->second.password_field;
- SetElementAutofilled(&username, false);
if (password.isAutofilled()) {
- password.setValue(base::string16());
- SetElementAutofilled(&password, false);
+ password.setValue(base::string16(), true);
Dan Beam 2014/03/29 00:51:14 sends change ^ (when appropriate)
+ password.setAutofilled(false);
}
// If wait_for_username is true we will fill when the username loses focus.
@@ -812,7 +805,7 @@ bool PasswordAutofillAgent::FillUserNameAndPassword(
// Input matches the username, fill in required values.
if (IsElementAutocompletable(*username_element)) {
username_element->setValue(username, true);
- SetElementAutofilled(username_element, true);
Dan Beam 2014/03/29 00:51:14 ^ this previously could've attempted to send 2 cha
+ username_element->setAutofilled(true);
if (set_selection) {
username_element->setSelectionRange(current_username.length(),
@@ -836,9 +829,6 @@ bool PasswordAutofillAgent::FillUserNameAndPassword(
password_element->setValue(password);
#endif
- // Note: Don't call SetElementAutofilled() here, as that dispatches an
- // onChange event in JavaScript, which is not appropriate for the password
- // element if a user gesture has not yet occured.
Ilya Sherman 2014/03/29 00:07:07 How is this case handled now? We shouldn't trigge
Dan Beam 2014/03/29 00:51:14 setAutofilled() doesn't dispatch a change
password_element->setAutofilled(true);
return true;
}

Powered by Google App Engine
This is Rietveld 408576698