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

Side by Side Diff: components/autofill/content/renderer/password_autofill_agent.cc

Issue 1408423003: [Password Manager] Ignore autofilling invisible password fields. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added more handling. Created 5 years, 2 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/autofill/content/renderer/password_autofill_agent.h" 5 #include "components/autofill/content/renderer/password_autofill_agent.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/i18n/case_conversion.h" 9 #include "base/i18n/case_conversion.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 if (!control_element.hasHTMLTagName("input")) 178 if (!control_element.hasHTMLTagName("input"))
179 continue; 179 continue;
180 180
181 // Only fill saved passwords into password fields and usernames into text 181 // Only fill saved passwords into password fields and usernames into text
182 // fields. 182 // fields.
183 const blink::WebInputElement input_element = 183 const blink::WebInputElement input_element =
184 control_element.toConst<blink::WebInputElement>(); 184 control_element.toConst<blink::WebInputElement>();
185 if (input_element.isPasswordField() != is_password_field) 185 if (input_element.isPasswordField() != is_password_field)
186 continue; 186 continue;
187 187
188 // Avoid autofilling invisible password fields.
189 if (input_element.isPasswordField() &&
190 IsInputElementHidden((blink::WebInputElement*)&input_element)) {
vabr (Chromium) 2015/10/20 16:40:22 Please use IsWebNodeVisible. That will also get ri
Pritam Nikam 2015/10/22 09:00:08 Done.
191 continue;
192 }
193
188 // For change password form with ambiguous or empty names keep only the 194 // For change password form with ambiguous or empty names keep only the
189 // first password field having |autocomplete='current-password'| attribute 195 // first password field having |autocomplete='current-password'| attribute
190 // set. Also make sure we avoid keeping password fields having 196 // set. Also make sure we avoid keeping password fields having
191 // |autocomplete='new-password'| attribute set. 197 // |autocomplete='new-password'| attribute set.
192 if (ambiguous_and_multiple_password_fields_with_autocomplete && 198 if (ambiguous_and_multiple_password_fields_with_autocomplete &&
193 !HasAutocompleteAttributeValue(input_element, "current-password")) { 199 !HasAutocompleteAttributeValue(input_element, "current-password")) {
194 continue; 200 continue;
195 } 201 }
196 202
197 // Check for a non-unique match. 203 // Check for a non-unique match.
(...skipping 1327 matching lines...) Expand 10 before | Expand all | Expand 10 after
1525 void PasswordAutofillAgent::LegacyPasswordAutofillAgent::DidStopLoading() { 1531 void PasswordAutofillAgent::LegacyPasswordAutofillAgent::DidStopLoading() {
1526 agent_->DidStopLoading(); 1532 agent_->DidStopLoading();
1527 } 1533 }
1528 1534
1529 void PasswordAutofillAgent::LegacyPasswordAutofillAgent:: 1535 void PasswordAutofillAgent::LegacyPasswordAutofillAgent::
1530 DidStartProvisionalLoad(blink::WebLocalFrame* navigated_frame) { 1536 DidStartProvisionalLoad(blink::WebLocalFrame* navigated_frame) {
1531 agent_->LegacyDidStartProvisionalLoad(navigated_frame); 1537 agent_->LegacyDidStartProvisionalLoad(navigated_frame);
1532 } 1538 }
1533 1539
1534 } // namespace autofill 1540 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698