| Index: components/autofill/content/renderer/form_autofill_util.cc
|
| diff --git a/components/autofill/content/renderer/form_autofill_util.cc b/components/autofill/content/renderer/form_autofill_util.cc
|
| index 51a2251258b73d0faf6bf61afbc8fec36b951d11..4cf695ffc3ec9b9e8f1b6a755c3b59dd037ab25e 100644
|
| --- a/components/autofill/content/renderer/form_autofill_util.cc
|
| +++ b/components/autofill/content/renderer/form_autofill_util.cc
|
| @@ -16,6 +16,7 @@
|
| #include "components/autofill/core/common/autofill_data_validation.h"
|
| #include "components/autofill/core/common/autofill_regexes.h"
|
| #include "components/autofill/core/common/autofill_switches.h"
|
| +#include "components/autofill/core/common/autofill_util.h"
|
| #include "components/autofill/core/common/form_data.h"
|
| #include "components/autofill/core/common/form_field_data.h"
|
| #include "third_party/WebKit/public/platform/WebString.h"
|
| @@ -871,9 +872,7 @@ void PreviewFormField(const FormFieldData& data,
|
| if (is_initiating_node &&
|
| (IsTextInput(input_element) || IsTextAreaElement(*field))) {
|
| // Select the part of the text that the user didn't type.
|
| - int start = field->value().length();
|
| - int end = field->suggestedValue().length();
|
| - field->setSelectionRange(start, end);
|
| + PreviewSuggestion(field->suggestedValue(), field->value(), field);
|
| }
|
| }
|
|
|
| @@ -1534,4 +1533,19 @@ gfx::RectF GetScaledBoundingBox(float scale, WebElement* element) {
|
| bounding_box.height() * scale);
|
| }
|
|
|
| +void PreviewSuggestion(const base::string16& suggestion,
|
| + const base::string16& user_input,
|
| + blink::WebFormControlElement* input_element) {
|
| + size_t selection_start = user_input.length();
|
| + if (IsFeatureSubstringMatchEnabled()) {
|
| + size_t offset =
|
| + autofill::GetTextSelectionStart(suggestion, user_input, false);
|
| + // Zero selection start is for password manager, which can show usernames
|
| + // that do not begin with the user input value.
|
| + selection_start = (offset == base::string16::npos) ? 0 : offset;
|
| + }
|
| +
|
| + input_element->setSelectionRange(selection_start, suggestion.length());
|
| +}
|
| +
|
| } // namespace autofill
|
|
|