| OLD | NEW |
| 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 <algorithm> |
| 8 |
| 7 #include "base/bind.h" | 9 #include "base/bind.h" |
| 8 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| 9 #include "base/memory/scoped_ptr.h" | 11 #include "base/memory/scoped_ptr.h" |
| 10 #include "base/message_loop/message_loop.h" | 12 #include "base/message_loop/message_loop.h" |
| 11 #include "base/metrics/field_trial.h" | 13 #include "base/metrics/field_trial.h" |
| 12 #include "base/metrics/histogram_macros.h" | 14 #include "base/metrics/histogram_macros.h" |
| 13 #include "base/strings/utf_string_conversions.h" | 15 #include "base/strings/utf_string_conversions.h" |
| 14 #include "components/autofill/content/common/autofill_messages.h" | 16 #include "components/autofill/content/common/autofill_messages.h" |
| 15 #include "components/autofill/content/renderer/form_autofill_util.h" | 17 #include "components/autofill/content/renderer/form_autofill_util.h" |
| 16 #include "components/autofill/content/renderer/password_form_conversion_utils.h" | 18 #include "components/autofill/content/renderer/password_form_conversion_utils.h" |
| (...skipping 754 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 771 | 773 |
| 772 password_info->password_field.setValue(password, true); | 774 password_info->password_field.setValue(password, true); |
| 773 password_info->password_field.setAutofilled(true); | 775 password_info->password_field.setAutofilled(true); |
| 774 | 776 |
| 775 filled_element.setSelectionRange(filled_element.value().length(), | 777 filled_element.setSelectionRange(filled_element.value().length(), |
| 776 filled_element.value().length()); | 778 filled_element.value().length()); |
| 777 | 779 |
| 778 return true; | 780 return true; |
| 779 } | 781 } |
| 780 | 782 |
| 781 bool PasswordAutofillAgent::PreviewSuggestion( | 783 bool PasswordAutofillAgent::PreviewSuggestion(const blink::WebNode& node, |
| 782 const blink::WebNode& node, | 784 const blink::WebString& username, |
| 783 const blink::WebString& username, | 785 const blink::WebString& password, |
| 784 const blink::WebString& password) { | 786 int match_start) { |
| 785 blink::WebInputElement username_element; | 787 blink::WebInputElement username_element; |
| 786 PasswordInfo* password_info; | 788 PasswordInfo* password_info; |
| 787 | 789 |
| 788 if (!FindLoginInfo(node, &username_element, &password_info) || | 790 if (!FindLoginInfo(node, &username_element, &password_info) || |
| 789 !IsElementAutocompletable(username_element) || | 791 !IsElementAutocompletable(username_element) || |
| 790 !IsElementAutocompletable(password_info->password_field)) { | 792 !IsElementAutocompletable(password_info->password_field)) { |
| 791 return false; | 793 return false; |
| 792 } | 794 } |
| 793 | 795 |
| 794 was_username_autofilled_ = username_element.isAutofilled(); | 796 was_username_autofilled_ = username_element.isAutofilled(); |
| 795 username_selection_start_ = username_element.selectionStart(); | 797 username_selection_start_ = |
| 798 std::min(match_start, username_element.maxLength()); |
| 796 username_element.setSuggestedValue(username); | 799 username_element.setSuggestedValue(username); |
| 797 username_element.setAutofilled(true); | 800 username_element.setAutofilled(true); |
| 798 username_element.setSelectionRange( | 801 username_element.setSelectionRange( |
| 799 username_selection_start_, | 802 username_selection_start_, |
| 800 username_element.suggestedValue().length()); | 803 username_element.suggestedValue().length()); |
| 801 | 804 |
| 802 was_password_autofilled_ = password_info->password_field.isAutofilled(); | 805 was_password_autofilled_ = password_info->password_field.isAutofilled(); |
| 803 password_info->password_field.setSuggestedValue(password); | 806 password_info->password_field.setSuggestedValue(password); |
| 804 password_info->password_field.setAutofilled(true); | 807 password_info->password_field.setAutofilled(true); |
| 805 | 808 |
| (...skipping 684 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1490 void PasswordAutofillAgent::LegacyPasswordAutofillAgent::DidStopLoading() { | 1493 void PasswordAutofillAgent::LegacyPasswordAutofillAgent::DidStopLoading() { |
| 1491 agent_->DidStopLoading(); | 1494 agent_->DidStopLoading(); |
| 1492 } | 1495 } |
| 1493 | 1496 |
| 1494 void PasswordAutofillAgent::LegacyPasswordAutofillAgent:: | 1497 void PasswordAutofillAgent::LegacyPasswordAutofillAgent:: |
| 1495 DidStartProvisionalLoad(blink::WebLocalFrame* navigated_frame) { | 1498 DidStartProvisionalLoad(blink::WebLocalFrame* navigated_frame) { |
| 1496 agent_->LegacyDidStartProvisionalLoad(navigated_frame); | 1499 agent_->LegacyDidStartProvisionalLoad(navigated_frame); |
| 1497 } | 1500 } |
| 1498 | 1501 |
| 1499 } // namespace autofill | 1502 } // namespace autofill |
| OLD | NEW |