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

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

Issue 2750323003: [Password Manager] Replace WebInputElement.setValue with WebInputElement.setAutofillValue (Closed)
Patch Set: Fixed a comment Created 3 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 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 <stddef.h> 7 #include <stddef.h>
8 8
9 #include <memory> 9 #include <memory>
10 #include <string> 10 #include <string>
(...skipping 442 matching lines...) Expand 10 before | Expand all | Expand 10 after
453 if (password.empty()) 453 if (password.empty())
454 return false; 454 return false;
455 455
456 // TODO(tkent): Check maxlength and pattern for both username and password 456 // TODO(tkent): Check maxlength and pattern for both username and password
457 // fields. 457 // fields.
458 458
459 // Input matches the username, fill in required values. 459 // Input matches the username, fill in required values.
460 if (!username_element->isNull() && 460 if (!username_element->isNull() &&
461 IsElementAutocompletable(*username_element)) { 461 IsElementAutocompletable(*username_element)) {
462 // TODO(crbug.com/507714): Why not setSuggestedValue? 462 // TODO(crbug.com/507714): Why not setSuggestedValue?
463 username_element->setValue(blink::WebString::fromUTF16(username), true); 463 username_element->setAutofillValue(blink::WebString::fromUTF16(username));
464 UpdateFieldValueAndPropertiesMaskMap(*username_element, &username, 464 UpdateFieldValueAndPropertiesMaskMap(*username_element, &username,
465 FieldPropertiesFlags::AUTOFILLED, 465 FieldPropertiesFlags::AUTOFILLED,
466 field_value_and_properties_map); 466 field_value_and_properties_map);
467 username_element->setAutofilled(true); 467 username_element->setAutofilled(true);
468 if (logger) 468 if (logger)
469 logger->LogElementName(Logger::STRING_USERNAME_FILLED, *username_element); 469 logger->LogElementName(Logger::STRING_USERNAME_FILLED, *username_element);
470 if (set_selection) { 470 if (set_selection) {
471 form_util::PreviewSuggestion(username, current_username, 471 form_util::PreviewSuggestion(username, current_username,
472 username_element); 472 username_element);
473 } 473 }
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
548 // select to fill the password element, so the password element must be marked 548 // select to fill the password element, so the password element must be marked
549 // as autofilled and the fill step should also be skipped if the user is not 549 // as autofilled and the fill step should also be skipped if the user is not
550 // in the "no highlighting" group. 550 // in the "no highlighting" group.
551 // 551 //
552 // In all other cases, do nothing. 552 // In all other cases, do nothing.
553 bool form_has_fillable_username = !username_field_name.empty() && 553 bool form_has_fillable_username = !username_field_name.empty() &&
554 IsElementAutocompletable(username_element); 554 IsElementAutocompletable(username_element);
555 555
556 if (form_has_fillable_username && username_element.value().isEmpty()) { 556 if (form_has_fillable_username && username_element.value().isEmpty()) {
557 // TODO(tkent): Check maxlength and pattern. 557 // TODO(tkent): Check maxlength and pattern.
558 username_element.setValue( 558 username_element.setAutofillValue(
559 blink::WebString::fromUTF16(fill_data.username_field.value), true); 559 blink::WebString::fromUTF16(fill_data.username_field.value));
560 } 560 }
561 561
562 // Fill if we have an exact match for the username. Note that this sets 562 // Fill if we have an exact match for the username. Note that this sets
563 // username to autofilled. 563 // username to autofilled.
564 return FillUserNameAndPassword( 564 return FillUserNameAndPassword(
565 &username_element, &password_element, fill_data, 565 &username_element, &password_element, fill_data,
566 true /* exact_username_match */, false /* set_selection */, 566 true /* exact_username_match */, false /* set_selection */,
567 field_value_and_properties_map, registration_callback, logger); 567 field_value_and_properties_map, registration_callback, logger);
568 } 568 }
569 569
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
653 } 653 }
654 654
655 void PasswordAutofillAgent::PasswordValueGatekeeper::Reset() { 655 void PasswordAutofillAgent::PasswordValueGatekeeper::Reset() {
656 was_user_gesture_seen_ = false; 656 was_user_gesture_seen_ = false;
657 elements_.clear(); 657 elements_.clear();
658 } 658 }
659 659
660 void PasswordAutofillAgent::PasswordValueGatekeeper::ShowValue( 660 void PasswordAutofillAgent::PasswordValueGatekeeper::ShowValue(
661 blink::WebInputElement* element) { 661 blink::WebInputElement* element) {
662 if (!element->isNull() && !element->suggestedValue().isEmpty()) 662 if (!element->isNull() && !element->suggestedValue().isEmpty())
663 element->setValue(element->suggestedValue(), true); 663 element->setAutofillValue(element->suggestedValue());
664 } 664 }
665 665
666 bool PasswordAutofillAgent::TextDidChangeInTextField( 666 bool PasswordAutofillAgent::TextDidChangeInTextField(
667 const blink::WebInputElement& element) { 667 const blink::WebInputElement& element) {
668 // TODO(vabr): Get a mutable argument instead. http://crbug.com/397083 668 // TODO(vabr): Get a mutable argument instead. http://crbug.com/397083
669 blink::WebInputElement mutable_element = element; // We need a non-const. 669 blink::WebInputElement mutable_element = element; // We need a non-const.
670 mutable_element.setAutofilled(false); 670 mutable_element.setAutofilled(false);
671 671
672 WebInputToPasswordInfoMap::iterator iter = 672 WebInputToPasswordInfoMap::iterator iter =
673 web_input_to_password_info_.find(element); 673 web_input_to_password_info_.find(element);
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
746 !IsElementAutocompletable(password_element)) { 746 !IsElementAutocompletable(password_element)) {
747 return false; 747 return false;
748 } 748 }
749 749
750 password_info->password_was_edited_last = false; 750 password_info->password_was_edited_last = false;
751 if (element->isPasswordField()) { 751 if (element->isPasswordField()) {
752 password_info->password_field_suggestion_was_accepted = true; 752 password_info->password_field_suggestion_was_accepted = true;
753 password_info->password_field = password_element; 753 password_info->password_field = password_element;
754 } else if (!username_element.isNull() && 754 } else if (!username_element.isNull() &&
755 IsElementAutocompletable(username_element)) { 755 IsElementAutocompletable(username_element)) {
756 username_element.setValue(blink::WebString::fromUTF16(username), true); 756 username_element.setAutofillValue(blink::WebString::fromUTF16(username));
757 username_element.setAutofilled(true); 757 username_element.setAutofilled(true);
758 UpdateFieldValueAndPropertiesMaskMap(username_element, &username, 758 UpdateFieldValueAndPropertiesMaskMap(username_element, &username,
759 FieldPropertiesFlags::AUTOFILLED, 759 FieldPropertiesFlags::AUTOFILLED,
760 &field_value_and_properties_map_); 760 &field_value_and_properties_map_);
761 } 761 }
762 762
763 password_element.setValue(blink::WebString::fromUTF16(password), true); 763 password_element.setAutofillValue(blink::WebString::fromUTF16(password));
764 password_element.setAutofilled(true); 764 password_element.setAutofilled(true);
765 UpdateFieldValueAndPropertiesMaskMap(password_element, &password, 765 UpdateFieldValueAndPropertiesMaskMap(password_element, &password,
766 FieldPropertiesFlags::AUTOFILLED, 766 FieldPropertiesFlags::AUTOFILLED,
767 &field_value_and_properties_map_); 767 &field_value_and_properties_map_);
768 768
769 blink::WebInputElement mutable_filled_element = *element; 769 blink::WebInputElement mutable_filled_element = *element;
770 mutable_filled_element.setSelectionRange(element->value().length(), 770 mutable_filled_element.setSelectionRange(element->value().length(),
771 element->value().length()); 771 element->value().length());
772 772
773 return true; 773 return true;
(...skipping 828 matching lines...) Expand 10 before | Expand all | Expand 10 after
1602 PasswordAutofillAgent::GetPasswordManagerDriver() { 1602 PasswordAutofillAgent::GetPasswordManagerDriver() {
1603 if (!password_manager_driver_) { 1603 if (!password_manager_driver_) {
1604 render_frame()->GetRemoteInterfaces()->GetInterface( 1604 render_frame()->GetRemoteInterfaces()->GetInterface(
1605 mojo::MakeRequest(&password_manager_driver_)); 1605 mojo::MakeRequest(&password_manager_driver_));
1606 } 1606 }
1607 1607
1608 return password_manager_driver_; 1608 return password_manager_driver_;
1609 } 1609 }
1610 1610
1611 } // namespace autofill 1611 } // namespace autofill
OLDNEW
« no previous file with comments | « components/autofill/content/renderer/form_cache.cc ('k') | components/autofill/content/renderer/password_generation_agent.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698